Java-猜拳游戏

              自个看了一段时间的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的内一段代码复制到输入有误的下边即可,但是这样看着重复代码太多,感觉不太美观。


  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值