2021-10-20

这是一个使用Java编写的猜拳游戏程序,包括玩家和电脑的出拳、游戏判定、结果展示以及胜场统计。玩家可以在每局游戏中选择石头、剪刀或布,电脑会随机出拳。游戏共进行三局,每局结束后会显示当前局的出拳情况和胜负,最后统计玩家的总胜场数。
摘要由CSDN通过智能技术生成

java猜拳游戏三局,分别显示每局对局情况并展示所以最终结果,并统计胜场

import java.util.Scanner;
import java.util.Random;
public class GuessFist{
	public static void main(String[] args){
		int[][] gamerecord = new int[3][3];                //设置三行三列二维数组记录 局数 ---- 玩家出拳-----电脑出拳;
		String [] ifwinrecord =  new String[3];		       //定义存放三局游戏结果的数列,双方拼 / 玩家赢 /电脑赢;
		Scanner myScanner = new Scanner(System.in);
			Random myRandom = new Random();
			Player za = new Player();						//创建游戏玩家za
				Pc pc1 = new Pc();							//创建电脑玩家pc1      在for循环外部创建对象可以避免多次new 对象节省空间 每一局的输入在这两个对象上覆盖即可;
				Judget judget = new Judget();				// 创建判定对象;
				Count counter = new Count();				// 创建计数对象
			int num1;										//	num1存放玩家出拳  num2存放电脑出拳
			int num2;
			int num;                                        //num存放玩家输入的数值
		for(int i = 0 ;i <3 ;i++ ){                       //三局游戏用for循环开始,一共进行三局
			/* int j = 0;  //数列的纵坐标 */
			System.out.println("请输入您的出拳:0-石头,1-剪刀,2-布");         //进行玩家输入出拳
			 num = myScanner.nextInt();
			num1 = za.getPlayerNum(num);												//调用Player类和Pc类的获取输入方法;并将双方输入分别存num1 num2;
			num2 = pc1.getPcNum();
				//将结果存入gamerecord数组;
			
			gamerecord[i][0] = i;											
			gamerecord[i][1] = za.getPlayerNum(num1);
			gamerecord[i][2] = pc1.getPcNum();
			// 获取双方输入并调用JugetGaome方法进行判定,并将结果输入数列ifwinrecord[] 
			ifwinrecord[i] =  judget.JudgetGame(za.getPlayerNum(num1),pc1.getPcNum());
			//根据游戏判定结果,调用计数方法使显示的玩家胜场增加
			counter.playerwinnum(ifwinrecord[i]);
			//每玩完一局输出当前局的状况
			System.out.println("局数\t玩家出拳\t电脑出拳\t胜负状况" );
			System.out.println(i+1 + "          " + gamerecord[i][1] + "   \t\t" + gamerecord[i][2] + "        \t" + ifwinrecord[i] );
			
		}
		//三局全部完成之后 输出总结果
		System.out.println("========分割线下面是结果表=========");
		System.out.println("局数\t玩家出拳\t电脑出拳\t胜负状况" ); 
		for(int n = 0; n < gamerecord.length ;n++){
			System.out.println(n + "         " + gamerecord[n][1] +"  "+ "   \t\t" + gamerecord[n][2] + "         \t\t" + ifwinrecord[n] );
		}
		
		System.out.println("========程序执行完毕,结果表如上=========");
			System.out.println("玩家总共赢了" + counter.playerwincount);
		
		
		
		
	}
}
class Player{
	int playernum ;

	//定义获取玩家输入并判定是否符合规则的方法
	public int getPlayerNum(int num){
		if(num >= 0 && num<=2){
		this.playernum = num;
		return this.playernum;
		}else{
			System.out.println("输入不规范");
			return 0 ;
		}
	}
	
}
//用于获取电脑玩家输入0-2
class Pc{
	int pcnum;
	public int getPcNum(){
	
		this.pcnum = (int)Math.random()*3;
		return this.pcnum;
	}
}
 //  判定类。判定游戏哪方能赢
class Judget{
	String ifwin;
	public String JudgetGame(int playernum, int pcnum){
			if(pcnum == playernum){
				return "双方平" ;
			}else if((playernum == 0 && pcnum == 1)||(playernum == 1 && pcnum == 2)||(playernum == 2 && pcnum == 0)){
				return "玩家赢";
			}else
				return "电脑赢";
	}
}
       //计数类 用于存放玩家胜利,电脑胜利及游戏进行到第几局了;
class Count{
	int playerwincount = 0;
	public int playerwinnum(String result){
		if(result.equals("玩家赢")){
			return ++(this.playerwincount);
		}else
			return this.playerwincount;
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值