栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Java实验一:博饼

Java 更新时间:发布时间: 百科书网 趣学号

文章目录

目录

一、实验内容

二、设计思路

三、实验内容

1.博饼类

2.骰子类

3.玩家类

 4. 玩游戏

四、运行结果



一、实验内容

模拟博饼游戏:

  1. 提醒用户输入玩家数(6-10)。
  2. 循环为每个玩家生成六个筛子点数(1-6),根据上图的规则判断所产生的骰子对应的奖项,并输出。
  3. 游戏结束时(所有奖项已经出完),输出每个玩家所获得的奖项以及每个奖项的个数。

二、设计思路

(1)设计骰子类,实现随机掷骰子的功能;

(2)构建玩家类,记录玩家获得的每种奖励的个数;

(3)构建博饼游戏类,判断每次掷骰子时应获得的奖励,判断是否已发放所有的奖励;

三、实验内容




1.博饼类

记录游戏规则:

package game;

public class BoCake
{
	public static final int A = 1;
	public static final int B = 2;
	public static final int C = 4;
	public static final int D = 8;
	public static final int E= 16;
	public static final int F = 32;
	//牺牲一个存储空间,增加程序可读性
	public int[] reward1=new int[7]; //记录状元
	public int reward2=0;
	public int reward3=0;
	public int reward4=0;
	public int reward5=0;
	public int reward6=0;
	
	public BoCake()
	{
		for(int i=1;i<7;i++)
			reward1[i]=0;
		reward2=0;
		reward3=0;
		reward4=0;
		reward5=0;
		reward6=0;
	}
	
	
//判断奖励
	public void judgeReward(Dice dice,Player player)
	{
		int x=0; //记录点数为4的骰子数目
		int a=0,b=0,c=0,d=0,e=0,f=0; 
		for(int i=1;i<7;i++) 
		{
			if(dice.die[i]==4) x++;
			else if(a==0) a=dice.die[i];
			else if(b==0) b=dice.die[i];
			else if(c==0) c=dice.die[i];
			else if(d==0) d=dice.die[i];
			else if(e==0) e=dice.die[i];
			else if(f==0) f=dice.die[i];
		}
		
		//判断奖励 状元等级
		//六博红
		if(x==6) 
		{
			reward1[2]=1;  System.out.println("恭喜有机会获得状元!");
		}
		//六博黑
		else if(x==0 && a==b && b==c && c==d && d==e && e==f) 
		{
			reward1[3]=1;
			System.out.println("恭喜有机会获得状元!");
		}
		//五王
		else if(x==5) 
		{
			if(a==6) reward1[4]=6;
			else if(a==5) reward1[4]=5;
			else if(a==3) reward1[4]=3;
			else if(a==2) reward1[4]=2;
			else if(a==1) reward1[4]=1;
			System.out.println("恭喜有机会获得状元!n");
		}
		//五子登科
		else if(a==b && b==c && c==d && d==e)
		{
			if(x==1 && reward6 




2.骰子类

随机骰子点数:

package game;

public class Dice {
	public int[] die=new int[7];  //骰子点数
	public Dice()
	{
		for(int i = 1;i<7;i++)
			 die[i] =0;	
	}
	
	public void printDice()
	{
		System.out.println("骰子的点数:");
		for(int i = 1;i<7;i++)
			System.out.printf("%d  ",die[i]);
		System.out.print("n");
	}
	
//随机扔骰子
	public void rollDice()
	{
		for(int i = 1;i<7;i++)
		 die[i] = 1 + ( int )(Math.random() * 6);		//m+(int)(Math.Random()*(n-m+1))
	}	

}

3.玩家类
package game;

public class Player 
{
	public static final int A = 1;
	public static final int B = 2;
	public static final int C = 4;
	public static final int D = 8;
	public static final int E= 16;
	public static final int F = 32;
	public int id; //玩家号码
	public int[] result=new int[7]; //记录玩家结果
	
	public Player()
	{
		id=0;
		for(int i=1;i<7;i++)
		result[i]=0;	
	}
	
//判断玩家所获奖励
	public void winReward(Dice dice)
	{
		int x=0; //记录点数为4的骰子数目
		int a=0,b=0,c=0,d=0,e=0,f=0; 
		for(int i=1;i<7;i++) 
		{
			if(dice.die[i]==4) x++;
			else if(a==0) a=dice.die[i];
			else if(b==0) b=dice.die[i];
			else if(c==0) c=dice.die[i];
			else if(d==0) d=dice.die[i];
			else if(e==0) e=dice.die[i];
			else if(f==0) f=dice.die[i];
		}
		
		//判断奖励 状元等级
		if(x==4 && a==1 && b==1 && (result[1]>1||result[1]==0)) result[1]=1;
		//六博红
		if(x==6 && (result[1]>2||result[1]==0)) result[1]=2;  
		//六博黑
		else if(x==0 && a==b && b==c && c==d && d==e && e==f && (result[1]>3||result[1]==0)) 
			result[1]=3;
		//五王
		else if(x==5) 
		{
			if(a==6 && (result[1]>4||result[1]==0)) result[1]=4;
			else if(a==5 && (result[1]>5||result[1]==0)) result[1]=5;
			else if(a==3 && (result[1]>6||result[1]==0)) result[1]=6;
			else if(a==2 && (result[1]>7||result[1]==0)) result[1]=7;
			else if(a==1 && (result[1]>8||result[1]==0)) result[1]=8;
		}
		//五子登科
		else if(a==b && b==c && c==d && d==e)
		{
			//if(x==1 && result[6]9||result[1]==0)) result[1]=9;
			else if(a==5 && (result[1]>10||result[1]==0)) result[1]=10;
			else if(a==3 && (result[1]>11||result[1]==0)) result[1]=11;
			else if(a==2 && (result[1]>12||result[1]==0)) result[1]=12;
			else if(a==1 && (result[1]>13||result[1]==0)) result[1]=13;
		}
		//状元
		else if(x==4 && result[1]==0)
		{
			
			result[1]=14;
		}

	}
}

 

 4. 玩游戏
package game;

import java.util.Scanner;

public class PlayGame {
	//主函数
		public static void main(String[] args) 
		{
			//指定用户数量
			System.out.println("请用户数量(6-10):");
			Scanner scanner= new Scanner(System.in);
			int n=scanner.nextInt();
			System.out.printf("共有用户:%dn",n);
			n=n+1;
			
			//扔骰子
			Dice dice=new Dice() ;
			BoCake cake = new BoCake();
			Player[] player=new Player[n];
			for(int i=1;i 

四、运行结果

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273635.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号