猜德州扑克新手入门怎么能快速入门

1071人阅读
第三季的综合实战部分是写一个简易扑克牌游戏,功能实现要求如下:
1.创建一副扑克牌
包括四种花色: 黑桃 红桃 梅花 方片
十三种点数 2-10,JQKA,不考虑大小王
2.创建两名玩家
玩家至少有ID,姓名,手牌等属性。手牌为扑克牌的集合
将之前创建的“一副扑克牌”打乱顺序
洗牌后的扑克牌集合,从第一张开始,发给两名玩家,按照一人一张的方式,每人发两张
比较两名玩家的扑克牌,规则为,分别取两人手牌中点数大的牌进行比较
点数大的获胜,若点数相等,则按照黑红梅方的顺序比较花色。
示例效果如下:
输入ID要求是一个整数,因此要加入异常处理
二、程序思路
1. 首先需要创建一个扑克牌类,包含花色和点数等属性;
2.创建玩家类,包含ID、姓名、手牌等属性,手牌可以存入HashSet中;
3.游戏部分需要实现这几个功能:创建扑克牌、洗牌、发牌和比较大小,用List来存储创建的扑克牌。
三、代码实现
扑克牌类:
public class Cards {
public Cards(String design, String point){
this.design =
this.point =
import java.util.*;
public class Player {
public Set&Cards&
public Player(int id, String name){
this.name =
this.handcards = new HashSet&Cards&();
游戏部分:
import java.util.*;
public class Game {
public List&Cards&
public Game(){
this.allcards = new ArrayList&Cards&();
* 创建一副扑克牌
public void setup(){
String design[] = {&黑桃&,&红桃&,&梅花&,&方片&};
String point[] = {&A&,&K&,&Q&,&J&,&10&,&9&,&8&,&7&,&6&,&5&,&4&,&3&,&2&};
for (int i = 0;i&4;i++){
for (int j = 0; j&13;j++){
Cards c = new Cards(design[i], point[j]);
allcards.add(c);
* 通过for each方法访问集合元素
* 遍历打印扑克牌
public void printCards() {
System.out.println(&为:&);
for (Object obj : allcards) {
Cards card = (Cards)
System.out.print(card.design + card.point + &,&);
* 创建玩家,输入ID和姓名
public int creatplayer(int num){
System.out.println(&------请输入第&+ num +&位玩家ID------&);
Scanner input = new Scanner(System.in);
//处理异常
id =input.nextInt();
} catch (Exception e) {
System.out.println(&请输入一个整数ID&);
return this.creatplayer(num);
System.out.println(&------请输入第&+ num +&位玩家姓名------&);
name =input.next();
public void deal(Player playernum){
Cards card = this.allcards.get(0);
playernum.handcards.add(card);
this.allcards.remove(card);
System.out.println(&------玩家 &+playernum.name+&拿牌------&);
* 比较牌面大小
public Cards pkcard(Cards a,Cards b){
ArrayList&String& design = new ArrayList&String&(Arrays.asList(&黑桃&,&红桃&,&梅花&,&方片&));
ArrayList&String& point = new ArrayList&String&(Arrays.asList(&A&,&K&,&Q&,&J&,&10&,&9&,&8&,&7&,&6&,&5&,&4&,&3&,&2&));
if (point.indexOf(a.point)&point.indexOf(b.point))
else if (point.indexOf(a.point)&point.indexOf(b.point))
if (design.indexOf(a.design)&point.indexOf(b.design))
public static void main(String[] args){
System.out.println(&------创建扑克牌------&);
Game game = new Game();
game.setup();
System.out.println(&------扑克牌创建成功------&);
game.printCards();
System.out.println();
System.out.println(&------开始洗牌------&);
Collections.shuffle(game.allcards);
System.out.println(&------洗牌结束------&);
System.out.println(&------创建玩家------&);
game.creatplayer(1);
Player player1 = new Player(game.id, game.name);
game.creatplayer(2);
Player player2 = new Player(game.id, game.name);
System.out.println(&------欢迎玩家
& + player1.name + &和& + player2.name+&------&);
System.out.println(&------现在开始发牌------&);
game.deal(player1);
game.deal(player2);
game.deal(player1);
game.deal(player2);
System.out.println(&------发牌结束,游戏开始!------&);
Cards temp1 = new Cards(&方片&, &2&);
for (Cards c: player1.handcards)
temp1 = game.pkcard(temp1,c);
System.out.println(&玩家&+player1.name+&最大的手牌为:&+temp1.design+temp1.point);
Cards temp2 = new Cards(&方片&, &2&);
for (Cards c: player2.handcards)
temp2 = game.pkcard(temp2,c);
System.out.println(&玩家&+player2.name+&最大的手牌为:&+temp2.design+temp2.point);
if (game.pkcard(temp1,temp2)==temp1)
winname = player1.
else winname = player2.
System.out.println(&--------恭喜玩家&+winname+&获胜!--------&);
System.out.println(&--------玩家各自手牌为:--------&);
System.out.print(player1.name+&:&);
for (Cards c: player1.handcards)
System.out.print(&[&+c.design+c.point+&] &);
System.out.println();
System.out.print(player2.name+&:&);
for (Cards c: player2.handcards)
System.out.print(&[&+c.design+c.point+&] &);
四、输出效果
------创建扑克牌------
------扑克牌创建成功------
黑桃A,黑桃K,黑桃Q,黑桃J,黑桃10,黑桃9,黑桃8,黑桃7,黑桃6,黑桃5,黑桃4,黑桃3,黑桃2,红桃A,红桃K,红桃Q,红桃J,红桃10,红桃9,红桃8,红桃7,红桃6,红桃5,红桃4,红桃3,红桃2,梅花A,梅花K,梅花Q,梅花J,梅花10,梅花9,梅花8,梅花7,梅花6,梅花5,梅花4,梅花3,梅花2,方片A,方片K,方片Q,方片J,方片10,方片9,方片8,方片7,方片6,方片5,方片4,方片3,方片2,
------开始洗牌------
------洗牌结束------
------创建玩家------
------请输入第1位玩家ID------
请输入一个整数ID
------请输入第1位玩家ID------
------请输入第1位玩家姓名------
------请输入第2位玩家ID------
请输入一个整数ID
------请输入第2位玩家ID------
------请输入第2位玩家姓名------
------欢迎玩家 &Mary和Lily------
------现在开始发牌------
------玩家 Mary拿牌------
------玩家 Lily拿牌------
------玩家 Mary拿牌------
------玩家 Lily拿牌------
------发牌结束,游戏开始!------
玩家Mary最大的手牌为:黑桃Q
玩家Lily最大的手牌为:方片9
--------恭喜玩家Mary获胜!--------
--------玩家各自手牌为:--------
Mary:[黑桃Q] [红桃J]&
Lily:[方片7] [方片9]&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3671次
排名:千里之外
原创:17篇
(1)(1)(1)(2)(3)(2)(2)(5)君,已阅读到文档的结尾了呢~~
拖拉机(双升)扑克牌游戏从入门到精通教程
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
拖拉机(双升)扑克牌游戏从入门到精通
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口将一付牌洗好后,一张一张的扣在桌上(平均分成几行和几列)然后随手拿一张就知道扑克牌的点数,而且任意拿都会知道点数,请问这里面的奥妙?
很多种方法,不知道你想要哪一种
我知道的有背牌(要锻炼记忆力,一般背下52张牌不是不可以做到但要下工夫,真正的魔术师在牌完全打乱后能靠记忆把牌洗成按顺序排列的样子叫完美洗牌法完全靠记忆和洗牌的熟练),下牌做记号(手法要快,可以藏牌等),偷看牌(用戒指等反光物,或纯手法即在某个角度看到牌但你却不能察觉),借助科技(有一种液体有机物是透明的具体是什么我忘了,但在红色的眼镜下看就有微弱的颜色)
其他答案(共1个回答)
.可以从背面看到.
表演现象:
魔术师左手拿着两张扑克,胡观众前后翻看一次,说明仅有两张。然后把两张扑克收拢,举在眼前,对扑克吹口气,说声:“扑克飞来,扑克飞来”。再...
天天玩扑克。
这应该只是个数字计算的魔术 我想应该很容易破的
答: 通过各种活动,儿童可以通过接触客观现实获得抽象概念,使身体的活动与心灵世界联系起来
答: 当然喽,足不出户就可以自行休闲玩的过瘾,去欢乐谷娱乐城【
】就可以让你满足啦,准包你过一天跟过一小时一样的速度,总感觉时间过的太慢。...
答: 那他还会继续主持节目吗
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区}

我要回帖

更多关于 德州扑克入门视频 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信