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 in dead):if ifMax:vote2p = int(input('请%d号玩家投票,只能针对最高票数的几位\n' % (j + 1))) - 1else:vote2p = int(input('请%d号玩家投票\n' % (j + 1))) - 1vote[vote2p] += 1for x in range(0, num - 1):for k in range(0, num):if (k not in dead):print('%d号玩家发言时间' % (k + 1))print('发言环节结束')# 将各位玩家的票数置0all_vote(num,0)for y in range(0, num):if ((vote[y] == max(vote)) & (y != vote.index(max(vote)))):print('不止一位玩家得到最高票数,请这些玩家重新发言')all_vote(num,1)#第几位死亡,则加入死亡列表,死的是卧底则游戏结束,否则继续dead[x] = vote.index(max(vote))print(vote)if (dead[x]+1 == wodi):print('卧底得到最多票数,游戏结束')wodi_win = 1breakprint('%d号玩家被冤死!' % (dead[x] + 1))# 游戏结束
if (wodi_win == 0):print('只剩两名玩家,卧底胜利!')

猜词语

电视节目中的”你来比划我来猜“大家应该都看过,而且很多人也玩过,
规则就是一个人看词语比划相应动作和说一些提示,
另一个人看不到词语要通过比划的动作猜出来,猜的过程中主持人判断是否符合规则。

程序设计思想:输入Num组玩家,然后给定词语,5个词语为一组,猜对则bouns+1,
60s时间到或者玩家跳过则跳到下一个,5个词语猜完计算答对数目以及时间,最后判断哪组获得胜利
设定一个裁判组,有一个生成词组方法,一个判断对错方法,一个计算得分方法
一个玩家组,有一个输入答案方法
以下是代码:

import random
import time
#给定词语列表,然后随机生成其中五个
list_all = ['对牛弹琴','冰糖葫芦','刻舟求剑','口红','七上八下',
'放风筝','台灯','钻戒','三头六臂','愚公移山','乌鸦喝水',
'如来神掌','跑步','火车',
'仙人掌','捧腹大笑','画蛇添足','一手遮天','掩耳盗铃']class Judge(object):list_word = []  #生成的词语列表#答对的词语数,答完总共的时间answer_num = 0answer_time = 0def __init__(self,num):self.num = num#创建词组@classmethoddef creat(cls):if cls.list_word:cls.list_word = []while len(cls.list_word)<5:word = random.choice(list_all)if word not in cls.list_word:cls.list_word.append(word)@classmethod  #判断输入答案对错,返回布尔值def judge_true(cls,num,input_word):if cls.list_word[num] == input_word:return 1else:return 0#计算得分@classmethoddef score(cls,answer_num,answer_time):score = answer_num*10 + int((300-answer_time)/10)return scoreclass Player():def __init__(self):pass#输入答案@classmethoddef answer(cls):string1 = input('输入你的答案:\n')return string1if __name__ == '__main__':num_players = int(input('输入玩家组数:\n'))#开始你划我猜for i in range(0,num_players):#生成裁判以及玩家组judge = Judge(i)judge.creat()print(judge.list_word)player = Player()#计算时间用start = time.time()for k in range(0,5):# 计算时间用end = time.time()sec = end - start# 判断对错,统计用时string1 = player.answer()#答对答错都进入下一题if judge.judge_true(k,string1):judge.answer_num += 1judge.answer_time += secelse:print('输入错误下一题\n')judge.answer_time += secbreak#一道题时间为60秒if sec>=60:print('输入超时,下一题')break#k=4时答题结束,计算第i组得分值if k >=4 :print('第%d组得分为%d'%(i,judge.score(judge.answer_num,judge.answer_time)))

猜数字

很多人在聚餐时都玩过猜数字游戏,由某人随机出一个指定范围内的数,然后其他人一个一个猜,猜的过程中区间不断缩小,直到猜中为止。

import random
secret = random.randint(1,10)
#print(secret)
print('------猜数字游戏!-----')
guess = 0
while guess != secret:temp = input('猜数字游戏开始,请输入数字:')guess = int(temp)if guess > secret:print('您输入的数字大了!')else:print('您输入的数字小了!')
if guess == secret:print('恭喜,您猜对了!')print('游戏结束,再见!^_^')

#用一行代码实现数值交换:

a = 1
b = 2
a,b=b,a
print(a,b)

#如何用一行代码生成[1,4,9,16,25,36,49,64,81,100] ?

list_hang = [i*i for i in range(1,11)]
print(list_hang)

python谁是卧底、猜词语相关推荐

  1. python高级语言设计我是卧底_python谁是卧底、猜词语

    python谁是卧底 谁是卧底也是深受很多人喜欢的游戏,起码要三人以上才能玩,大致分为几个阶段: 1.分配平民词语和卧底词语-> 2.玩家依次发言-> 3.根据发言投票认为谁是卧底-> ...

  2. python谁是卧底游戏流程图_python谁是卧底、猜词语

    python谁是卧底.猜词语,哪吒游戏网给大家带来详细的python谁是卧底.猜词语介绍,大家可以阅读一下,希望这篇python谁是卧底.猜词语可以给你带来参考价值. 谁是卧底也是深受很多人喜欢的游戏 ...

  3. python简单小程序之猜词语游戏

    今天给大家分享一个利用python写的简单小游戏程序.猜词语. 下面看代码段 import time num = int(input('有多少组玩家\n')) guessWord = [] corre ...

  4. 用python写个根据提示猜词语简单的游戏_python实现简单猜单词游戏

    本文实例为大家分享了python实现猜单词游戏的具体代码,供大家参考,具体内容如下 电脑根据单词列表随机生成一个单词,打印出这个单词长度个 ' _ ' ,玩家随机输入一个这个单词可能包含的英文字母,如 ...

  5. 采用python语言实现猜数游戏_用python实现猜数游戏

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文实例为大家分享了python实现猜数游戏的具体代码,供大家参考,具体内容如下 ...

  6. Python实现猜词游戏 Hangman Game(不带提示和带提示版本)

    本文目录 Python实现猜词游戏(Hangman Game) 一.任务准备 二.Hangman游戏的功能需求 三.辅助函数的构建 1.确定一个单词是否被猜出 2.获取用户当前的猜词进度 3.确定还有 ...

  7. 蓝桥杯python组——猜生日

    蓝桥杯python组--猜生日 import os import sys import datetime start=datetime.date(1912,3,12) end=datetime.dat ...

  8. 教你用python制作猜数游戏

    大家好!我又回来了!今天我教大家怎样用python制作猜数游戏.在此之前我们先了解一下什么是python版猜数游戏. 了解 python版猜数游戏是指您先输入下限值与上限值,然后系统随机生成一个在此范 ...

  9. python实现猜数字游戏_python如何实现猜数字游戏

    python实现猜数字游戏的方法:使用条件语句实现判断,代码为[print('猜一个1-20之间的整数.');print('开始猜:');for i in range(1, 7):try:guess ...

最新文章

  1. ThinkPHP 集成 PHPUnit 8 测试框架进行单元测试
  2. Service和Thread的关系
  3. android自定义minitype,MiniType部类以及扩展名
  4. java预备作业2 计科1501 乔赫
  5. linux查看指定用户的所有进程
  6. 一次bug调试经验----To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
  7. Java实现的有道云笔记图片批量下载工具
  8. 从数据库表中随机获取N条记录的SQL语句
  9. ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
  10. 《纲要》落地,东方通教你挖数据金矿
  11. 学习:MOSS2007 实现单点登陆(转)
  12. MySQL生产常用SQL语句汇总
  13. 实现二叉排序树的各种算法
  14. select时尽可能少使用as对性能很有好处
  15. yagmail设置定时任务
  16. python输出图片字体加粗_python中xticks字体加粗-女性时尚流行美容健康娱乐mv-ida网...
  17. 软件测试-----经常问道的面试题目
  18. HTML5详细介绍及使用
  19. 键盘模拟文件尾EOF
  20. iOS经典讲解之Apple Pay开发

热门文章

  1. 列一些Hbase面试题
  2. 14种异常检测方法总结
  3. BurpSuite之Intruder
  4. 当团结的程序员队伍中,突然闯进了HTML...
  5. 批处理简明教程及示例
  6. xftp连接提示无法打开,无法显示远程文件夹
  7. 将txt转换成pdf格式的详细步骤
  8. 计算机2016年分数线,2016年全国各地高考分数线大全 分数线是多少
  9. SAP各模块常用事物代码
  10. 机器学习——科学数据包(九)注释、文字、Tex公式、工具栏、区域填充、形状、样式、极坐标