自个看了一段时间的Java教学视频,把编程的语言基础除了数组和方法过了一遍,然后做了个小程序:
1:猜拳游戏,在控制台输入三个数字分别代表剪刀,石头,布,电脑也会自动在后台随机出这三个选项,然后把这三个选项对比,输出结果,最后统计玩家赢得次数。
2:启用Scanner,分别用1,2,3代表三个选项0表示退出,a代表控制台输入的数字,b代表电脑随机生成的数字,用Math.random()函数,并保证b的范围在[1,3]。score则代表玩家赢得次数
3:用while循环语句。当控制台输入的a在[1,3]之间的时候则进入循环,启用switch...case。当控制台输入的a不在[1,3]之间的时候,可以在外边用个if...else语句,a==0则退出,a>=4则输入有误。循环体中,当玩家赢得时候可以在里边让score自增,这样就可以统计玩家赢得次数,同理平手或者电脑赢得次数也可以如此统计。
4:代码
//猜拳游戏
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入(1:剪刀,2:石头,3:布,0:退出):");
int score=0;
int a=sc.nextInt();//我出的
while(a!=0&&a<4){
int b=(int)(Math.random()*3+1); //电脑出的
switch (a){
case 1:
System.out.println("你出的:剪刀!");
break;
case 2:
System.out.println("你出的:石头!");
break;
case 3:
System.out.println("你出的:布!");
break;
default:
}
switch (b){
case 1:
System.out.println("电脑出的:剪刀!");
break;
case 2:
System.out.println("电脑出的:石头!");
break;
case 3:
System.out.println("电脑出的:布!");
break;
default:
}
if(a==b){
System.out.println("平!");
}else if(b-a==1||a-b==2){
System.out.println("电脑赢了!");
}else if(a-b==1||b-a==2){
System.out.println("你赢了!");
score++;
}
System.out.print("猜拳游戏,请输入(1:剪刀,2:石头,3:布,0:退出):");
a=sc.nextInt();
}
if(a==0){
System.out.println("欢迎再来!");
}else {
System.out.println("输入有误!");
}
System.out.println("赢了:"+score+"次!");
}
}
5:这个代码还有个bug就是当a>=4时,程序只显示输入有误,并不会让继续输入。
现阶段学到的知识,解决这个bug的话,把while语句及其上边控制台输入a的内一段代码复制到输入有误的下边即可,但是这样看着重复代码太多,感觉不太美观。