猜拳游戏(java代码)

有个人Tom设计他的成员变量,成员方法,可以电脑猜拳。电脑每次都会随机生成0,1,2

0表示石头,1表示剪刀,2表示布

并要可以显示Tom的输赢次数(清单)

package exercise7;

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

public class Homework14 {
    public static void main(String[] args) {
        Tom t = new Tom();
        //用来记录最后输赢的情况
        int isWinCount = 0;
        //创建一个二维数组,用来接收局数,Tom出拳情况,以及电脑出拳情况
        int[][] arr1 = new int[3][3];
        int j=0;
        //创建一个一维数组,用来接收输赢情况
        String[] arr2 = new String[3];
        for (int i = 0; i < 3; i++) {
            //第几局
            arr1[i][j] = t.count;
            //获取玩家出的拳
            arr1[i][j + 1] = t.setTomGuessNum();
            //获取电脑出的拳
            arr1[i][j + 2] = t.setComGuessNum();
            //比较玩家和电脑的大小
            arr2[i] = t.judge();
            //对每局的情况进行输出
            System.out.println("=========================================");
            System.out.println("局数\t\t玩家出的拳\t电脑出的拳\t输赢情况");
            System.out.println(t.count + "\t\t" + t.tomGuessNum + "\t\t\t" + t.comGuessNum + "\t\t\t"+t.judge());
            isWinCount = t.winCount(t.judge());
        }
        //对游戏的最终结果进行输出
        System.out.println("\n\n");
        System.out.println("局数\t\t\t玩家出的拳\t电脑出的拳\t输赢情况");
        for (int a = 0; a < arr1.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("你赢了"+isWinCount+"次");
        
    }
}

class Tom {
    int tomGuessNum;//玩家出拳类型0 = 拳头,1 = 剪刀,2 = 布
    int comGuessNum;//电脑出拳类型0 = 拳头,1 = 剪刀,2 = 布
    int winGuessNum;//玩家赢的次数
    int count = 1;//一共比赛3次

    //电脑生成随机猜拳数字的方法
    public int setComGuessNum() {
        Random r = new Random();
        comGuessNum = r.nextInt(3);
        return comGuessNum;
    }

    //玩家生成随机猜拳数字的方法
    public int setTomGuessNum() {
        System.out.println("请输入你要出的拳(0 = 拳头,1 = 剪刀,2 = 布):");
        Scanner s = new Scanner(System.in);
        tomGuessNum = s.nextInt();
        if (tomGuessNum < 0 || tomGuessNum > 2) {//判断输入的数字是否符合要求
            System.out.println("输入的数字错误,请重新输入");
            return setTomGuessNum();//输入错误的话,返回setTomGuessNum(),重新输入
        }
        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("你赢了")) {//统计赢的次数
            winGuessNum++;
        }
        return winGuessNum;
    }
}

结果显示:

请输入你要出的拳(0 = 拳头,1 = 剪刀,2 = 布):
1
=========================================
局数		玩家出的拳	电脑出的拳	输赢情况
1		1			1			平局
请输入你要出的拳(0 = 拳头,1 = 剪刀,2 = 布):
1
=========================================
局数		玩家出的拳	电脑出的拳	输赢情况
2		1			2			你赢了
请输入你要出的拳(0 = 拳头,1 = 剪刀,2 = 布):
1
=========================================
局数		玩家出的拳	电脑出的拳	输赢情况
3		1			0			你输了



局数			玩家出的拳	电脑出的拳	输赢情况
1 			1 			1 			平局

2 			1 			2 			你赢了

3 			1 			0 			你输了

你赢了1次

Process finished with exit code 0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值