• 人机猜拳


    用户类

    package com.guess;
    
    import java.util.Scanner;
    
    /**
     * 用户类
     * 
     * @author hp
     *
     */
    public class Person {
        String name;// 用户民
        int perFist;// 用户出拳号
        int perScore;// 用户得分
    
        public void showFist() {// 用户出拳方法
    
            Scanner sc = new Scanner(System.in);
            System.out.print("请出拳:1.剪刀2.石头3.布(输入相应数字):");
            perFist = sc.nextInt();
            switch (perFist) {
            case 1:
                System.out.println("你出拳:剪刀");
                break;
            case 2:
                System.out.println("你出拳:石头");
                break;
            case 3:
                System.out.println("你出拳:布");
                break;
            }
        }
    }
    

    机器人类

    package com.guess;
    
    import java.util.Scanner;
    
    /**
     * 机器出拳
     * 
     * @author hp
     *
     */
    public class Computer {
        String machineName;// 机器人物姓名
        int perScore;// 机器人得分
        int compFist;// 选择机器人出拳编号
    
        /**
         * 选择对方角色
         */
        public void selectMachine() {
    
            Scanner sc = new Scanner(System.in);
            System.out.print("请选择对方角色(1.刘备	2.孙权	3.曹操):");
            int compNum = sc.nextInt();
            if (compNum == 1) {
                machineName = "刘备";
            } else if (compNum == 2) {
                machineName = "孙权";
            } else {
                machineName = "曹操";
            }
        }
    
        /**
         * 机器人出拳
         */
        public void computerFist() {
            compFist = (int) (Math.random() * 10) % 3 + 1;// 产生随机数
            switch (compFist) {
            case 1:
                System.out.println(machineName + "出拳:剪刀");
                break;
            case 2:
                System.out.println(machineName + "出拳:石头");
                break;
            case 3:
                System.out.println(machineName + "出拳:布");
                break;
            }
        }
    }
    

    游戏类

    package com.guess;
    
    import java.util.Scanner;
    
    /**
     * 游戏类
     * 
     * @author hp
     *
     */
    public class Game {
        int count;// 对战次数
        Person pg = new Person(); // 甲方
        Computer cg = new Computer();// 乙方
    
        /**
         * 开始比赛
         */
        public void start() {
            System.out.println("			********************");
            System.out.println("			*****游戏             开始*****");
            System.out.println("			********************");
            System.out.println("出掌规则:1.剪刀	2.石头	3.布");
            String flag;
            boolean b = false;
            Scanner sc = new Scanner(System.in);
            cg.selectMachine(); // 选择对方角色
            System.out.print("请输入你的姓名:");
            pg.name = sc.next();
            System.out.println(pg.name + " VS " + cg.machineName + "
    
    ");
            do {
    
                if (!b) {
                    System.out.print("要开始吗?(y/n)");
                    b = true;
                } else {
                    System.out.print("是否开始下一轮?(y/n)");
                }
                flag = sc.next();
                if ("y".equals(flag)) {
                    pg.showFist();
                    cg.computerFist();
                    select();
                } else {
                    System.out.println("----------------------------------");
                    initial();
                }
            } while (!"n".equals(flag));
        }
    
        /**
         * 比赛判断
         */
    
        public void select() {
            count++;
            if (((pg.perFist == 1) && (cg.compFist == 3))
                    || ((pg.perFist == 2) && (cg.compFist == 1))
                    || ((pg.perFist == 3) && (cg.compFist == 2))) {
                pg.perScore++;
                System.out.println("结果:你赢了,真棒!");
            } else {
                cg.perScore++;
                System.out.println("结果:你输了,真笨!");
            }
        }
    
        /**
         * 结局判断
         */
        public void initial() {
            System.out.println(pg.name + " VS " + cg.machineName);
            System.out.println("对战次数:" + count + "
    ");
            System.out.println("姓名	" + "得分");
            System.out.println(pg.name + "	" + pg.perScore);
            System.out.println(cg.machineName + "	" + cg.perScore + "
    ");
            if (pg.perScore > cg.perScore) {
                System.out.println("结果:恭喜,你赢了!");
            } else {
                System.out.println("结果:呵呵,你输了!");
            }
        }
    
    }
    

    主类,游戏开始类

    package com.guess;
    
    /**
     * 测试主类
     * 
     * @author hp
     *
     */
    public class StartGame {
        public static void main(String[] args) {
            Game g = new Game(); // 实例化game类
            g.start(); // 调用game类方法开始游戏
        }
    }
    

    程序运行截图
    这里写图片描述
    面向对象的思想,一个类中,当有这个类存在这个属性,这个属性可以是成员变量,否则只能是局部变量;方法也是如此

  • 相关阅读:
    A4988和CNC SHIELD使用方法 步进电机
    MTP 写字机器
    s*s*r备用
    VHDL 例程
    ESP8266 使用
    世界四大航海家
    第六周学习进度总结
    关于tensorflow版本报错问题的解决办法
    第五周学习进度总结
    机器学习对文本的聚类KMeans
  • 原文地址:https://www.cnblogs.com/wangqilong/p/9417577.html
Copyright © 2020-2023  润新知