《升级》扑克牌游戏——Python实现
玩家模块的规范:
用一个长度为2的字符串表示一张牌:(D,C,H,S) + (A,2,3,4,5,6,7,8,9,0,J,Q,K) 用"jk"、"JK"分别表示小王、大王
游戏顺序是逆时针方向
角色用一个字符串表示,("banker","banker_opposite","banker_left","banker_right")分别表示庄家、庄家的对家、庄家的左边、庄家的右边
不考虑甩牌
使用python进行设计player模块设计:设计函数:
def add_card_and_is_snatch(current_card):
表示玩家摸到一张牌curernt_card,并选择是否抢庄。
current_card表示一张牌(长度为2的字符串)
如果抢庄,返回相应的牌的字符串,否则返回''设计函数:
def add_left_cards(left_cards):
只需要庄家才会用到,表示底牌是left_cards,left_cards是一个长度为2的字符串的list
需要返回玩家准备埋到底牌的牌,返回值也是一个长度为2的字符串的list设计函数:
def finish_one_round(current_turn_out_cards):
表示这一轮出牌结束,玩家被告知这一轮的出牌信息,
current_turn_out_cards表示一个三元组(order,role,card)的list,
每一个三元组表示这一轮你出牌之前的某一个人出的牌的信息,
order是一个整数,表示出牌顺序(1,2,3,4)
role是一个字符串,表示角色("banker","banker_opposite","banker_left","banker_right")
card是一张牌设计函数:
def set_main_value(main_value):
玩家被告知主面值是什么,main_value是一个字符(A,2,3,4,5,6,7,8,9,0,J,Q,K)表示主面值设计函数:
def set_main_color(main_color):
玩家被告知主花色是什么,main_color是一个字符(D,C,H,S)表示主花色设计函数:
def player_init():
表示现在开始一局新的游戏,并初始化相关变量设计函数:
def set_role(role):
玩家被告知自己的角色是什么,role是一个字符串("banker","banker_opposite","banker_left","banker_right")设计函数:
def play_out_cards(turn, current_turn_out_cards):
turn表示当前是第几轮出牌,current_turn_out_cards表示一个三元组(order,role,card)的list,
每一个三元组表示这一轮你出牌之前的某一个人出的牌的信息,
order是一个整数,表示出牌顺序(1,2,3,4)
role是一个字符串,表示角色("banker","banker_opposite","banker_left","banker_right")
card是一张牌
函数需要返回决定出的一张牌设计函数:
def show_cards():
需要返回当前玩家的手牌(长度为2的字符串的list)
UI说明:
import UI
在游戏初始化模块添加代码:
# Initialize pygamepygame.init()setting = UI.Setting()SCREEN_WIDTH, SCREEN_HEIGHT = setting.SCREEN_WIDTH, setting.SCREEN_HEIGHTx, y = 150, 60os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (x,y)screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))pygame.display.set_caption("升级")background = UI.Background(screen, setting)
使用接口说明:
initial(self):
每轮游戏初始化函数,重置卡组等功能;
add_card(self, card, turn):
发牌阶段,turn为目的发牌玩家的位置0-3,card为所发牌值;
add_cards_over(self, inputs, outputs, main_color, master):
发牌阶段结束后调用此函数;input为发给庄家的6张底牌,output为庄家压底的6张牌;mian_color为此局的主色,master是庄家玩家的位置0-3;
push_cards(self, cards, turn):
打牌阶段,函数意义是turn玩家打出cards,cards为card列表,即所有打出的牌值;
turn_over(self):
一轮牌结束阶段;清空四位玩家打出的所有牌;
update_point (self, point, level1, level2):
一轮牌结束阶段,更新当前得分和级数;point为当前得分,level1为东西位置玩家当前的级数,level2为南北玩家当前的级数
传递变量说明:
card:
(D,C,H,S) + (A,2,3,4,5,6,7,8,9,0,J,Q,K) 用"jk"、"JK"分别表示小王、大王
黑桃-spade 红桃-heart 方快-diamond 草花-club
黑桃3 : card = ‘s3’
turn:
整数0-3
(0, 1, 2, 3) 等价于 ('East', 'North', 'West', 'South')
参考demo: judge为裁判模块,myPlayer为AI玩家,运行judge.py
运行截图:
很多人找我要资源,划重点:
附件:上传至CSDN下载,传送门:https://download.csdn.net/download/weixin_37922777/10839701
《升级》扑克牌游戏——Python实现相关推荐
- python纸牌游戏_《升级》扑克牌游戏——Python实现
[实例简介] <升级>扑克牌游戏--Python实现,包括UI界面,AI玩家,裁判监督三大模块. [实例截图] [核心代码] UI └── UI ├── Readme.pdf ├── UI ...
- Python 抽扑克牌游戏
''' Python 抽扑克牌游戏 by 郑瑞国 ''' import random puke=[x for x in range(1,55)] pukes={} #print(puke)types ...
- python做一个打怪升级的游戏
可以使用 Python 开发一个类似 "打怪升级" 的游戏,可以使用 Python 的基本语法和面向对象编程思想来实现. 首先,需要定义一个角色类,包含角色的属性(如生命值,攻击力 ...
- 4.5 python 实战之扑克牌游戏 2021-06-20
前面我们讲了python的爬虫,其实python也可以制作游戏,又好玩又有趣,这一章带大家来做一个小游戏来体验一下: 下面我们在代码中来了解更多细节: 游戏规则: 一副扑克牌52张(除了大小王), 4 ...
- Python实现21点扑克牌游戏
"21点扑克牌游戏"又名黑杰克(Blackjack),是一种流行的扑克游戏.该游戏由两到六个人玩,使用除大小王之外的52张牌,游戏者的目标是使手中的牌的点数之和不超过21点且尽量大 ...
- PHP将108扑克牌发给6个人,6人扑克牌游戏
这是一篇关于个.扑克.6 人.人扑克牌游戏和六个人两副牌玩什么.扑克牌六张游戏规则.6人玩的纸牌游戏叫啥的文章.会让你对"打勾鸡扑克6人游戏"的问题有更深一步的了解. 六个人2.闯 ...
- 24点游戏python版
24点游戏python版 问题描述与规则 24点游戏是经典的纸牌益智游戏.常见游戏规则:从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表 ...
- 扑克牌游戏程序——人机对抗
编写扑克牌游戏程序,初步设定玩家是人机对抗,每人各抓12张牌,游戏规则是每次只能出一张牌,投骰子决定谁先出牌.点数大的管住点数小的.如果管不住对方时就不出牌,让对方出牌.先出完牌的一方为赢.权值大小规 ...
- 弹球游戏python代码含记分模式_python编写弹球游戏的实现代码
用Blender制作一个兵乓球小游戏,要编写Python代码需要安装pygame 包没有面对困难的勇气,也就没有享受快乐的权利. python 怎么写双人弹球游戏最难过的事不是别人又得罪你了,而是你自 ...
最新文章
- 虚拟化--015 配置VMware View Event database失败:
- Three.js中自定义控制几何体的点和面的属性
- Android Volley框架的使用(二)
- 发布在即!.NET Core 1.0 RC2已准备就绪
- 结束 txt进程_Python多进程抓取拉钩网十万数据
- 对于网络爬虫的提问?
- Kali学习笔记5:被动信息收集工具集
- mysqlslap 压力测试工具
- Python实现基于HDFS的云盘系统
- 后置递增运算符(JS)
- oracle11.2.0.4使用impdp导入时报错:ORA-39083 ORA-00439
- Chrome浏览器离线安装包下载方法
- Python实现简单的excel对比工具
- Java开发企业微信功能
- centos7查看进程ps_查看进程之ps命令
- 6取余11c语言,中国剩余定理“大衍求一术”手算方法及四个习题
- 处理器排行_2019年度PC处理器性能排行榜:AMD反超Intel
- 快递查询接口-快递鸟对接方案
- 《AlignedReID: Surpassing Human-Level Performance in Person Re-Identification》论文解读
- 红外对管信号处理电路(滞回比较器)