• 第13章 指导学习:人机猜拳


    赵冬梅
    2018-10-15public class Person {
        String name = "匿名";         // 名字
        int score = 0;                 // 积分
        /**
         * 出拳
         * 
         * @return 出拳结果:1.剪刀 2.石头 3.布
         */
        public int showFist() {
            // 接收用户的选择
            Scanner input = new Scanner(System.in);
            System.out.print("
    请出拳:1.剪刀 2.石头 3.布 (输入相应数字) :");
            int show = input.nextInt();
            // 输出出拳结果,并返回
            switch (show) {
            case 1:
                System.out.println("你出拳: 剪刀");
                break;
            case 2:
                System.out.println("你出拳: 石头");
                break;
            case 3:
                System.out.println("你出拳: 布");
                break;
            }
            return show;
        }
    }
    
    
    public class Computer {
           String name = "电脑"; // 名字
           int score = 0;;       // 积分
           
           /**
            * 出拳
            * @return 出拳结果:1.剪刀 2.石头 3.布
            */
           public int showFist(){
               // 产生随机数
               int show = (int)(Math.random()*10)%3 + 1;  //产生随机数,表示电脑出拳
               
               // 输出出拳结果并返回
               switch(show){
                  case 1:
                      System.out.println(name+"出拳: 剪刀");
                      break;
                  case 2:
                      System.out.println(name+"出拳: 石头");
                      break;
                  case 3: 
                      System.out.println(name+"出拳: 布");
                      break;
               }
               return show;
           }
    }
    public class Game1 {
        Person person;       //甲方
        Computer computer;   //乙方
        int count;           //对战次数
        
        /**
         * 初始化
         */
        public void initial(){
            person = new Person();
            computer = new Computer();
            count = 0;
        }
            
        /**
         * 开始游戏
         */
        public void startGame() {
            initial();
            System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------
    ");
            System.out.println("
    		******************");
            System.out.println  ("		**  猜拳, 开始    **");
            System.out.println  ("		******************");
            
            System.out.println("
    
    出拳规则:1.剪刀 2.石头 3.布");
            /*选择对方角色*/
            System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操): ");
            Scanner input = new Scanner(System.in);
            int role = input.nextInt();
            if(role == 1){
                computer.name = "刘备";
            }else if(role == 2){
                computer.name = "孙权";
            }else if(role == 3){
                computer.name = "曹操";
            }  
            
            System.out.print("你选择了"+computer.name+"对战");
        }
    }
    public class Game2 {
        Person person;       //甲方
        Computer computer;   //乙方
        int count;           //对战次数
        
        /**
         * 初始化
         */
        public void initial(){
            person = new Person();
            computer = new Computer();
            count = 0;
        }
            
        /**
         * 开始游戏
         */
        public void startGame() {
            initial();  // 初始化
            System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------
    ");
            System.out.println("
    		******************");
            System.out.println  ("		**  猜拳, 开始    **");
            System.out.println  ("		******************");
            
            System.out.println("
    
    出拳规则:1.剪刀 2.石头 3.布");
            /*选择对方角色*/
            System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操): ");
            Scanner input = new Scanner(System.in);
            int role = input.nextInt();
            if(role == 1){
                computer.name = "刘备";
            }else if(role == 2){
                computer.name = "孙权";
            }else if(role == 3){
                computer.name = "曹操";
            }    
            System.out.println("你选择了 "+computer.name+"对战");
            
            /*开始游戏*/
            System.out.print("
    要开始吗?(y/n) ");
            String con = input.next();
            int perFist;   //用户出的拳
            int compFist;  //计算机出的拳
            if(con.equals("y")){
                /*出拳*/
                perFist = person.showFist();
                compFist = computer.showFist();
                /*裁决*/
                if((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)){
                    System.out.println("结果:和局,真衰!
    ");  //平局
                }else if((perFist == 1 && compFist == 3) || (perFist == 2  && compFist == 1) || (perFist == 3 && compFist == 2)){
                    System.out.println("结果: 恭喜, 你赢了!");  //用户赢                
                }else{
                    System.out.println("结果说:^_^,你输了,真笨!
    ");  //计算机赢                
                }            
            }        
        }
    }
    public class Game3 {
        Person person;       //甲方
        Computer computer;   //乙方
        int count;           //对战次数
        
        /**
         * 初始化
         */
        public void initial(){
            person = new Person();
            computer = new Computer();
            count = 0;
        }
            
        /**
         * 开始游戏
         */
        public void startGame() {
            initial();  // 初始化
            System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------
    ");
            System.out.println("
    		******************");
            System.out.println  ("		**  猜拳, 开始    **");
            System.out.println  ("		******************");
            
            System.out.println("
    
    出拳规则:1.剪刀 2.石头 3.布");
            /*选择对方角色*/
            System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操): ");
            Scanner input = new Scanner(System.in);
            int role = input.nextInt();
            if(role == 1){
                computer.name = "刘备";
            }else if(role == 2){
                computer.name = "孙权";
            }else if(role == 3){
                computer.name = "曹操";
            }    
            System.out.println("你选择了 "+computer.name+"对战");
            
            /*开始游戏*/
            System.out.print("
    要开始吗?(y/n) ");
            String con = input.next();
            int perFist;   //用户出的拳
            int compFist;  //计算机出的拳
            while(con.equals("y")){
                /*出拳*/
                perFist = person.showFist();
                compFist = computer.showFist();
                /*裁决*/
                if((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)){
                    System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !
    ");  //平局
                }else if((perFist == 1 && compFist == 3) || (perFist == 2  && compFist == 1) || (perFist == 3 && compFist == 2)){
                    System.out.println("结果: 恭喜, 你赢了!");  //用户赢
                    person.score++;
                }else{
                    System.out.println("结果说:^_^,你输了,真笨!
    ");  //计算机赢
                    computer.score++;
                }
                count++;
                System.out.print("
    是否开始下一轮(y/n):  ");
                con = input.next();
            }
        }
    }
    public class Game4 {
        Person person;       //甲方
        Computer computer;   //乙方
        int count;           //对战次数
        
        /**
         * 初始化
         */
        public void initial(){
            person = new Person();
            computer = new Computer();
            count = 0;
        }
            
        /**
         * 开始游戏
         */
        public void startGame() {
            initial();  // 初始化
            System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------
    ");
            System.out.println("
    		******************");
            System.out.println  ("		**  猜拳, 开始    **");
            System.out.println  ("		******************");
            
            System.out.println("
    
    出拳规则:1.剪刀 2.石头 3.布");
            /*选择对方角色*/
            System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操): ");
            Scanner input = new Scanner(System.in);
            int role = input.nextInt();
            if(role == 1){
                computer.name = "刘备";
            }else if(role == 2){
                computer.name = "孙权";
            }else if(role == 3){
                computer.name = "曹操";
            }   
            System.out.println("你选择了 "+computer.name+"对战");
            
            System.out.print("
    要开始吗?(y/n) ");
            String con = input.next();
            int perFist;   //用户出的拳
            int compFist;  //计算机出的拳
            while(con.equals("y")){
                /*出拳*/
                perFist = person.showFist();
                compFist = computer.showFist();
                /*裁决*/
                if((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)){
                    System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !
    ");  //平局
                }else if((perFist == 1 && compFist == 3) || (perFist == 2  && compFist == 1) || (perFist == 3 && compFist == 2)){
                    System.out.println("结果: 恭喜, 你赢了!");  //用户赢
                    person.score++;
                }else{
                    System.out.println("结果说:^_^,你输了,真笨!
    ");  //计算机赢
                    computer.score++;
                }
                count++;
                System.out.print("
    是否开始下一轮(y/n):  ");
                con = input.next();
            }
            /*显示结果*/
            showResult();
        }
        
        /**
         * 显示比赛结果
         */
        public void showResult(){
            /*显示最后结果*/
            System.out.println("---------------------------------------------------");
            System.out.println(computer.name + "  VS  " + person.name);
            System.out.println("对战次数:"+ count);
            
            int result = calcResult();
            if(result == 1){
                System.out.println("结果:打成平手,下次再和你一分高下!");
            }else if(result == 2){
                System.out.println("结果:恭喜恭喜!");   //用户获胜
            }else{ 
                System.out.println("结果:呵呵,笨笨,下次加油啊!");   //计算机获胜
            }
            System.out.println("---------------------------------------------------");
        }
        
        /**
         * 计算比赛结果
         * @return 1:战平;2:用户赢;3:电脑赢
         */
        public int calcResult(){
            if(person.score == computer.score){
                  return 1; // 战平
            }else if(person.score > computer.score){
                  return 2; // 用户赢
            }else{
                  return 3; // 电脑赢
            }
            
        }
    }
    public class Game {
        Person person;       //甲方
        Computer computer;   //乙方
        int count;           //对战次数
        
        /**
         * 初始化
         */
        public void initial(){
            person = new Person();
            computer = new Computer();
            count = 0;
        }
            
        /**
         * 开始游戏
         */
        public void startGame() {
            
            System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------");
            System.out.println("
    		******************");
            System.out.println  ("		**  猜拳, 开始    **");
            System.out.println  ("		******************");
            
            System.out.println("
    出拳规则:1.剪刀 2.石头 3.布");
            
            Scanner input = new Scanner(System.in);
            String exit = "n";  // 退出系统
            
            do{
                initial();  // 初始化
                /*选择对方角色*/
                System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操): ");
                
                int role = input.nextInt();
                if(role == 1){
                    computer.name = "刘备";
                }else if(role == 2){
                    computer.name = "孙权";
                }else if(role == 3){
                    computer.name = "曹操";
                }   
                
                // 扩展功能1:输入用户姓名
                /*输入用户姓名*/
                System.out.print("请输入你的姓名:");
                person.name = input.next();
                
                System.out.println(person.name+"  VS  "+computer.name+"  对战
    ");
                // 扩展功能1结束
                
                System.out.print("要开始吗?(y/n) ");
                String start = input.next();  // 开始每一局游戏
                
                
                int perFist;   //用户出的拳
                int compFist;  //计算机出的拳
                
                while(start.equals("y")){
                    /*出拳*/
                    perFist = person.showFist();
                    compFist = computer.showFist();
                    /*裁决*/
                    if((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)){
                        System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !
    ");  //平局
                    }else if((perFist == 1 && compFist == 3) || (perFist == 2  && compFist == 1) || (perFist == 3 && compFist == 2)){
                        System.out.println("结果: 恭喜, 你赢了!");  //用户赢
                        person.score++;
                    }else{
                        System.out.println("结果说:^_^,你输了,真笨!
    ");  //计算机赢
                        computer.score++;
                    }
                    count++;
                    System.out.print("
    是否开始下一轮(y/n):  ");
                    start = input.next();    
                }
                /*显示结果*/
                showResult();            
                
                // 扩展功能3:循环游戏,直到退出系统
                System.out.print("
    要开始下一局吗?(y/n):");
                exit = input.next();            
                System.out.println();
                // 扩展功能3结束
            }while(!exit.equals("n"));    
            
            System.out.println("系统退出!");
        }
        
        /**
         * 显示比赛结果
         */
        public void showResult(){
            /*显示对战次数*/
            System.out.println("---------------------------------------------------");
            System.out.println(computer.name + "  VS  " + person.name);
            System.out.println("对战次数:"+ count);
            
            // 扩展功能2:显示最终的得分
            System.out.println("
    姓名	得分");        
            System.out.println(person.name+"	"+person.score);
            System.out.println(computer.name+"	"+computer.score+"
    ");
            // 扩展功能2结束
            
            /*显示对战结果*/
            int result = calcResult();
            if(result == 1){
                System.out.println("结果:打成平手,下次再和你一分高下!");
            }else if(result == 2){
                System.out.println("结果:恭喜恭喜!");   //用户获胜
            }else{ 
                System.out.println("结果:呵呵,笨笨,下次加油啊!");   //计算机获胜
            }
            System.out.println("---------------------------------------------------");
        }
        
        /**
         * 计算比赛结果
         * @return 1:战平;2:用户赢;3:电脑赢
         */
        public int calcResult(){
            if(person.score == computer.score){
                  return 1; // 战平
            }else if(person.score > computer.score){
                  return 2; // 用户赢
            }else{
                  return 3; // 电脑赢
            }
            
        }
    }
     
     
    
    

      
























     
     
  • 相关阅读:
    CA 证书和数字证书
    PHP获取不了内网IP?
    站点速度检测工具
    Mac地址
    交互机和路由器区别
    关于实体店收银系统和cookie实现登录状态
    Python3 的序列
    Python3 字符串格式化
    Python3 的元组
    Python3 的列表
  • 原文地址:https://www.cnblogs.com/dabrk/p/9789139.html
Copyright © 2020-2023  润新知