投色子游戏用Java怎么实现?
下面菜鸡波就来教大家用Java实现一个不带窗体的投色子判胜游戏。
首先要制订游戏规则。我们这里采用人机对抗的形式。首先,人方投三次骰子,个得三个点数,然后,计算机投三次骰子得三个点数,比较人机双方谁的点数大?判定哪方胜出。
对于人方,会出现三种不同的情况:1,三个点数相同 2,只有两个点数相同 3,个点数都不相同。 对于计算机,也会出现和人一样的结果。
下图是具体判胜图示:
package two048Page;
import java.util.Random;
public class JiQi {
private int dianShu;
Random suiJiShu ;
public JiQi()
{
suiJiShu = new Random();
dianShu = suiJiShu.nextInt(6);
}
int getDianShu()
{
return dianShu;
}
}
判胜代码:
package two048Page;
public class Print {
Print(int jione , int jitwo ,int jithree , int renone ,int rentwo ,int renthree)
{
this.jione = jione;
this.jitwo = jitwo;
this.jithree = jithree;
this.renone = renone;
this.rentwo = rentwo;
this.renthree = renthree;
renSan=3;
renRe =2;
renBuTong = 1;
jiSan =3;
jiRe = 2;
jiBuTong = 1;
}
private int jione , jitwo ,jithree , renone ,rentwo ,renthree ;
private int renSan ,renRe ,renBuTong , jiSan ,jiRe ,jiBuTong;
public void PanDuan()
{
int renZhi;//记录人的点数是那种情况
int jiZhi; //记录 机器点数是那种情况
if(renone == rentwo && rentwo == renthree)
{
renZhi=renSan;
}
else
{
if(renone != rentwo && rentwo != renthree)
{
renZhi = renBuTong;
}
else
{
renZhi = renRe;
}
} //人值判断结束
if(jione == jitwo && jitwo == jithree)
{
jiZhi=jiSan;
}
else
{
if(jione != jitwo && jitwo != jithree)
{
jiZhi = jiBuTong;
}
else
{
jiZhi = jiRe;
}
} //机值判断结束
//以人值为十位,机值为个位 ,构成数字M
//可以构成的数字有:33/23/13/32/22/12/31/21/11
int M = renZhi*10+jiZhi;
switch(M)
{
case 33:
{
if(renone > jione) {System.out.println("人胜"); break;}
else {System.out.println("机胜"); break;}
}
case 22 :
{
if((renone+rentwo+renthree) > (jione+jitwo+jithree))
{System.out.println("人胜"); break; }
else
{System.out.println("机胜"); break; }
}
case 11 :
{
if((renone+rentwo+renthree) > (jione+jitwo+jithree))
{System.out.println("人胜"); break ; }
else
{System.out.println("机胜"); break ; }
}
case 23 :
case 13 :
case 12 :
{
System.out.println("机胜");
break;
}
case 32 :
case 31 :
case 21 :
{
System.out.println("人胜");
break;
}
default : System.out.println("人机判胜出现错误");
}
}
}
具体执行代码:
package two048Page;
import java.io.IOException;
import java.util.Scanner;
public class ZhiXin {
public static void main(String[] args) throws IOException
{
int r[] = new int[3] ,m;
Scanner sc;
for(int a=0 ; a<3 ;a++)
{
System.out.println("输入你产生的第"+ (a+1) +"个随机数:");
sc = new Scanner(System.in);
r[a] = sc.nextInt();
} //人的筛子输入完毕
//机器产生随机数作为筛子数
JiQi one = new JiQi();
JiQi two = new JiQi();
JiQi three = new JiQi();
//System.out.println(one.getDianShu() +"uuu"+ two.getDianShu()+"uuu" +three.getDianShu());
Print p = new Print(one.getDianShu() , two.getDianShu() ,three.getDianShu() ,r[0] ,r[1] ,r[2]);
p.PanDuan();
}
}