黑马程序员技术交流社区

标题: 分享一个自己的小练习(详细标明了注释)... [打印本页]

作者: 张周飞    时间: 2014-7-2 17:46
标题: 分享一个自己的小练习(详细标明了注释)...
本帖最后由 张周飞 于 2014-7-4 10:00 编辑

/**
通过控制台命令方式实现一个猜拳的游戏,用户通过输入与(1/剪刀.2/石头.3/布),
与电脑PK,最后通过积分的多少判定胜负。
*/
/*
思路-----1:在控制台中提示玩法--2:是否开始游戏(接收1/是,0/否)---3:接收游戏的局数
         ---4:循环接收用户的出拳(1/剪刀.2/石头.3/布)----5:系统也要随机出拳
                 -----6:每一次猜完拳进行记录一次胜的次数。----7:公布结果.
*/

import java.util.Scanner;    //控制台包/类
//import java.util.Arrays; 排序包/类,应该用Arrays.sort(num);
import java.util.Random;    //随机数包/类
public class HomeWork{
     public static void main(String[] args ){
                     Game g=new Game();
                         g.begin();
         }
}
/**猜拳游戏类**/
class Game{
      /*开始游戏的方法*/
          public void begin(){
                   System.out.println("****************************");
                   System.out.println("猜拳游戏的开始");
                   System.out.println("***游戏的规则:1/剪刀.2/石头.3/布*****");
                   Scanner input=new Scanner(System.in);     //实例 控制台包/类
                   System.out.println("***输入1表示游戏开始!/输入0表示退出游戏不玩了");
           int result=input.nextInt();     //控制台输入
           if(result==1){
                                System.out.println("请输入猜拳的次数");
                                int num=input.nextInt();    //输入猜拳到次数
                                 play(num);    //也可以写成这样 this.play();表示 本类中 在这个方法中  调用带一个参数的方法。
                        }else{
                        
                            System.out.println("不玩了,GOODBAY BYE BYE!!!!");
                        }
            }
           public void play(int num){    //带一个参数的方法或者叫函数。
             /****以下代码是play(int num) 的----核心方法****/
                         int userscore=0;    //用户胜局的记录
                         int pcscore=0;    //电脑胜局的记录
                         //电脑随机出来的数(拳)
                         Random R=new Random();    //实例 随机数包/类 数
                        while(num>0){
                                 int X=R.nextInt(3)+1;    //随机生成数
                                System.out.println("请输入出的拳:1 2 3");
                                Scanner input=new Scanner(System.in);
                                int  S=input.nextInt();    //用户输入的数/拳 1 2 3
                                 if(S==1){ //第一种情况
                                          switch(X){
                                                       case 1:
                                                       System.out.println("平局,你出的是剪刀!电脑出的也是剪刀");
                                                        break;
                                                        case 2:
                                                       System.out.println("电脑胜了!,你出的是剪刀!电脑出的也是石头");
                                                        pcscore++;
                                                        break;
                                                        case 3:
                                                       System.out.println("你胜了!,你出的是剪刀!电脑出的也是布");
                                                       userscore++;
                                                        break;
                                          }
                                  }
                                  if(S==2){//第二种情况
                                          switch(X){
                                                       case 1:
                                                       System.out.println("你胜了!,你出的是石头!电脑出的也是剪刀");
                                                        userscore++;
                                                        break;
                                                        case 2:
                                                        System.out.println("平局,你出的是石头!电脑出的也是石头");
                                                        break;
                                                        case 3:
                                                       System.out.println("电脑胜了!,你出的是石头!电脑出的也是布");
                                                        pcscore++;
                                                        break;
                                          }
                                  }
                                  if(S==3){//第三种情况
                                          switch(X){
                                                        case 1:
                                                        System.out.println("电脑胜了!,你出的是布!电脑出的也是剪刀");
                                                        pcscore++;
                                                        break;
                                                        case 2:
                                                       System.out.println("你胜了!,你出的是布!电脑出的也是石头");
                                                       userscore++;
                                                        break;
                                                        case 3:
                                                        System.out.println("平局,你出的是布!电脑出的也是布");
                                                        break;
                                          }
                                  }
                                num--;    //每循环一次减去1,
                           
                         } //whlie()循环结束
                        System.out.println("***********************");
                         System.out.println("你胜:"+ userscore);
                         System.out.println("电脑胜:"+ pcscore);
                         if(userscore==pcscore){
                                 System.out.println("平手....");
                         }else if(userscore>pcscore){
                                  System.out.println("你赢了!");
                         }else{
                                    System.out.println("你输了!");
                         }

                } //play()结束


} //Game类结束





:)大家不妨可以试试做做       javac     java  一下.........................................





作者: luheqi    时间: 2014-7-2 18:02
代码可优化:
剪刀 1 石头 2 布 3
当两者出的相等 平局
若 人出的数 perNum - PCNum == 1 ||  perNum - PCNum == -2 人赢了
else 电脑赢。。。
作者: 张周飞    时间: 2014-7-2 20:48
luheqi 发表于 2014-7-2 18:02
代码可优化:
剪刀 1 石头 2 布 3
当两者出的相等 平局

已修改   
作者: 张周飞    时间: 2014-7-2 20:50
本人  已修改...




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2