记牌器
游戏规则
统计每位玩家出过的牌况,从而大概估计一下可能的赢面
代码实现
首先把这个规则用代码写出来
1.一共分花色和牌面,有54张牌
2.每次都进行记录,并加和
再在它基础上进行简单的可视化(主要是利用Easygui的界面)
g.ccbox()#选择框
g.msgbox()#提醒框
最后查缺补漏,看看有没有什么Bug
1.能够随时退出游戏
2.可以累计
利用pyinstaller -F -w -i xx.ico cal.py命令打包成exe文件
import easygui as g
import tkinter as tk
from enum import Enum
from tabulate import tabulate
import random
class Suite (Enum):#继承类
SPADE,HEART,CLUN,DIAMOND=range(4)#定义符号常量0-3
#for i in Suite:
# print(f'{i}:{i.value}')
suites='♠♥♣♦'#表示不同的花色
faces=['0','A','2','3','4','5','6','7','8','9','10','J','Q','K','\n']#牌面
num=[[0 for i in range(15) ] for j in range(5)]
class card:
def __init__(self,suite,face):
self.suite=suite
self.face=face
def __repr__(self):
return f'{suites[self.suite]}{faces[self.face]}'
def __lt__(self,other):
if self.face==other.face:
return self.suite<other.suite
return self.face<other.face
class cal:
def __init__(self):
self.cards=[]
def cal(self,card):
self.cards.append(card)
print(card)
num[card.suite][card.face]=1
num[4][card.face]+=1
def out(self):
for i in range(5):
for j in range(14):
print(num[i][j],end=' ')
print()
return num
state=1
flag=0
while state==1 and flag!=2:
cards=cal()
num=[[0 for i in range(15) ] for j in range(5)]
state=g.ccbox('欢迎进入记牌器,轻而易举赢牌',choices=('开始记牌','结束记牌'))
flag=0
while state==1 and flag==0:
suite=g.indexbox('记牌','loading',['♠','♥','♣','♦'])
face=g.indexbox('记牌','loading',['0','A','2','3','4','5','6','7','8','9','10','J','Q','K'])
cards.cal(card(suite,face))
str1=''
for i in range(5):
for j in range(0,14):
str1+=str(num[i][j])
str1+=' '
if(j==10):str1+=' '
if i !=4:str1+=suites[i]
str1+='\n'
g.msgbox(' '.join(faces)+str1+' '.join(faces))
flag=g.indexbox('局势','loading',['继续游戏','重新开始','结束记牌'])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具