python十点半游戏代码_十点半游戏完整代码及详细注释.py

这是一个Python实现的十点半游戏代码,包括游戏类、玩家初始化、扑克牌操作、点数计算等功能。游戏流程包括玩家下注、补牌、决胜等环节,详细注释帮助理解游戏逻辑。
摘要由CSDN通过智能技术生成

# -*- coding: utf-8 -*-

#此版本,于2018年12月9日

#游戏类

class Game:

#一般游戏进程,从读取存档开始

def Process(self):

#初始回合数为0

self.rounds = 0

#初始Continue标记为True

self.Continue = True

#读取游戏

self.Read(self)

#当Continue标记为True时循环进行游戏

while self.Continue:

#创建一个玩家集合

self.player_set = set()

#初始化扑克牌

self.Card.InitCard(self)

#每轮的开始都将重置每名玩家的部分信息

for i in range(self.player_amount):

self.player_set.add(i)

self.player_list[i].banker = False

self.player_list[i].want = True

self.player_list[i].inboom = True

self.player_list[i].bet = 0

#下面两句是加牌操作,每名玩家1张

self.player_list[i].hand = [self.cards[0]]

del self.cards[0]

#进入叫庄环节

self.Banker(self,self.player_amount,self.player_set)

#游戏进程,从零开始

def Start(self):

#初始化扑克牌

self.Card.InitCard(self)

#初始化玩家

self.PlayerInit(self)

#牌点计算器,用于在创建扑克牌对象时提供每张牌的点数

#输入参数:{牌号}

def Calculate(rank):

#字典,数据来源

dictionary = {"A":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,"J":0.5,"Q":0.5,"K":0.5}

#约定点数并返回

value = dictionary[rank]

return value

#玩家初始化

def PlayerInit(self):

while True:

try:

#输入玩家数量

self.player_amount = int(input(">>>欢迎来到全新的十点半Lite!\n>>>请您设定玩家数量,最低2人,最高4人:"))

#当玩家数量正确时执行子程序

if self.player_amount in (2,3,4):

self.__PlayerInit(self,self.player_amount)

break

#否则提示错误

else:

print("\n>>>不支持该数量的玩家哟,换个数试试吧!<<

#输入非数字时报错

except:

print("\n>>>系统监测到了错误,但是系统不知道怎么解决")

#玩家初始化子程序

#输入参数:{玩家数量}

def __PlayerInit(self,player_amount):

#创建空列表,用于放置玩家名

player_name = []

print("\n>>>本局游戏共有{}名玩家~!<<

#输入玩家名并添加到列表

for i in range(self.player_amount):

player_name.append(input("您好,{}号玩家!\n-请输入您的大名:".format(i + 1)))

#初始化游戏

self.InitGame(self,player_name,self.player_amount,2)

#初始化游戏,有三种初始化方法

#输入参数:{玩家名称列表,玩家数量,初始化方式}

def InitGame(self,player_name,player_amount,Action):

#Action参数小于3时执行游戏初始化

if Action < 3:

#创建玩家列表,玩家集合

self.player_list = []

self.player_set = set()

#给每位玩家添加初始数据

for i in range(self.player_amount):

self.player_list.append(self.Players(i,player_name[i],[self.cards[0]],False,True,True,0,100,0))

self.player_set.add(i)

#因为中间涉及到了发牌,所以要从牌堆删除发给玩家的牌

del self.cards[0]

#若Action等于2追加执行,进入叫庄环节

if Action == 2:

self.Banker(self,self.player_amount,self.player_set)

#Action参数等于3时不进行初始化,直接进入叫庄环节(成功读取到游戏数据)

if Action == 3:

self.Banker(self,self.player_amount,self.player_set)

#叫庄环节

#输入参数:{玩家数量,玩家集合}

def Banker(self,player_amount,player_set):

#进入叫庄意味着游戏正式开始,回合数将加1

self.rounds += 1

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值