初·言
猜拳小游戏——进阶版
重点是 “电脑” 运用的随机数,去达成随机出拳的效果
代码:变量名 = (int) (Math.random() * 10 % 3) + 1;
本次完整项目共 6 个类
代码示例:
创建一个TestComputer类
public class TestComputer {
String Name;
int choose;
public int guessRock() {
choose = (int) (Math.random() * 10 % 3) + 1;
switch (choose) {
case 1 -> System.out.println("电脑出拳: 剪刀");
case 2 -> System.out.println("电脑出拳: 石头");
case 3 -> System.out.println("电脑出拳: 巴掌");
}
return choose;
}
}
随后创建一个TypeComputer类
public class TypeComputer {
public static void main(String[] args) {
TestComputer type = new TestComputer();
System.out.println(type.guessRock());
}
}
(2)创建一个TestUser类
import java.util.Scanner;
public class TestUser {
String userName;
int choose;
public int guessRock() {
Scanner sc = new Scanner(System.in);
System.out.println("请出拳:1.剪刀\t 2.石头\t3.巴掌(输入相应数字)");
choose = sc.nextInt();
switch (choose) {
case 1 -> System.out.println("你出拳:剪刀");
case 2 -> System.out.println("你出拳:石头");
case 3 -> System.out.println("你出拳:巴掌");
}
return choose;
}
}
随后创建一个TypeUser类
public class TypeUser {
public static void main(String[] args) {
TestUser type = new TestUser();
System.out.println(type.guessRock());
}
}
(3)创建一个TestGame类
import java.util.Scanner;
public class TestGame {
Scanner sc = new Scanner(System.in);
TestComputer computer;
TestUser user;
String isStart;
int count;
/* 初始化数据源 初始化对象 不引用*/
public void Init() {
computer = new TestComputer();
user = new TestUser();
count = 0;
}
public void startGame() {
Init();
System.out.println("----------------欢迎进入游戏世界----------------");
System.out.println();
System.out.println("输入玩家名称");
user.userName = sc.next();//接收用户名
System.out.println("******************");
System.out.println("*****猜拳开始*****");
System.out.println("******************");
System.out.println();
System.out.println("_________________________");
System.out.println("出拳规则:1.剪刀 2.石头 3.布");
System.out.print("请选择对方角色(1.刘备 2.孙权 3. 曹操):");
int esdi = sc.nextInt();
System.out.println("_________________________");
switch (esdi) {
case 1 -> {
computer.Name = "刘备";
System.out.println("您选择与 刘备 进行游戏");
}
case 2 -> {
computer.Name = "孙权";
System.out.println("您选择与 孙权 进行游戏");
}
case 3 -> {
computer.Name = "曹操";
System.out.println("您选择与 曹操 进行游戏");
}
}
//开始游戏
System.out.println("_________________________");
System.out.println();//换行
System.out.print("\n要开始吗?(y/n)");
isStart = sc.next();
do {
count++;
int use = user.guessRock();//玩家操作
int et = computer.guessRock();
//机器人操作
//判断胜负条件逻辑
System.out.println("_________________________");
if (use > et || et > use) {
if (use - et == 1 || et - use == 2) {
System.out.println("\n恭喜,你战胜了!");
} else if (et - use == 1 || use - et == 2) {
System.out.println("\n电脑获胜了,笨笨。");
}
} else {
System.out.println(computer.Name + ":和局,真衰,等着瞧吧。");
}
System.out.println("_________________________");
System.out.print("\n是否开始下一轮?(y/n)");
isStart = sc.next();
} while (isStart.equals("y"));
showResult();
}
public void showResult() {
System.out.println("_________________________");
System.out.println(user.userName + " V S " + computer.Name);
System.out.println("对战次数:"+count);
System.out.println("_________________________");
}
}
随后创建一个TypeGame类
public class TypeGame {
public static void main(String[] args) {
TestGame type = new TestGame();
type.startGame();
}
}