石头剪刀布游戏2.0

问题:
有个人 Tom 设计他的成员变量、成员方法。可以电脑猜拳,电脑每次会随
0表示石头,1表示剪刀,2表示布,并要可以显示Tom的输赢次数(清单),以3局为例:

import jdk.swing.interop.SwingInterOpUtils;

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

/**
 * @Author wanghaiyang
 * id ************
 * @date 2021/11/6 16:05
 */

/*有个人 Tom 设计他的成员变量、成员方法。可以电脑猜拳,电脑每次会随机生成0,1,2
* 0表示石头,1表示剪刀,2表示布,并要可以显示Tom的输赢次数(清单)*/
public class P261This13 {
    public static void main(String[] args) {
        Tom tom = new Tom();
        int isWinCount = 0;//比赛赢的次数
        Scanner scanner = new Scanner(System.in);
        int [][] arr1=new int[3][3];//接收局数、出拳情况
        int j =0;//表示二维数组的列项
        String[] arr2=new String[3];//接收输赢情况

        for (int i =0;i<3;i++){//比赛sum次
            //玩家出拳:
            System.out.println("请输入你要出的拳:");
            int num=scanner.nextInt();
            tom.setTomGuessNum(num);
            int tomGuess = tom.getTomGuessNum() ;
            //tom.Judge(tom.getsum2(num2), tom.getRandom());
            arr1[i][j+1] =tomGuess;

            //获取电脑的
            int comGuess =tom.computerNum();
            arr1[i][j+2] = comGuess;

            //两者比较
            String isWin = tom.Judge();
            arr2[i] = isWin;
            arr1[i][j]=tom.count;

            //输出每局情况:
            System.out.println("==============================");
            System.out.println("局数\t玩家出拳\t电脑出拳\t输赢情况 ");
            System.out.println(tom.count +"\t\t"+tomGuess+"\t\t"+comGuess+"\t\t"+isWin);
             System.out.println("==============================");
        }

        //最终结果:
        System.out.println("==============最终结果==================");
        System.out.println("局数\t\t玩家出拳\t\t电脑出拳\t\t输赢情况");
        for (int a=0;a< arr1[a].length;a++){
            for (int b =0;b<arr1[a].length;b++){
                System.out.print(arr1[a][b]+"\t\t\t");
            }
            System.out.println(arr2[a]);
            System.out.println();
        }
        System.out.println("======================================");
        System.out.println("你赢了"+tom.count+"次");
    }
}
class Tom{
    int tomGuessNum;//tom出拳类型
    int comGuessNum;//电脑出拳类型
    int winCountNum;//玩家赢的次数
    int count ;//比赛次数
    //输出tom出的数
    public void showInfo(){

    }
    //获取电脑出的数
    public int computerNum(){
        Random random = new Random();
        comGuessNum=random.nextInt(3);
        return comGuessNum;
    }
    //玩家出的拳:
    public void setTomGuessNum(int tomGuessNum){
        if (tomGuessNum>2 || tomGuessNum<0){
            throw new IllegalArgumentException("数字输入错误");
        }
        this.tomGuessNum = tomGuessNum;
    }

    public int getTomGuessNum(){
        return tomGuessNum;
    }


    //比较两者的情况
    public String Judge() {
        if (tomGuessNum==0 && comGuessNum==1){
            return "你赢了";
        }else if (tomGuessNum==1 && comGuessNum==2){
            return "你赢了";
        }else if (tomGuessNum==2 && comGuessNum==0){
            return "你赢了";
        }else if (tomGuessNum== comGuessNum){
            return "平局";
        }else {
            return "你输了";
        }
    }
    public int winCount(String s){
        count++;
        if (s.equals("你赢了")){
            winCountNum++;
        }
        return winCountNum;
    }
}

结果:
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值