|
发表于 2020-7-29 22:00:01
|
显示全部楼层
你没有说老王怎么判断,我就没办法了,写了一个,希望对你有帮助,这个程序没有对牌的比较,首先是不知道老王这两张牌你想怎么比,还有就是懒得写了.请看吧.
import java.util.*;
class Pockers extends Stack //这是一副牌的类,里面有54张牌,wash方法为洗牌,继承堆栈,因为摸牌本来就是取上面一张.
{
public Pockers()
{
this.add(new Pocker(Pocker.JOCKER_BLACK));
this.add(new Pocker(Pocker.JOCKER_RED)); //加入两个老王
for(int i=2;i<=14;i++)
for(int j=1;j<=4;j++)
{
this.add(new Pocker(i,j)); //加入牌,j为花色
}
for(int i=1;i<=4;i++) wash(); //洗牌四次
}
public void wash()
{
Pocker temp=null;
Random r=new Random();
for(int i=0;i<54;i++)
{
temp=(Pocker)this.pop();
this.insertElementAt(temp,Math.abs(r.nextInt()%54)); //将第i张牌插入到这副牌随机位置
}
}
public boolean needReWash() //判断是否要重洗.
{
return this.elementCount<10;
}
public void output() //这个是写程序测试用的.
{
for(int i=0;i<54;i++)
{
((Pocker)this.get(i)).output();
}
}
}
class Player //玩家类
{
String name;
public Pocker[] recieve=new Pocker[5];
public Player(int i)
{
if(i==1) name="玩家1";
else name="玩家2";
}
public void getPocker(Pocker pocker,int queue) //得牌一张
{
recieve[queue]=pocker;
}
public void showPocker() //显示玩家的牌
{
System.out.println(name+"的牌为:");
for(int i=0;i<5;i++)
{
recieve[i].output();
}
System.out.println();
}
}
class Judge //裁判
{
public static void compare(Player player1,Player player2) //比较玩家的牌
{
}
public static void give(Pockers p,Player p1,Player p2) //发牌.
{
for(int i=0;i<5;i++)
{
p1.getPocker((Pocker)p.pop(),i);
p2.getPocker((Pocker)p.pop(),i);
}
}
}
class Pocker //一张牌类
{
static int BLOCK=1;
static int FLOWER=2;
static int HEART=3;
static int PEACH=4; //本来开始打算用的花色字段,可惜没有用上.唉
static int JOCKER_RED=20;
static int JOCKER_BLACK=10;
public int number,flower;
public Pocker(int number,int flower) //构造1,它是对一般牌的构造
{
this.number=number;
this.flower=flower;
}
public Pocker(int flower) //这个构造是用来构造jocker牌的.
{
this(100,flower);
}
public void output() //输出这一张牌,这儿用的是"(大小,花色)"格式.
{
System.out.print("("+number+","+flower+")");
}
}
public class a //游戏主函数.
{
public static void main(String[] args)
{
Pockers p=new Pockers();
Player player1=new Player(1);
Player player2=new Player(2);
Judge.give(p,player1,player2);
player1.showPocker();
player2.showPocker();
/*
Judge.compare(player1,player2); //这儿没有写比较函数,这个浪费时间,懒得写,而且你没有说明JOCKER这张牌该怎么算,写了也白写,这个要你自己去写了,呵呵,方法写在Judge类的compare方法里,你可以适当的改一下,或者新建一个类什么的.呵呵.
*/
}
} |
|