模拟猜数字书写猜拳

简单实现 模拟猜数字书写猜拳
MoreGameTest内提供了一些实现小游戏的方法,

import java.util.Random;
import java.util.Scanner;

//模拟猜数字书写猜拳
public class MoraGameTest {

    //开始方法
    public void start() {
        //首先调用 规则方法
        rule();
        int count = 0; //对局次数
        int youWin = 0;//获胜次数
        int pcWin = 0; //失败次数
        int noWin = 0;//平局次数

        while(true){
            //每次结束后 ,重新开始的分割线
            System.out.println("__________________________");
            count++;

            //调用电脑随机生成数方法;调用转换1方法
            int pc = pc();
            toString(pc);
//            System.out.println("电脑随机生成的是:"+ toString(pc));
            
            //调用玩家输入方法 ;调用转换方法
            int you = you();
            System.out.println("你出的是:" + toString(you));

            //然后判断 输赢条件 0 平局,1 你赢了,-1电脑赢了
            // 判断输赢
            int isWin = isWin(pc, you);
            if (isWin==0){
                System.out.println("平局");
                noWin++;
            }else if(isWin==1){
                System.out.println("你赢了!");
                youWin++;
            }else if (isWin==-1){
                System.out.println("你输了!");
                pcWin++;
            }
            //5局3胜
            System.out.println("对局次数:"+count+"/5");
            System.out.println("你赢了:"+youWin+"次,你输了:"+pcWin+"次,平局:"+noWin+"次");
            if (youWin>=3){
                System.out.println("对局结束,你先赢了3局!");
                break;
            }if (pcWin>=3){
                System.out.println("对局结束,电脑先赢了3局!");
                break;
            }if (noWin>=3){
                System.out.println("对局结束,平局!");
            }
        }
    }
    //规则方法
    private void rule() {
        System.out.println("请输入指示:0剪刀,1石头,2布");
    }
    //电脑随机生成方法
    private int pc(){
        Random random = new Random();
        //3 是随机生成0—3之间的int类型,不包含3
        return random.nextInt(3);
    }


    //玩家输入方法
    private int you(){
        //获取控制台输入
        Scanner sc = new Scanner(System.in);
        if (sc.nextInt()==0||sc.nextInt()==1||sc.nextInt()==2){
            return sc.nextInt();
        }
        int you = you();
        System.out.println("请重新输入:");
        return you;
    }


    // 判断输赢方法(传入电脑输的方法,和你输入的方法)
    // 0-平 1-赢 -1-输
    private int isWin(int pc, int you) {
        if (pc == you) {
            return 0;
        } else if (pc > you) {
            if (pc - you == 1) {
                return -1;
            } else {
                return 1;
            }
        } else {
            if (you - pc == 1) {
                return 1;
            } else {
                return -1;
            }
        }
    }
    //转换方法1:0,1,2转换为剪刀,石头,布
    private String toString(int i){
        switch(i){
            case 0:
                return "剪刀";
            case 1:
                return "石头";
            case 2:
                return "布";
        }
        return null;
    }
}

Test测试类 进行测试


public class Test {
    public static void main(String[] args) {
    //创建MoraGameTest对象,用以调用提供的方法
        MoraGameTest mo = new MoraGameTest();
        //调用游戏开始方法
        mo.start();
    }
}

效果如下:(可以设置电脑随机生成的数字显示在控制台)
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值