java基础之面向对象——人机猜拳实例

来源:互联网 发布:mac怎么移动文件 编辑:程序博客网 时间:2024/06/15 19:32

题目详情可百度

一、计算机类

package com.neusoft;/** * 计算机类 *  */public class Computer {    String nickName;// 计算机角色昵称    int score;// 计算机成绩    String type;// 出拳类型    /**     * 计算机出拳的方法     */    public int showFist() {        // 定义(1--3)随机数        int choice = (int) (Math.random() * 3 + 1);        // 根据随机数判断计算机出拳的结果        switch (choice) {        case 1:            type = "剪刀";            break;        case 2:            type = "石头";            break;        case 3:            type = "布";            break;        }        System.out.println("计算机出拳:" + type);        return choice;    }}

二、玩家类

package com.neusoft;import java.util.Scanner;/** * 玩家类 *  *  */public class Person {    String nickName;// 玩家昵称    int score;// 玩家成绩    String type;// 出拳类型    Scanner input = new Scanner(System.in);    public int showFirst() {        int choice = 0;        do {            System.out.println("请出拳:1、剪刀\t2、石头\t3、布");            choice = input.nextInt();            // 判断玩家出拳的结果            switch (choice) {            case 1:                type = "剪刀";                break;            case 2:                type = "石头";                break;            case 3:                type = "布";                break;            default:                System.out.println("选择有误,请重新输入:");            }        } while (type == null);        System.out.println("你出拳:" + type);        return choice;    }}

三、游戏类

package com.neusoft;import java.util.Scanner;/** * 游戏类 *  */public class Game {    Computer cm = null;// 计算机角色    Person pn = null;// 玩家角色    int count;// 对战的局数    Scanner input = new Scanner(System.in);    /**     * 游戏的初始化     */    private void init() {        cm = new Computer();        pn = new Person();        count = 0;    }    /**     * 游戏的菜单     */    private void menu() {        System.out.println("出拳规则:1、剪刀\t2、石头\t3、布");        System.out.println("选择对战角色:1、曹操\t2、刘备\t3、孙权");        System.out.print("请选择:");    }    public void startGame() {        // 调用游戏初始化方法        init();        do {            // 调用游戏菜单方法            menu();            // 调用玩家选择对战角色的方法            choiceName();        } while (cm.nickName == null);        System.out.println("请输入昵称:");        pn.nickName = input.next();        System.out.println("你选择了与" + cm.nickName + "对战");        System.out.println("游戏开始吗?(y/n)");        String answer = input.next();        while ("y".equals(answer)) {            // 调用游戏对战判断输赢            isWin();            // 统计对战的局数            count++;            System.out.println("是否继续?(y/n)");            answer = input.next();        }        // 游戏结束显示总成绩        showResult();    }    /**     * 玩家选择对战角色     */    private void choiceName() {        int choice = input.nextInt();        switch (choice) {        case 1:            cm.nickName = "曹操";            break;        case 2:            cm.nickName = "刘备";            break;        case 3:            cm.nickName = "孙权";            break;        }    }    /**     * 判断游戏当局的输赢     */    private void isWin() {        // 调用玩家出拳的方法        int pFirst = pn.showFirst();        // 调用计算机的出拳方法        int cFirst = cm.showFist();        // 根据角色出拳的返回值判断当局的输赢,并计算角色的成绩        if (pFirst == 1 && cFirst == 3 || pFirst == 2 && cFirst == 1                || pFirst == 3 && cFirst == 2) {            System.out.println("你好腻害!");            pn.score += 1;        } else if (pFirst == 1 && cFirst == 2 || pFirst == 2 && cFirst == 3                || pFirst == 3 && cFirst == 1) {            System.out.println("猪,你输了!~");            cm.score += 1;        } else {            System.out.println("不公平,竟然平局,再来!~");        }    }    /**     * 显示最终游戏结果     */    private void showResult() {        // 显示对战角色        if (pn.nickName == null || pn.nickName == "") {            pn.nickName = "匿名";        }        System.out.println(cm.nickName + " VS " + pn.nickName);        // 显示对战的局数        System.out.println("对战次数:" + count);        // 显示成绩        if (pn.score > cm.score) {            System.out.println("你太棒了!");        } else if (pn.score == cm.score) {            System.out.println("平局");        } else {            System.out.println("猪头,你输了!~");        }    }}

四、游戏测试类

package com.neusoft;/* * 游戏测试类 */public class GameTest {    public static void main(String[] args) {        Game g = new Game();        g.startGame();    }}
0 0
原创粉丝点击