各位大虾,小弟初到,写了个扑克牌的初步程序,全部功能尚未实现,请各位给点看法啊
下面是我做了个洗牌程序,可以运行,就是不知道怎么写判别输赢的函数。交流交流,请各位大虾给点看法啊..............我邮箱是hepeng5970@126.com
题:下面给出两个人玩的扑克牌游戏的一种玩法,请设计一个模拟程序,它的基本功能是:(1)发两手牌(利用随机数产生器);(2)确定赢者和赢牌的类型;(3)模拟N次游戏,计算每种类型牌赢或平局的概率。
扑克牌游戏规则如下:
(1)有两个人玩,分别是A和B;
(2)一副扑克牌有52张牌,4种花色(方块、梅花、红桃和黑桃),每种花色的牌的点数按升序排列有2,3,4,5,6,7,8,9,10,J,Q,K,A等13种;
(3)给每个人发3张牌,牌面向上(即,亮牌),赢者立即就可以确定;
(4)最高等级的一手牌称为同花,即3张牌均为同一种花色,最大的同花牌是同一种花色的Q,K,A;
(5)第二等级的牌称为顺子,即点数连续的3张牌,最大的顺子是花色不同的Q,K,A;
(6)第三等级的牌是同点,即点数相同的3张牌,最大的同点是A,A,A;
(7)第四等级的牌是对子,即3张牌中有两张点数相同,最大的对子是A,A,K;
(8)第五等级的牌是杂牌,即除去上列四等之外的任何一手牌,最大的杂牌是不同花色的A,K,J;
(9)若两人的牌类型不同,则等级高者胜;若等级相同,则点数高者胜;若点数也相同,则为平局;
想了好久,才弄出个初使化52张牌,并洗牌的程序,可以运行,下面的判别输赢不会弄,一起来交流一下,呵呵:
这个是Card.java
public class Card
{
private String face;
private String suit;
public Card (String cardFace,String cardSuit)
{
face=cardFace; //牌面
suit=cardSuit; //种类
}
public String toString()
{
return face+" of "+suit;
}
}
这个是DeckOfCard.java
import java.util.Random;
public class DeckOfCards
{
private Card deck[];
private int currentCard;
private Random randomNumbers;
private final int NUMBER_OF_CARDS=52;
public DeckOfCards() //初使化52张牌
{
String faces[]={"Ace","Deuce","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King"};
String suits[]={"Hearts","Diamonds","Clubs","Spades"};
deck=new Card[NUMBER_OF_CARDS];
currentCard=0;
randomNumbers=new Random();
for(int count=0;count<deck.length;count++)
deck[count]=new Card(faces[count%13],suits[count/13]);
}
public void shuffle() //洗牌
{
currentCard=0;
for(int first=0;first<deck.length;first++)
{
int second=randomNumbers.nextInt(NUMBER_OF_CARDS);
Card temp=deck[first];
deck[first]=deck[second];
deck[second]=temp;
}
}
public Card dealCard() //输出测试
{
if(currentCard<deck.length)
return deck[currentCard++];
else
return null;
}
}
下面是CardTest.java 主程序
public class CardTest
{
public static void main(String args[])
{
DeckOfCards myDeckOfCards=new DeckOfCards();
myDeckOfCards.shuffle();
for(int i=0;i<13;i++)
{
System.out.printf("%-20s%-20s%-20s%-20s\n",myDeckOfCards.dealCard(),
myDeckOfCards.dealCard(),myDeckOfCards.dealCard(),myDeckOfCards.dealCard());
}
}
}
后面还没想好,大家交流啊