Java 猜拳游戏

本文介绍了一个简单的石头—剪刀—布游戏程序设计案例。玩家与电脑进行对决,通过输入0、1、2来选择石头、剪刀或布,程序会随机生成电脑的选择,并判断胜负,直至一方赢得两局。游戏采用Java语言编写,使用Scanner和Random类实现用户输入和电脑随机选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编程练习题

编写石头 — 剪刀 — 布的游戏程序。程序提示玩家随机产生一个数,这个数为 000111 或者 222 ,分别表示石头、剪刀和布。程序提示玩家输入值 000111 或者 222 ,然后显示一条消息,表明玩家和电脑谁赢了游戏,谁输了游戏,或是平局。玩家可以连续地玩这个游戏,直到玩家或者电脑先赢对手两次为止。

提示:石头可以砸剪刀,剪刀可以剪布,而布可以包石头。

下面是运行示例

 ———————— 猜拳游戏 ————————
 石头(0)、剪刀(1)、布(2)
请出拳:0
电脑:剪刀
玩家:石头
 —— 当前比分 ——
电脑 0 : 1 玩家
  —— 你赢了 ——
 ———————— 猜拳游戏 ————————
 石头(0)、剪刀(1)、布(2)
请出拳:1
电脑:剪刀
玩家:剪刀
 —— 当前比分 ——
电脑 0 : 1 玩家
  —— 平局 ——
 ———————— 猜拳游戏 ————————
 石头(0)、剪刀(1)、布(2)
请出拳:0
电脑:布
玩家:石头
 —— 当前比分 ——
电脑 1 : 1 玩家
  —— 你输了 ——
 ———————— 猜拳游戏 ————————
 石头(0)、剪刀(1)、布(2)
请出拳:1
电脑:布
玩家:剪刀
 —— 当前比分 ——
电脑 1 : 2 玩家
  —— 你赢了 ——
* * 游戏结束 * *
 —— 最终比分 ——
电脑 1 : 2 玩家
  —— 你赢了 ——

参考代码

import java.util.Scanner;
import java.util.Random;
public class Game {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Random r = new Random();
        int computer = 0, user = 0;
        while (computer < 2 && user < 2) {
            int computerNumber = r.nextInt(3);
            System.out.print(" ———————— 猜拳游戏 ————————\n石头(0)、剪刀(1)、布(2)\n请出拳:");
            int userNumber = input.nextInt();
            switch (computerNumber) {
                case 0:
                    if (userNumber == 0) {
                        System.out.println("电脑:石头\n玩家:石头");
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n   —— 平局 ——");
                    }
                    else if (userNumber == 1) {
                        System.out.println("电脑:石头\n玩家:剪刀");
                        computer++;
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n  —— 你输了 ——");
                    }
                    else if (userNumber == 2) {
                        System.out.println("电脑:石头\n玩家:布");
                        user++;
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n  —— 你赢了 ——");
                    }
                    break;
                case 1:
                    if (userNumber == 0) {
                        System.out.println("电脑:剪刀\n玩家:石头");
                        user++;
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n  —— 你赢了 ——");
                    }
                    else if (userNumber == 1) {
                        System.out.println("电脑:剪刀\n玩家:剪刀");
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n   —— 平局 ——");
                    }
                    else if (userNumber == 2) {
                        System.out.println("电脑:剪刀\n玩家:布");
                        computer++;
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n  —— 你输了 ——");
                    }
                    break;
                case 2:
                    if (userNumber == 0) {
                        System.out.println("电脑:布\n玩家:石头");
                        computer++;
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n  —— 你输了 ——");
                    }
                    else if (userNumber == 1) {
                        System.out.println("电脑:布\n玩家:剪刀");
                        user++;
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n  —— 你赢了 ——");
                    }
                    else if (userNumber == 2) {
                        System.out.println("电脑:布\n玩家:布");
                        System.out.println(" —— 当前比分 ——\n电脑 " + computer + " : " + user + " 玩家\n   —— 平局 ——");
                    }
                    break;
            }
        }
        if (user > 1)
            System.out.println("* * 游戏结束 * *\n —— 最终比分 ——\n电脑 " + computer + " : " + user + " 玩家\n  —— 你赢了 ——");
        else
            System.out.println("* * 游戏结束 * *\n —— 最终比分 ——\n电脑 " + computer + " : " + user + " 玩家\n  —— 你输了 ——");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值