简单实现 模拟猜数字书写猜拳
MoreGameTest内提供了一些实现小游戏的方法,
import java.util.Random;
import java.util.Scanner;
//模拟猜数字书写猜拳
public class MoraGameTest {
//开始方法
public void start() {
//首先调用 规则方法
rule();
int count = 0; //对局次数
int youWin = 0;//获胜次数
int pcWin = 0; //失败次数
int noWin = 0;//平局次数
while(true){
//每次结束后 ,重新开始的分割线
System.out.println("__________________________");
count++;
//调用电脑随机生成数方法;调用转换1方法
int pc = pc();
toString(pc);
// System.out.println("电脑随机生成的是:"+ toString(pc));
//调用玩家输入方法 ;调用转换方法
int you = you();
System.out.println("你出的是:" + toString(you));
//然后判断 输赢条件 0 平局,1 你赢了,-1电脑赢了
// 判断输赢
int isWin = isWin(pc, you);
if (isWin==0){
System.out.println("平局");
noWin++;
}else if(isWin==1){
System.out.println("你赢了!");
youWin++;
}else if (isWin==-1){
System.out.println("你输了!");
pcWin++;
}
//5局3胜
System.out.println("对局次数:"+count+"/5");
System.out.println("你赢了:"+youWin+"次,你输了:"+pcWin+"次,平局:"+noWin+"次");
if (youWin>=3){
System.out.println("对局结束,你先赢了3局!");
break;
}if (pcWin>=3){
System.out.println("对局结束,电脑先赢了3局!");
break;
}if (noWin>=3){
System.out.println("对局结束,平局!");
}
}
}
//规则方法
private void rule() {
System.out.println("请输入指示:0剪刀,1石头,2布");
}
//电脑随机生成方法
private int pc(){
Random random = new Random();
//3 是随机生成0—3之间的int类型,不包含3
return random.nextInt(3);
}
//玩家输入方法
private int you(){
//获取控制台输入
Scanner sc = new Scanner(System.in);
if (sc.nextInt()==0||sc.nextInt()==1||sc.nextInt()==2){
return sc.nextInt();
}
int you = you();
System.out.println("请重新输入:");
return you;
}
// 判断输赢方法(传入电脑输的方法,和你输入的方法)
// 0-平 1-赢 -1-输
private int isWin(int pc, int you) {
if (pc == you) {
return 0;
} else if (pc > you) {
if (pc - you == 1) {
return -1;
} else {
return 1;
}
} else {
if (you - pc == 1) {
return 1;
} else {
return -1;
}
}
}
//转换方法1:0,1,2转换为剪刀,石头,布
private String toString(int i){
switch(i){
case 0:
return "剪刀";
case 1:
return "石头";
case 2:
return "布";
}
return null;
}
}
Test测试类 进行测试
public class Test {
public static void main(String[] args) {
//创建MoraGameTest对象,用以调用提供的方法
MoraGameTest mo = new MoraGameTest();
//调用游戏开始方法
mo.start();
}
}
效果如下:(可以设置电脑随机生成的数字显示在控制台)