相信大家在小时候一定都玩过石头剪刀布,而且规则都已经了然入心了吧。
好了废话不多说了,直接说游戏实现:
我们模拟人与电脑玩剪刀石头布的游戏,人的输入,由 Scanner 键盘端输入,电脑由随机数生成。
package Practice;
import java.util.Scanner;
public class Rock_Paper_Scissors {
public static void main(String[] args) {
// 需求:玩家和电脑的一个5局三胜的剪刀石头布游戏。
// 变量:
// 玩家和电脑选择的手势。
int playerInput, computerInput;
int playerWinCount = 0;
int computerWinCount = 0;
// 记录局数
int counter = 0;
// 定义常量
final int ROCK = 0;
final int SCISSORS = 1;
final int PAPER = 2;
// 最大胜利局数
final int Max_Counter = 3;
//定义扫描器对象
Scanner scanner = new Scanner(System.in);
boolean end= true;
while (end){
// 选择是否开始本局游戏
int open_Game;
final int YES = 0;
final int NO = 1;
System.out.println("请您选择是否开启本回合游戏:【0-->YES】【1-->NO】");
open_Game = scanner.nextInt();
if (open_Game == 0) {
System.out.println("--------------------欢迎您参加本回合游戏--------------------");
System.out.println("-----------------------------------------------------------");
while (playerWinCount < Max_Counter && computerWinCount < Max_Counter) {
// 玩家选择手势
System.out.println("请您输入手势数字:【0-->石头】【1-->剪刀】【2-->布】");
playerInput = scanner.nextInt();
// 电脑随机手势
computerInput = (int) (Math.random() * 3);
// 打印玩家选择的内容
String str;
if (playerInput == ROCK) {
str = "石头";
} else if (playerInput == SCISSORS) {
str = "剪刀";
} else {
str = "布";
}
System.out.println("玩家选择的手势为:" + str);
// 打印电脑选择的内容
switch (computerInput) {
case ROCK:
str = "石头";
break;
case SCISSORS:
str = "剪刀";
break;
case PAPER:
str = "布";
break;
}
System.out.println("电脑选择的手势为:" + str);
// 比较并打印比较的结果。
if (computerInput == ROCK) {
if (playerInput == ROCK) {
System.out.println("**********本次平局!**********");
} else if (playerInput == SCISSORS) {
System.out.println("*****本局【电脑】胜利了!*****");
computerWinCount++;
} else {
System.out.println("*****本局【玩家】胜利了!*****");
playerWinCount++;
}
} else if (computerInput == SCISSORS) {
if (playerInput == SCISSORS) {
System.out.println("**********本次平局!**********");
} else if (playerInput == PAPER) {
System.out.println("*****本局【电脑】胜利了!*****");
computerWinCount++;
} else {
System.out.println("*****本局【玩家】胜利了!*****");
playerWinCount++;
}
} else {
if (playerInput == PAPER) {
System.out.println("**********本次平局!**********");
} else if (playerInput == ROCK) {
System.out.println("*****本局【电脑】胜利了!*****");
computerWinCount++;
} else {
System.out.println("*****本局【玩家】胜利了!*****");
playerWinCount++;
}
}
// 输出当前比分
System.out.println("【电脑】VS【玩家】:[" + computerWinCount + "]VS[" + playerWinCount + "]");
System.out.println("************************下一局************************");
}
// 打印最终结果
if (computerWinCount == Max_Counter) {
System.out.println("本回合【电脑】最终胜利了!!!");
} else {
System.out.println("本回合【玩家】最终胜利了!!!");
}
} else {
System.out.println("--------------------欢迎下次光临!--------------------");
break;
}
}
}
}