aardio和python 猜拳游戏

axuanup 2023-8-13 961

aardio版本
import console;

/****
项目猜拳游戏

基本规则:
    1、用户与计算机出拳,然后判断胜负,显示结果
    2、我们用 1表示"剪刀"  2表示“包袱” 3表示“锤头”
    3、“剪刀”>"包袱"  "包袱" > "锤头"  “锤头” > "剪刀"

开发思路:
    1、用户先出牌
    2、计算机出牌
    3、判断胜负
    4、【1-3】之间需要进行迭代循环

难点:
    1、如何判断计算机与用户谁赢

    用户      计算机         胜方
    ----------------------------
    1           1           平手
    1           2           用户
    1           3           计算机
    2           1           计算机
    2           2           平手
    2           3           用户
    3           1           用户
    3           2           计算机
    3           3           平手
****/

// 定义的全局变量
var g_userCard = "-1" // 用户牌
var g_computerCard = "-1" // 计算机牌
var g_winner = "未知" // 胜负

// 游戏规则显示
var game_tip = function() {
    console.log("游戏规则显示")
    console.log("------------- 游戏:不粉不黑面向群编程目标日入一万  -------------")
    console.log("------------- 1表示剪刀  2表示包袱 3表示锤头 -------------")
    console.log("------------- 输入“exit” 或“EXIT  退出系统” -------------")
}

// 用户出牌
var send_card_user = function() {
    return console.getText("请出牌:")
}

// 计算机出牌
var send_card_computer = function() {
    console.log("计算机出牌")
    
    var int_input = tostring(math.random(1, 3)) // 产生随机数
    
    return int_input //返回字符串类型
}

// 判断胜负

var judge_winner = function(g_userCard, g_computerCard) {
    var result = "未知";
    // 定义返回数值
    if (g_userCard == "1"
        and g_computerCard == "1") {
        result = "平手";
    }
    elseif(g_userCard == "1"
        and g_computerCard == "2") {
        result = "用户";
    }
    elseif(g_userCard == "1"
        and g_computerCard == "3") {
        result = "计算机";
    }
    elseif(g_userCard == "2"
        and g_computerCard == "1") {
        result = "计算机";
    }
    elseif(g_userCard == "2"
        and g_computerCard == "2") {
        result = "平手";
    }
    elseif(g_userCard == "2"
        and g_computerCard == "3") {
        result = "用户";
    }
    elseif(g_userCard == "3"
        and g_computerCard == "1") {
        result = "用户";
    }
    elseif(g_userCard == "3"
        and g_computerCard == "2") {
        result = "计算机";
    }
    elseif(g_userCard == "3"
        and g_computerCard == "3") {
        result = "平手";
    }
    else {
        print("亲,您输入的是什么");
    }
    
    return result;
}

// 数字转汉字显示
var show_cn_card = function(num_card) {
    select (num_card) {
        case "1" {
            console.log("剪刀")
        }
        case "2" {
            console.log("包袱")
        }
        case "3" {
            console.log("锤子")
        }
    }
}

// 主程序入口
while (true) {
    // 游戏规则显示
    game_tip()
    // 接收用户输入(数字牌)
    var g_userCard = send_card_user()
    
    // 用户退出游戏处理
    if (g_userCard == "exit"
        or g_userCard == "EXIT") {
       console.close()
       
       // console.pause(false);
    }
    // 数字转汉字显示
    show_cn_card(g_userCard)
    
    // 计算机出牌
    var g_computerCard = send_card_computer()
    
    //console.log(g_computerCard,type(g_computerCard))
    // 数字转汉字显示
    show_cn_card(g_computerCard)
    
    // 胜负判断
    var g_winner = judge_winner(g_userCard, g_computerCard)
    
    select (g_winner) {
        case "用户" {
            console.log("恭喜,你赢了,厉害")
        }
        case "计算机" {
            console.log("不好意思你输了,努力吧")
        }
        case "平手" {
            console.log("平手,加油")
        }
        else {
            console.log("输入值不对")
        }
    }
}

console.pause(true);
python版本

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
项目猜拳游戏

基本规则:
    1、用户与计算机出拳,然后判断胜负,显示结果
    2、我们用 1表示"剪刀"  2表示“包袱” 3表示“锤头”
    3、“剪刀”>"包袱"  "包袱" > "锤头"  “锤头” > "剪刀"

开发思路:
    1、用户先出牌
    2、计算机出牌
    3、判断胜负
    4、【1-3】之间需要进行迭代循环

难点:
    1、如何判断计算机与用户谁赢

    用户      计算机         胜方
    ----------------------------
    1           1           平手
    1           2           用户
    1           3           计算机
    2           1           计算机
    2           2           平手
    2           3           用户
    3           1           用户
    3           2           计算机
    3           3           平手
"""


import random  # 导入随机数模块


# 定义的全局变量
g_userCard = "-1"   # 用户牌
g_computerCard = "-1"   # 计算机牌
g_winner = "未知" # 胜负


# 游戏规则显示
def game_tip():
    print("游戏规则显示")
    print("------------- 游戏:不粉不黑面向群编程目标日入一万  -------------")
    print("------------- 1表示剪刀  2表示包袱 3表示锤头 -------------")
    print("------------- 输入“exit” 或“EXIT  退出系统” -------------")


# 用户出牌
def send_card_user():
    return input("请出牌:")


# 计算机出牌
def send_card_computer():
    print("计算机出牌")
    int_input = random.randint(1,3) # 产生随机数
    return str(int_input)   #返回字符串类型


# 判断胜负

def judge_winner(g_userCard, g_computerCard):
    result = "未知"   # 定义返回数值
    if (g_userCard in ["1","2","3"]) and (g_computerCard in ["1","2","3"]):
        if g_userCard == "1" and g_computerCard == "1":
            result = "平手"
        elif g_userCard == "1" and g_computerCard == "2":
            result = "用户"
        elif g_userCard == "1" and g_computerCard == "3":
            result = "计算机"
        elif g_userCard == "2" and g_computerCard == "1":
            result = "计算机"
        elif g_userCard == "2" and g_computerCard == "2":
            result = "平手"
        elif g_userCard == "2" and g_computerCard == "3":
            result = "用户"
        elif g_userCard == "3" and g_computerCard == "1":
            result = "用户"
        elif g_userCard == "3" and g_computerCard == "2":
            result = "计算机"
        elif g_userCard == "3" and g_computerCard == "3":
            result = "平手"
        else:
            print("亲,您输入的是什么")
    return result


# 数字转汉字显示
def show_cn_card(num_card):
    if num_card == "1":
        print("剪刀")
    elif num_card == "2":
        print("包袱")
    elif num_card == "3":
        print("锤子")


# 主程序入口
while True:
    # 游戏规则显示
    game_tip()
    # 接收用户输入(数字牌)
    g_userCard = send_card_user()

    # 用户退出游戏处理
    if g_userCard == "exit" or g_userCard == "EXIT":
        quit()  # 表示退出系统
    # 数字转汉字显示
    show_cn_card(g_userCard)

    # 计算机出牌
    g_computerCard = send_card_computer()

    # 数字转汉字显示
    show_cn_card(g_computerCard)

    # 胜负判断
    g_winner = judge_winner(g_userCard, g_computerCard)
    if g_winner == "用户":
        print("恭喜,你赢了,厉害")
    elif g_winner == "计算机":
        print("不好意思你输了,努力吧")
    elif g_winner == "平手":
        print("平手,加油")
    else:
        print("输入值不对")

最新回复 (3)
  • 光庆 2023-8-13
    0 2
    挺好的例子,但代码可优化空间较大
  • 光庆 2023-8-14
    1 3
    import console;
    
    // 主程序入口
    while (true) {
        
        // 游戏规则显示
        console.log('游戏规则显示\n\n
        -------------   游戏:不粉不黑面向群编程目标日入一万   ------------\n\n
        ------------- 1:剪刀  2:包袱 3:锤头  exit:退出系统 ------------\n')
        
        // 用户出牌
        var userCard;
        do {
            userCard = console.getText("请用户出牌:");
            if ..string.lower(userCard) == "exit" break 2;
            userCard = tonumber( userCard,10 ):-1;
        } while (
            userCard&3!=userCard
        )
        console.log("用户出牌:"+({"剪刀","包袱","锤子"})[userCard]); // 数字转汉字显示
        
        // 电脑出牌    
        var computerCard = math.random(1, 3);
        console.log("电脑出牌:"+({"剪刀","包袱","锤子"})[computerCard]);    
        
        // 胜负判断
        console.log("游戏结果:"+({"平手,加油","恭喜,你赢了,厉害","不好意思你输了,努力吧!"})[(computerCard+3-userCard)%3+1]);
        console.log('\n\n==============================游戏结束,开始新游戏=========================')   
    }

    改了一个跟你的风格不一样的。

  • axuanup 2023-8-15
    0 4
    还得是大佬 。哈哈哈哈哈哈
返回