各位大虾,小弟初到,写了个扑克牌的初步程序,全部功能尚未实现,请各位给点看法啊

hepeng5970 2006-10-16 09:01:03
下面是我做了个洗牌程序,可以运行,就是不知道怎么写判别输赢的函数。交流交流,请各位大虾给点看法啊..............我邮箱是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());
}
}
}
后面还没想好,大家交流啊
...全文
642 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
salia 2006-10-19
  • 打赏
  • 举报
回复
2黑桃--0#24
2红桃--0#23
2梅花--0#22
2方块--0#21

3黑桃--0#34
3红桃--0#33
3梅花--0#32
3方块--0#31

4黑桃--0#44
4红桃--0#43
4梅花--0#42
4方块--0#41
...........
........
A黑桃--0#E4
A红桃--0#E3
A梅花--0#E2
A方块--0#E1

假设三张牌:
同花顺 : 0#24 0#34 0#44 第一位顺..第二位相同
对子 : ..........
同点 : ..........
顺子 : ..........

如都是同花顺,再比较大小:三张牌加起来相比较大小就成了

我也没实现过...想法而已...应该行得通..
做好了希望能开源...呵呵
hepeng5970 2006-10-19
  • 打赏
  • 举报
回复
试试看,老师要我们考前交,还有几个礼拜,谢谢
hepeng5970 2006-10-18
  • 打赏
  • 举报
回复
哪位仁兄有判赢输的代码啊
hepeng5970 2006-10-17
  • 打赏
  • 举报
回复
用map保存对应键值如:
2黑桃--0#24
2红桃--0#23
2梅花--0#22
2方块--0#21

3黑桃--0#34
3红桃--0#33
3梅花--0#32
3方块--0#31
........如此类推...(A当然要设成比K大拉:)
再按"游戏规则"判断....不就很容易了....:)

这个对于(8)第五等级的牌是杂牌,即除去上列四等之外的任何一手牌,最大的杂牌是不同花色的A,K,J; 这个把key加起来就好了,不过对于同花,对子,同点,顺子就不好弄了,请指教啊
hepeng5970 2006-10-17
  • 打赏
  • 举报
回复
各位大侠给点意见啊
laborbai 2006-10-17
  • 打赏
  • 举报
回复
操作失误!!!
支持下!!
laborbai 2006-10-17
  • 打赏
  • 举报
回复
<a href='http://community.csdn.net/Expert/topic/5084/5084304.xml?temp=.9264643'></a>
xiefang1017 2006-10-17
  • 打赏
  • 举报
回复
用一个二维数组保存牌,如a[0][3]表示红桃5,然后分别写5个方法,每个方法对应的是判断不同的牌的类型,每次开牌的时候分别调用这五个方法,然后按规则判断大小.
hepeng5970 2006-10-16
  • 打赏
  • 举报
回复
从来没用过map,用map保存对应键值怎么写啊,是不是好复杂啊,有没有实例供参考啊,网址也行
hepeng5970 2006-10-16
  • 打赏
  • 举报
回复
xingyaohua 2006-10-16
  • 打赏
  • 举报
回复
学习
zsh6709 2006-10-16
  • 打赏
  • 举报
回复
MARK
salia 2006-10-16
  • 打赏
  • 举报
回复
用map保存对应键值如:
2黑桃--0#24
2红桃--0#23
2梅花--0#22
2方块--0#21

3黑桃--0#34
3红桃--0#33
3梅花--0#32
3方块--0#31
........如此类推...(A当然要设成比K大拉:)
再按"游戏规则"判断....不就很容易了....:)

willishz 2006-10-16
  • 打赏
  • 举报
回复
学习!
hepeng5970 2006-10-16
  • 打赏
  • 举报
回复
回复 ilovechao1314:
有代码吗?参考一下,我邮箱hepeng5970@126.com
ilovechao1314 2006-10-16
  • 打赏
  • 举报
回复
这个很容易的,我以前做过个showhand,可以给你参考下,不过是c++的,
就是在一个2维数组4*13内列出52张牌,分别负值,如2牌 = 1,3牌 = 3,然后去判断是否符合你说的“游戏规则”,如果在同一规则下着判断大小,对于散牌就相加判断大小或者优先级判断大小,
liufei8463 2006-10-16
  • 打赏
  • 举报
回复
还可以捏.
hepeng5970 2006-10-16
  • 打赏
  • 举报
回复
Java 刚学,好多都不会,有什么好的学Java的网站啊,推荐一下
gefengxztg 2006-10-16
  • 打赏
  • 举报
回复
继续努力啊
可以用j2se实现它看看哦
做个界面,好玩

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧