分别用java,go,python语言 实现猜石头剪刀布的游戏的功能

游戏规则:人和电脑分别出剪刀、石头、布,直到人战胜电脑,游戏结束。

1. 用Java语言实现
import java.util.Scanner;

/**
 * java实现人机猜拳游戏
 * 人和电脑分别出剪刀、石头、布,直到人战胜电脑,游戏结束
 */
public class Scissors_Stone_Cloth {
    public static void main(String[] args) {
        while (true) {
            System.out.println("*******************************");
            System.out.println("--------欢迎进入猜拳游戏--------");
            System.out.println("请出拳:(1是剪刀,2是石头,3是布)");
            Scanner sc=new Scanner(System.in);
            int person=sc.nextInt(); //获取用户输入
            int computer=(int)(Math.random()*3)+1; //电脑随机出拳
            String per="用户";
            String com = "电脑";
            //用户出拳
            switch(person){
                case 1:
                    per="剪刀";
                    break;
                case 2:
                    per="石头";
                    break;
                case 3:
                    per="布";
                    break;
            }
            //电脑出拳
            switch(computer){
                case 1:
                    com="剪刀";
                    break;
                case 2:
                    com="石头";
                    break;
                case 3:
                    com="布";
                    break;
            }

            //根据出拳判断输赢
            if(person==1&&computer==2||person==2&&computer==3||person==3&&computer==1){
                System.out.println("你出的是("+per+") 电脑出的是("+com+")");
                System.out.println("       【你输了!再来一次吧】");
                //System.out.println();
            }else if (person==computer){
                System.out.println("你出的是("+per+") 电脑出的是("+com+")");
                System.out.println("       【平局!再来一次吧】");
                // System.out.println();
            }else{
                System.out.println("你出的是("+per+") 电脑出的是("+com+")");
                System.out.println("       【恭喜你赢了!!!】");
                System.out.println("【你终于战胜了电脑,游戏结束!】");;
                break;
            }
        }
    }
}

2. 用Go语言实现
package main

import (
    "fmt"
    "math/rand"
)

// 下面这个函数判断一个一维slice在不在二维slice中,相当于python中in功能
func exist_in(str1 [][]string, str2 []string) int {
    for _, item := range str1 {
        if item[0] == str2[0] && item[1] == str2[1] {
            return 1
        }
    }
    return 0
}

func main() {
    var person string
    guess_list := []string{"石头", "剪刀", "布"}
    Win := [][]string{{"布", "石头"}, {"石头", "剪刀"}, {"剪刀", "布"}}

    for {
        num := rand.Intn(len(guess_list))
        computer := guess_list[num]
        fmt.Println(computer)
        fmt.Println("请输入'石头,剪刀,布'")
        fmt.Scanf("%s\n", &person)
        input := []string{computer, person} //构造一个一维slice
        if computer == person {
            fmt.Println("平手!")

        } else if exist_in(Win, input) > 0 {
            fmt.Println("电脑获胜")

        } else {
            fmt.Println("人获胜")
            break
        }
    }
}

3. 用python实现
import random
guess_list = ["石头", "剪刀", "布"]
win_combination = [["布", "石头"], ["石头", "剪刀"], ["剪刀", "布"]]

while True:
    computer = random.choice(guess_list)
    people = input('请输入:石头,剪刀,布\n').strip()
    if people not in guess_list:
        continue
    elif computer == people:
        print("平手,再玩一次!")
    elif [computer, people] in win_combination:
        print("电脑获胜,再玩,人获胜才能退出!")
    else:
        print("人获胜!")
        break

执行结果如下图:
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据知道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值