当前课程知识点:Python程序设计基础 >  任务四:庄家给玩家发首轮牌 >  4.3 任务四参考代码 >  参考代码

返回《Python程序设计基础》慕课在线视频课程列表

参考代码资料文件与下载

参考代码

"""
Game Name:TenHalfPoint
Developer: xuzl
Version: 1.0
Date:2019.2.29
"""
import random
#输入玩家1的姓名,并打印出欢迎玩家1的信息
player1_Name = input("请输入玩家1的姓名:")
print("欢迎你:"+player1_Name)
print("完成了任务一")


#黑桃(spade)用s代表、红桃(heart)用h代表、梅花(club)用c代表、方块(dianmond)用d代表
card1=input("请输入第一张牌") #定义一个名为card1的变量用来接收从键盘录入的第一张牌,属于string类型,input()是从键盘输入的函数。
card2=input("请输入第二张牌") #定义一个名为card2的变量用来接收从键盘录入的第一张牌,属于string类型
#打印出两张牌
print("第一张牌为:"+card1)
print("第二张牌为:"+card2)
#计算第一张牌的大小
#使用if语句判断单张牌的点数,需要掌握if 语句的使用
if card1[0] == "A" : #判断card1字符串的第一元素card1[0]是否等于“A” ,需要掌握字符串的索引
card1_number = 1
elif card1[0] == "J":
card1_number = 0.5
elif card1[0] == "Q":
card1_number = 0.5
elif card1[0] == "K":
card1_number = 0.5
elif len(card1)>2: #调用len()函数求字符串的长度,也就是字符串包含的字符数
card1_number =10
else:
card1_number = int(card1[0]) #使用int()函数将string类型转换为整型
print(card1_number)

#计算第二张牌的大小
if card2[0] == "A": #判断card2字符串的第一元素card2[0]是否等于“A”,需要掌握字符串的索引
card2_number = 1
elif card2[0] == "J":
card2_number = 0.5
elif card2[0] == "Q":
card2_number = 0.5
elif card2[0] == "K":
card2_number = 0.5
elif len(card2)>2: #调用len()函数求字符串的长度,也就是字符串包含的字符数
card2_number = 10
else:
card2_number = int(card2[0]) #使用int()函数将string类型转换为整型
print(card2_number)
#计算两张牌的点数大小
sum = card1_number + card2_number #使用+运算符计算两张牌的点数和
print("两张牌的大小为:"+str(sum)+"点") #使用str()函数将sum转换为string类型
print("完成了任务二")


RANKS = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"] #定义了RANKS列表拥有13个元素来存储牌的数值
SUITS = ["♠","♦","♥","♣"] #定义了SUITS列表来存储牌的4种花色

cards= [] #定义一个列表用于保存一副牌,初始为空列表。
#模拟产生一副除去大小王的扑克牌
#应用while双重循环生成一幅除去大小王的牌
i=0 #设置牌的数值循环体变量
j=0 #设置牌的花色循环体变量
while i<=12 : #外循环
while j<=3 : #内循环
cards.append(RANKS[i]+SUITS[j] )
j=j+1
j=0 #每当i发生变化时,j一定要置成0
i=i+1
#应用for双重循环生成一幅除去大小王的牌
# for i in RANKS: #应用for 循环对RANKS中的元素遍历一遍
# for j in SUITS: #应用for 循环对SUITS中的元素遍历一遍
# cards.append(i+j )
print(cards) #将有序的扑克牌打印出来

random.shuffle(cards)#模拟洗牌,打乱顺序
print("打印出洗牌后的一副牌")
print(cards)
print("完成了任务三")

# #Ctrl + / 选中多行代码后快捷注释
# #未采用循环定义四个玩家组成的牌局
# #定义玩家1,默认为庄家
# #庄家应该包含姓名、筹码、要牌标识符、牌列表、牌点数、下注数
# player1=[]
# player1_name = input("请输入庄家的姓名:")
# player1.append(player1_name)#给庄家添加姓名
# player1_money="100"
# player1.append(player1_money)#初始化庄家的筹码为100
# player1_flag=True
# player1.append(player1_flag)#初始化庄家要牌标志符为True
# player1_cards=[]
# player1.append(player1_cards)#初始化庄家的牌列表为空
# player1_pointsum=0
# player1.append(player1_pointsum)#初始化庄家的牌点数为0
# player1_bet=0
# player1.append(player1_bet)#初始化庄家的下注数为0
# #定义玩家2,默认为闲家
# player2=[]
# player2_name = input("请输入第一个闲家的姓名:")
# player2.append(player2_name)#给闲家1添加姓名
# player2_money=100
# player2.append(player2_money)#初始化闲家1的筹码为10
# player2_flag=True
# player2.append(player2_flag)#初始化闲家1要牌标志符为True
# player2_cards=[]
# player2.append(player2_cards)#初始化闲家1的牌列表为空
# player2_pointsum=0
# player2.append(player2_pointsum)#初始化闲家1的牌点数为0
# player2_bet=0
# player2.append(player2_bet)#初始化闲家1的下注数为0
# #定义玩家3
# player3=[]
# player3_name = input("请输入第二个闲家的姓名:")
# player3.append(player3_name)
# player3_money=100
# player3.append(player3_money)
# player3_flag=True
# player3.append(player3_flag)
# player3_cards=[]
# player3.append(player3_cards)
# player3_pointsum=0
# player3.append(player3_pointsum)
# player3_bet=0
# player3.append(player3_bet)#初始化闲家2的下注数为0
# #定义玩家4
# player4=[]
# player4_name = input("请输入第三个闲家的姓名:")
# player4.append(player4_name)
# player4_money=100
# player4.append(player4_money)
# player4_flag=True
# player4.append(player4_flag)
# player4_cards=[]
# player4.append(player4_cards)
# player4_pointsum=0
# player4.append(player4_pointsum)
# player4_bet=0
# player4.append(player4_bet)#初始化闲家3的下注数为0
# #定义一个玩家列表
# player=[player1,player2,player3,player4]
# print(player1,player2,player3,player4)
# 用循环语句改进创建四个玩家组成的牌局
player=[[],[],[],[]] #创建一个具有4个玩家的玩家列表,每个玩家又是由一个包含姓名、筹码、要牌标识符、牌列表、牌点数、下注数等元素的列表构成
number=0
while number<=3 :
if number==0 :
player_name = input("请输入庄家的姓名:")
player[number].append(player_name) # 给庄家添加姓名
else :
player_name = input("请第" + str(number) + "个闲家的姓名:")
player[number].append(player_name) # 给庄家添加姓名
player_money = 100
player[number].append(player_money) # 初始化庄家的筹码为100
player_flag = True
player[number].append(player_flag) # 初始化庄家要牌标志符为True
player_cards = []
player[number].append(player_cards) # 初始化庄家的牌列表为空
player_pointSum = 0
player[number].append(player_pointSum) # 初始化庄家的牌点数为0
player_bet = 0
player[number].append(player_bet) # 初始化庄家的下注数为0
number=number+1
print(player)

print("玩家创建完毕,准备下注")

#闲家1下注
player_bet=input(player[1][0]+":请下注")
while int(player_bet)>20 or int(player_bet)<1 or int(player_bet)>int(player[1][1]):
player_bet=input(player[1][0]+":下注不成功,请重新下注")
player[1][5]=player_bet
#闲家2下注
player_bet=input(player[2][0]+":请下注")
while int(player_bet)>20 or int(player_bet)<1 or int(player_bet)>int(player[2][1]):
player_bet=input(player[2][0]+":下注不成功,请重新下注")
player[2][5]=player_bet
#闲家3下注
player_bet=input(player[3][0]+":请下注")
while int(player_bet)>20 or int(player_bet)<1 or int(player_bet)>int(player[3][1]):
player_bet=input(player[3][0]+":下注不成功,请重新下注")
player[3][5]=player_bet

print("三个闲家下注完毕")
print(player)

#定义函数计算牌点大小
def compute(card): #card 表示单张牌,属于形式参数
if card[0] == "J" or card[0] == "Q" or card[0] == "K":
cardpoint = 0.5
elif card[0] == "A":
cardpoint = 1
elif len(card)>2:
cardpoint = 10
else:
cardpoint = int(card[0])
return cardpoint #使用return 返回单张牌的点数
#模拟发第一轮牌
print("从庄家开始发第一轮牌,每人一张牌")
i=0 #定义i来表示第几个玩家
j=0 #定义j来计算发第几张牌
while i<=3: # 应用while循环语句实现第一轮发牌
player[i][3].append(cards[j])
player[i][4]=compute(cards[j])
i=i+1
j=j+1
print("第一轮发牌完毕,已经计算出每个玩家手上的牌点数")
print(player)

下一节:任务描述

返回《Python程序设计基础》慕课在线视频列表

Python程序设计基础课程列表:

课程介绍

-课程性质与课程设计

--课程简介

--课程设计

--项目任务与知识能力总要求

任务一:创建玩家

-1.1 十点半游戏简介

--十点半游戏规则介绍

--十点半游戏介绍与演示

-1.2 任务描述与目标要求

--任务描述

--任务演示:创建十点半游戏

--目标要求

--知识导图

-1.3 Python的安装与使用 视频讲解

--Python的安装与使用(1)

--Python的安装与使用(2)

-1.4 任务一参考代码

--参考代码

-1.5任务相关知识测验

任务二:计算出两张牌的点数

-2.1 任务描述与目标要求

--任务描述

--目标要求

--变量、运算符与代码知识导图

--字符串与判断语句知识导图

-2.2 基础数据类型与运算符 知识点视频讲解

--基础数据类型与运算符

-2.3条件语句 知识点视频讲解

--if语句介绍

--数字排序(1)

--数字排序(2)

-- 数字排序(3)

--数字排序(4)

-2.4 任务二参考代码

--参考代码

-2.5 任务相关知识测验

任务三:生成一副扑克牌

-3.1任务描述与目标要求

--任务描述

--目标要求

--知识导图

-3.2循环语句 知识点讲解视频

--while语句介绍

-- 数字求和

-- 数字求和(续)

-- for语句

-3.3 序列数据 知识点视频讲解

--list类型

--序列类型2:range类型

--序列类型3:tuple类型

--字符串介绍1

--字符串介绍(2)

--字符串介绍(3)

--列表与字符综合练习(1)

--列表与字符综合练习(2)

--内存查看对象

--字节与字节数组(1)

--字节与字节数组(2)

--字典类型

--集合类型(1)

--集合类型(2)

-3.4 任务三参考代码

--参考代码

-3.5 任务相关知识测验

任务四:庄家给玩家发首轮牌

-4.1 任务描述与目标要求

--任务描述

--目标要求

--知识导图

-4.2 函数 知识点视频讲解

--函数(1)

--函数(2)

--日期计算器

-4.3 任务四参考代码

--参考代码

-4.4 任务相关知识测验

任务五:庄家完成后续发牌

-5.1 任务描述与目标要求

--任务描述

--目标要求

--知识导图

-5.2 异常处理 知识点视频讲解

--异常处理(1)

--异常处理(2)

-5.3 任务五参考代码

--参考代码

--参考代码(续)

-5.4 任务相关知识测验

任务六:不服输,再玩一局

-6.1 任务描述与目标要求

--任务描述

--目标要求

--知识导图

-6.2 模块 知识点视频讲解

--模块

--

-6.3 任务六参考代码

--参考代码

--参考代码(续)

-6.4 任务相关知识测验

任务七:明天接着玩

-7.1 任务描述与目标要求

--任务描述

--目标要求

--知识导图

-7.2 文件的读写 知识点视频讲解

--文件的读写(上)

--文件的读写(下)

-7.3 任务七参考代码

--参考代码

--参考代码(续)

-7.4 任务相关知识测验

任务八:创建扑克牌对象

-8.1 任务描述与目标要求

--任务描述

--目标要求

--知识导图

-8.2 面向对象基础 知识点视频讲解

--面向对象基础(1)

--面向对象基础(2)

-8.3 任务八参考代码

--参考代码

-8.4 任务相关知识测验

任务九:创建玩家对象

-9.1 任务描述与目标要求

--任务描述

--目标要求

--知识导图

-9.2 面向对象高级 知识点视频讲解

--类的继承与方法重载

-9.3 任务九参考代码

--参考代码

-9.4 任务相关知识测验

任务十:应用对象完成十点半游戏开发

-10.1 具体任务描述与目标要求

--任务描述

--目标要求

-10.2 任务十参考代码

--参考代码

任务十一:将玩家信息存入数据库

-11.1任务描述与目标要求

--任务描述

--目标要求

--知识导图

-11.2 Python数据库编程 知识点视频讲解

--数据库编程

-11.3 任务十一参考代码

--参考代码

-11.4 任务相关知识测验

任务十二:十点半窗体游戏开发

-12.1任务描述与目标要求

--任务描述

--目标要求

--知识导图

-12.2 窗体程序开发 知识点视频讲解

--窗体程序开发

-12.3 任务十二参考代码

--参考代码

-12.4 任务相关知识测验

2048游戏开发实战

-项目简介

--2048游戏简介

-开始游戏

--开始游戏(上)

--开始游戏(下)

-移动控制

--移动控制开发(上)

--移动控制(中)

--移动控制(下)

-胜负判断

--胜负判断(上)

--胜负判断(下)

-游戏积分

--游戏积分(上)

--游戏积分(下)

-程序重构

--应用类的知识重构游戏

-程序优化

--程序优化(上)

--程序优化(中)

--程序优化(下)

-游戏窗口

--游戏窗口

-连接数据库

--连接数据库

参考代码笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。