java吧 关注:1,255,634贴子:12,745,010

新手求教 用if来实现猜拳的输赢的判断

只看楼主收藏回复

刚学java,跟着视频学习的,有个作业题是让用if来实现猜拳输赢的判断.
视频里教的都是用if一个一个进行判断,就是哩哩啦啦一堆if.就想说有没有方法可以简单一些进行判断.
我的实现是这样的,

想请教一下有没有什么更好的方法进行判断?
本人绝对菜鸟,还请大家见谅


IP属地:北京1楼2012-12-08 23:01回复
    感觉好多人在,没人搭理啊~~~~~~~


    IP属地:北京2楼2012-12-08 23:08
    收起回复
      酱油路过.....


      IP属地:河南3楼2012-12-08 23:09
      收起回复
        表示不喜欢看截图的代码


        4楼2012-12-08 23:48
        收起回复
          public class Hello{
          public static void main(String args[]){
          //1代表石头,2代表剪子,3代表布
          int play1 = 1;
          int play2 = 2;
          //先判定是平局
          if (play1 == play2){
          System.out.println("该局平局");
          }
          //如果不是布和石头,就谁大谁输
          else if((play1 == 1 && play2 != 3) && (play1 == 3 && play2 != 1)&& (play2 == 1 && play1 != 3)&&(play2 == 3 && play1 != 1)){
          if(play1 > play2){
          System.out.println("play1胜利");
          }else{
          System.out.println("play2胜利");
          }
          }
          //真有石头和布就是谁大谁赢
          else if(play1 > play2){
          System.out.println("play2胜利");
          }else{
          System.out.println("play1胜利");
          }
          }
          }


          IP属地:北京5楼2012-12-08 23:57
          收起回复
            你这太麻烦了,,,
            int a=1,b=2;
            ......................("猜拳的提示:");
            ......此处加一个方法只能输入1||2||3;不是就告诉他输入错误!
            而且电脑为b,,设置一个随机范围是1~3
            if(a=b){
            .......("和局");
            }
            if(a>b){
            .........("你赢了");
            }else if(a<b){
            .......("电脑赢了");
            }


            IP属地:北京6楼2012-12-09 00:09
            收起回复
              import java.util.Scanner;
              public class StartGuess {
              Scanner input=new Scanner(System.in);
              int sz;
              int dn;
              int ren;
              public void show(){
              int s=0,d=0;
              System.out.println("-----------欢迎进入游戏世界----------\n");
              System.out.println("\t\t****************************");
              System.out.println("\t\t** 猜拳,开始 **");
              System.out.println("\t\t*******************************\n");
              System.out.println("出拳规则:1.剪刀 2.石头 3.布");
              System.out.println("请选择对方角色(1:刘备2:孙权3:曹操):");
              ren=input.nextInt();
              show3();
              System.out.println("要开始吗?(y/n)");
              String kaishi=input.next();
              while("y".equals(kaishi)){
              show1();
              show2();
              if(sz==dn){
              System.out.println("和局!");
              }else if(sz==1&&dn==2||sz==2&&dn==3||sz==3&&dn==1){
              System.out.println("结果:你输了!!");
              d++;
              }else if(sz==1&&dn==3||sz==2&&dn==1||sz==3&&dn==2){
              System.out.println("结果:你赢了!");
              s++;
              }
              System.out.println("是否进行下一轮:(y/n)");
              kaishi=input.next();
              }
              System.out.println("---------------------------------");
              System.out.println();
              }
              public int show1(){
              System.out.println("请出拳:1.剪刀 2.石头 3.布(输入对应数字)");
              int sz=input.nextInt();
              if(sz==1){
              System.out.println("你出拳:剪刀");
              }else if(sz==2){
              System.out.println("你出拳:石头");
              }else if(sz==3){
              System.out.println("你出拳:布");
              }
              return sz;
              }
              public int show2(){
              int dn=(int)(Math.random()*3+1);
              if(dn==1){
              System.out.println("电脑出拳:剪刀");
              }else if(dn==2){
              System.out.println("电脑出拳:石头");
              }else if(dn==3){
              System.out.println("电脑出拳:布");
              }
              return dn;
              }
              public int show3(){
              if(ren==1){
              System.out.println("你选择了:刘备");
              }else if(ren==2){
              System.out.println("你选择了:孙权");
              }else if(ren==3){
              System.out.println("你选择了:曹操");
              }
              return ren;
              }
              }


              IP属地:北京7楼2012-12-09 00:21
              收起回复
                2586789239 QQ 愿与你共同交流


                9楼2012-12-09 02:29
                回复
                  目测在北大青鸟上学、、、


                  IP属地:广西10楼2012-12-09 08:29
                  收起回复
                    过来人、做过同样的题目路过、、、不过现在都忘了、、


                    IP属地:广西11楼2012-12-09 08:51
                    收起回复
                      两个相减,是0就是平局,是-1或者2就前面赢,剩下后面赢。


                      12楼2012-12-09 09:29
                      收起回复
                        围观,学习


                        13楼2012-12-10 21:50
                        回复
                          while("y".equals(kaishi))
                          {
                          sz= show1();//不好意思,这个返回忘记接收了
                          dn= show2();//同上
                          if(sz==dn)
                          {
                          System.out.println("和局!");
                          }


                          IP属地:北京14楼2012-12-10 21:51
                          回复
                            北大青鸟课本上的一个题目。。


                            IP属地:上海15楼2012-12-10 22:02
                            收起回复
                              判断都是需要很多IF 的,嫌换着麻烦,电脑改成用随机函数,你自己出的用手动输入,不就完了。然后判断哪个大哪个小,.. 也是三个...。
                              或者俩数相减 seith-case ..


                              IP属地:河北16楼2012-12-11 00:08
                              回复