如何用Java做人机交互版的猜谜游戏?

这是ACCP第一学期的作业。你自己多想想。这个供你参考。

//用户类

公共类用户{

int num

public int showFist(){

扫描仪输入=新扫描仪(system . in);

System.out.print("请打卡:1。剪刀2。石头3。布(输入相应的数字):);

num = input . nextint();

开关(数量){

案例1:

System.out.println("你出拳:剪刀");

打破;

案例二:

System.out.println("你出拳:石头");

打破;

案例三:

System.out.println("你出拳:布");

打破;

默认值:

System.out.println("输入错误!");

}

退货数量;

}

}

//计算机类

公共类计算机{

int num 1;

public int showFist1(){

num 1 =(int)(math . random()* 3)+1;

开关(num1){

案例1:

System.out.println("电脑打孔:剪刀");

打破;

案例二:

System.out.println("电脑打孔:石头");

打破;

案例三:

System.out.println("电脑打孔:布料");

打破;

}

返回num 1;

}

}

//游戏类

导入Java . util . *;

公共类游戏{

扫描仪输入=新扫描仪(system . in);

串人;

字符串计算机;

int计数;

int结果;

int[] s=new int[]{0,0 };

public void initialGame(){

System.out.print("请选择一个角色(1:刘备2:孙权3:曹操):");

int index = input . nextint();

开关(索引){

案例1:

Person= "刘备";

打破;

案例二:

Person= "孙权";

打破;

案例三:

Person= "曹操";

打破;

默认值:

指数= 4;

System.out.println("输入错误,请重新输入!");

}

Computer= "匿名";

count = 0;

}

public int calcResult(){

if(s[0]& gt;s[1]){

结果= 1;

} else if(s[1]& gt;s[0]){

结果= 2;

}否则{

结果= 3;

}

返回结果;

}

public void showResult(){

开关(calcResult()){

案例1:

System.out.println("结果:恭喜!");

打破;

案例二:

System.out.println("结果:呵呵,笨蛋,下次加油!");

打破;

案例三:

System.out.println("结果:平局,下次再跟你比!"" );

打破;

}

}

public void startGame(){

系统。out . println(" \ t \ t \ t-欢迎来到游戏世界-");

system . out . println(" \ n \ n * * ");

System.out.println(" **猜测,开始* * ");

system . out . println(" * * ");

系统。out . println(" \ n \ n punch rule:1。剪刀2。摇滚3。布”);

}

公共静态void main(String[] args){

扫描仪输入=新扫描仪(system . in);

user u = new user();

电脑c =新电脑();

game g = new game();

g . start game();

g . initial game();

系统。out . print(" \ n是否要开始?(y/n)");

字符串answer = input . next();

while(answer.equals("y")){

system . out . println();

u . show fist();

c . showfist 1();

if((u num = = 1 & amp;& ampc . num 1 = = 3)| |(u . num = = 2 & amp;& ampc . num 1 = = 1)| |(u . num = = 3 & amp;& ampc.num1==2)){

System.out.println("结果:恭喜你,你赢了!");

g . s[0]= g . s[0]+1;

} else if((u num = = 1 & amp;& ampc . num 1 = = 2)| |(u . num = = 2 & amp;& ampc . num 1 = = 3)| |(u . num = = 3 & amp;& ampc.num1==1)){

System.out.println("结果:_,你输了,真蠢!");

g . s[1]= g . s[1]+1;

}否则{

System.out.println("结果:平局,活该!嘿嘿,等着瞧吧!”);

}

系统。out . print(" \ n \ n是否要开始下一轮?(y/n):);

答案= input . next();

g . count++;

}

system . out . println("-");//不能提交太多重复代码。如果我把它们放长一点会很好看。

system . out . println(g . person+" \ t "+" VS "+" \ t "+g . computer);

System.out.println("战斗次数:"+g . count);

g . show result();

}

}