JAVA---猜拳游戏
User
package com.javasm.chuquan;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
import java.util.Scanner;
@Getter
@Setter
public class User {
private String name;
private int userScore;
public int showFirst(@NonNull Scanner input) {
System.out.println("请出拳:1.剪刀 2.石头 3.布(输入对应数字)");
int choice = input.nextInt();
String result = "";
switch (choice) {
case 1:
result = "剪刀";
break;
case 2:
result = "石头";
break;
case 3:
result = "布";
break;
}
System.out.println(name+"出拳 " + result);
return choice;
}
}
Computer
package com.javasm.chuquan;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
@Getter
@Setter
public class Computer {
@NonNull
private String computerName;
private int computerScore;
public int showFirst() {
//代码<80
int random = (int) (Math.random() * 3 + 1);
String result = "";
switch (random) {
case 1:
result = "剪刀";
break;
case 2:
result = "石头";
break;
case 3:
result = "布";
break;
}
System.out.println(computerName + "出拳 " + result);
return random;
}
}
Game
package com.javasm.chuquan;
import lombok.NonNull;
import java.util.Scanner;
public class Game {
private static Scanner input;
private static User user;
private static Computer computer;
static {
input = new Scanner(System.in);
user = new User();
computer = new Computer();
}
public void start() {
String nextJu;
do {
System.out.println("----------猜拳游戏---------");
System.out.println("出拳规则:1.剪刀 2.石头 3.布");
//给计算机选择角色
choseRole();
System.out.println("是否开始对战? y/n");
String answer = input.next();
if ("n".equals(answer)) {
System.out.println("程序退出");
input.close();
return;
}
String nextRound;
int count = 0;
//猜拳
do {
count++;
int userFist = user.showFirst(input);
int computerFist = computer.showFirst();
compareFist(userFist, computerFist);
System.out.println("是否开始下一回合: y/n");
nextRound = input.next();
} while ("y".equals(nextRound));
//统计结果
calResult(count);
System.out.println("是否开始下一局?y/n");
nextJu = input.next();
} while ("y".equals(nextJu));
System.out.println("程序退出");
//开始新的一局需要清零
user.setUserScore(0);
computer.setComputerScore(0);
input.close();
}
private void calResult(int count) {
String name = user.getName();
@NonNull String name1 = computer.getComputerName();
System.out.println(name + "VS" + name1);
System.out.println("对战次数:" + count);
System.out.println("姓名\t得分");
int userScore = user.getUserScore();
int computerScore = computer.getComputerScore();
System.out.println(name + "\t" + userScore);
System.out.println(name1 + "\t" + computerScore);
if (userScore > computerScore) {
System.out.println(name + "赢了");
} else if (userScore == computerScore) {
System.out.println("最终结果:平局");
}else
System.out.println(name1 + "赢了");
}
private void compareFist(int userFist, int computerFist) {
if (userFist - computerFist == 1 || userFist - computerFist == -2) {
user.setUserScore(user.getUserScore() + 1);
System.out.println(user.getName()+"赢了");
} else if (userFist == computerFist) {
System.out.println("结果:和局");
} else {
computer.setComputerScore(computer.getComputerScore() + 1);
System.out.println(computer.getComputerName() + "赢了");
}
}
private void choseRole() {
System.out.println("请选择对方角色:1.刘备 2.孙权 3.曹操");
int choice = input.nextInt();
System.out.println("请录入你的名字:");
String name = input.next();
user.setName(name);
String roleName = "";
switch (choice) {
case 1:
roleName = "刘备";
break;
case 2:
roleName = "孙权";
break;
case 3:
roleName = "曹操";
break;
}
System.out.println(name + "选择" + roleName + "对战");
computer.setComputerName(roleName);
}
}
GameTest,主程序
package com.javasm.test.chuquan_test;
import com.javasm.chuquan.Game;
public class GameTest {
public static void main(String[] args) {
new Game().start();
}
}
浙公网安备 33010602011771号