python谁是卧底、猜词语

这篇博客介绍了如何使用Python编程实现‘谁是卧底’和‘猜词语’游戏。在‘谁是卧底’游戏中,详细描述了游戏规则和程序设计思路,包括玩家发言、投票和出局流程。而在‘猜词语’游戏中,博主提出了游戏规则,并阐述了生成词组、判断对错和计算得分的方法。此外,还提到了猜数字游戏的一行代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python谁是卧底

谁是卧底也是深受很多人喜欢的游戏,起码要三人以上才能玩,大致分为几个阶段:
1.分配平民词语和卧底词语—>
2.玩家依次发言—>
3.根据发言投票认为谁是卧底—>
4.得到票数最多的玩家出局—>
5.出局玩家刚好是卧底则平民胜利,如果出局玩家是平民则被冤死并继续第2步,当剩下的平民只有1个时卧底胜利。
特殊情况是,出现两名或以上的玩家票数相同,则相同票数的玩家重新发言,然后全体针对这几个玩家投票。

程序设计思想:输入玩家数num,玩家编号为0~num-1,然后定义三个含有num个元素的列表:词语列表,计算玩家票数的列表,死亡玩家的列表。列表下标从0~num-1,随机产生该区间的数x,代表x号玩家是卧底,然后分配卧底词和平民词。注意,提示几号玩家是卧底或冤死的时候,要将打印信息时候的下标加1,比如下标数0代表的其实是1号玩家。

在每轮游戏中,依次进行发言,投票,票数最多的玩家出局(出现相同票数则重新发言),出局玩家归入死亡玩家列表。然后开始下一轮。

那么,如果有num位玩家,则最多有多少轮游戏结束?因为进行到只有2位玩家游戏就结束了,所以答案是num-2轮!也就是说上述流程要循环num-2次。

编程思想定了就可以敲代码了,程序代码如下:


num = int(input('请输入玩家数:>=3 \n'))
if num < 3:
    print('人数不够,请输入>=3的人数')

#生成一个随机数,指定卧底
import random
wodi = random.randint(1,num)  #第几个人是卧底
print(wodi)
word = []  #给他们指定身份列表
for i in range(1,num+1):
    word.append('平民')
    if i == wodi:
        word[i-1] = '卧底'

print(word)
vote = []  #投票列表。判断最高票数
dead = []  #死亡列表,已死的平民

#初始化列表
for i in range(0,num):
    vote.append(0)
    dead.append(num+10)

#samevote是判断有没有同样最高票数,wodiwin判断卧底赢了没
wodi_win = 0

#投票环节
def all_vote(num,ifMax):
    #第一步清空投票池
    for j in range(0, num):
            vote[j] = 0
    #第二部相同最高票数则只能针对最高票数投票,否则直接投票
    for j in range(0, num):
        if (j not
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值