网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月18日
漏签
0
天
python吧
关注:
471,179
贴子:
1,958,378
看贴
图片
吧主推荐
视频
游戏
1
2
3
4
5
6
下一页
尾页
88
回复贴,共
6
页
,跳到
页
确定
<<返回python吧
>0< 加载中...
Python学习
只看楼主
收藏
回复
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
开个贴子学习Python,希望和大家一起学习。
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
出个题目吧,和大家一起来解答。
题目一:桥牌发牌问题
要求,模拟桥牌发牌,自动生成一副牌,然后发给四个玩家,输出发牌结果。
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
很多年前玩桥牌时就遇到这个问题,当时用BASIC编写了一个小程序得以实现,心中还很有成就感。
小温侯_L
进士
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
谢谢分享!!!
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
后来学习C、Java时都用这个来练手,网上相关的代码很多,个人思路不同,写出的程序各有千秋。现在学习Python,也用这个题目练一练,感受其简洁、高效、优雅。
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
输出这样的结果
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用1~4表示四个玩家,用S、H、D和C表示黑桃、红心、方块、草花等不同花色,用A、K、Q、J表示相应的牌。
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
桥牌发牌同其他牌也没有什么特别,一副牌54张去掉大小王剩52张,洗牌,发给四家,每人13张牌。
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我们用1~52模拟一副牌,可以这样理解,一副新牌无大小王,按花色(草花、方块、红心、黑桃)由小到大(2、3、4、…、J、Q、K、A)排列,那么1到52就对应一副牌,1是草花2,2是草花3,52是黑桃A。
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
模拟发牌过程用到随机数,所以要导入random模块,用到打乱顺序和排序操作。
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
import random
card = range(1,53)
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这样就已经生成了一副牌,是一副顺序完整没有打乱的牌,下面我们模拟洗牌,用C或Java实现需要几个语句,而Python提供了一个方法,一句就可实现。
random.shuffle(card)
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好了,洗牌已经完成,下面我们需要把这副牌发给四个玩家。发牌方法也有许多种,实际也是这样,可以接一人一张发、一人多张发,这里以一次一家发13张为例。
player[i] = card[13*i:13 + 13*i]
i从0到3循环一下
luotuocao9
贡士
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
就是把列表切片,分到四家,每家13张牌
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示