Java-猜拳游戏

用面向对象编程的思想,设计一个猜拳游戏,完成人机猜拳互动游戏的开发。
功能:
1) 选取对战角色
2) 猜拳
3) 记录分数

代码如下:
MoraGame类:

package com.homework.lhh;

import java.util.Scanner;

public class MoraGame {
    private String playerName;// 玩家姓名
    private String computerName;// 电脑玩家姓名
    public static int playerScore;// 玩家分数
    public static int computerScore;// 电脑分数
    public static int playNumber;// 对战次数

    // 选择对手对战
    @SuppressWarnings("resource")
    public void fight() {
        // TODO Auto-generated method stub
        System.out.print("请选择对方角色(1.刘备   2.孙权   3.曹操):");
        Scanner sc = new Scanner(System.in);
        computerName = sc.next();
        switch (computerName) {
        case "1":
            this.computerName = "刘备";
            break;
        case "2":
            this.computerName = "孙权";
            break;
        case "3":
            this.computerName = "曹操";
            break;
        default:
            System.out.println("你的输入有误!");
            break;
        }
        System.out.print("请输入你的名字:");
        playerName = sc.next();
        System.out.println(playerName + "  VS  " + this.computerName);
    }
    // 开始玩游戏
    @SuppressWarnings("resource")
    public void startPlay() {
        // TODO Auto-generated method stub
        System.out.println();
        System.out.print("要开始吗?(y/n):");
        Scanner sc = new Scanner(System.in);
        String start = sc.next();
        System.out.println("********************************");
        while (start.toLowerCase().equals("y")) {
            System.out.print("请出拳:1.剪刀   2.石头   3.布(输入相应数字):");
            int playerNumber = sc.nextInt();
            System.out.println();
            switch (playerNumber) {
            case 1:
                System.out.println("你出拳:剪刀");
                break;
            case 2:
                System.out.println("你出拳:石头");
                break;
            case 3:
                System.out.println("你出拳:布");
                break;
            default:
                System.out.println("你的输入有误");
                break;
            }
            System.out.println();
            int computerNumber = (int) ((Math.random() * 10) % 3 + 1);// 电脑产生随机数取值在1-3之间
            switch (computerNumber) {
            case 1:
                System.out.print(this.computerName + "出拳:剪刀");
                break;
            case 2:
                System.out.print(this.computerName + "出拳:石头");
                break;
            case 3:
                System.out.print(this.computerName + "出拳:布");
                break;
            }
            System.out.println();
            // 判断对局结果
            if (playerNumber == computerNumber) {

                System.out.println("啊,平局!");
                playNumber++;
            } else if (((playerNumber == 1) && (computerNumber != 2)) || ((playerNumber == 2) && (computerNumber != 3))
                    || ((playerNumber == 3) && (computerNumber != 1))) {

                System.out.println("哇,你赢了,好厉害!");
                playerScore++;
                playNumber++;
            } else {

                System.out.println("^_^!!!你输了,真笨!");
                computerScore++;
                playNumber++;
            }
            System.out.println();
            System.out.print("是否开始下一局(y/n):");
            start = sc.next();
            System.out.println();
            System.out.println("********************************");
        }
        this.gameEnd();
    }
    //游戏结束
    public void gameEnd() {
        // TODO Auto-generated method stub
        System.out.println();
        System.out.println("********************************");
        System.out.println(playerName + "  VS  " + this.computerName);
        System.out.println("对战次数:" + playNumber);
        System.out.println("姓名\t\t得分");
        System.out.println(this.computerName + "\t\t" + computerScore);
        System.out.println(playerName + "\t\t" + playerScore);
        if (playerScore < computerScore) {
            System.out.println("呵呵,笨笨,下次加油!");
        }else if(playerScore == computerScore){
            System.out.println("哇,竟然平局,我们下次一决胜负!");
        }else {
            System.out.println("哇,你好棒啊!");
        }
    }
}

class Ui {
    public void theme() {
        // TODO Auto-generated method stub
        System.out.println("\t\t********************************");
        System.out.println("\t\t**********猜拳,开始*************");
        System.out.println("\t\t********************************");
        System.out.println();
        System.out.println("出拳规则:1.剪刀   2.石头   3.布");
    }
}

MoraGameTest类:

package com.homework.lhh;

public class MoraGameTest {
    public static void main(String[] args) {
        MoraGame game = new MoraGame();
        Ui ui = new Ui();
        ui.theme();
        game.fight();
        game.startPlay();
    }
}

运行结果如下:
这里写图片描述

这里写图片描述

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值