编程练习题
编写石头 — 剪刀 — 布的游戏程序。程序提示玩家随机产生一个数,这个数为 000 、 111 或者 222 ,分别表示石头、剪刀和布。程序提示玩家输入值 000 、 111 或者 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 —— 你输了 ——");
}
}