一、游戏规则简介:

设有n个玩家(2~5个人比较合适),所有玩家过一遍叫一个 round,每个玩家的机会叫一个 turn 每个turn: 1,只要扔到 1 ,本轮所有得分清零,骰子给下一个玩家; 2,如果扔到其他的数字,可以选择继续扔,只要不扔到 1 ,结果就可以累加;也可以选择结束自己的 turn ,把骰子给下一个玩家 玩家中,积分先达到 100 分的为赢家。

二、代码实现

import randomclass Player:def __init__(self, num, score, iswin=False, addition=0):self.num = num  # 玩家编号self.score = score  # 玩家得分self.addition = addition  # 玩家一个turn的加分def one_roll(self):  # 投一次骰子return random.randint(1, 6)  # 用随机数来模拟投骰子def continue_or_not(self):will = ' '  # 玩家的意愿while will is not 'y' or 'n':will = input('want to continue?(y/n) ')if will is 'y':return Trueelif will is 'n':return Falsedef initialize(player_list):  # 用一个列表来存储玩家对象num_players = int(input('please input number of players(2~5): '))for i in range(num_players):player_list.append(Player(i + 1, 0))# Initialize
player_list = []  # 玩家列表
winner = 0  # 记录赢家编号
Round = 0  # 记录round数
initialize(player_list)  # 对玩家列表初始化# Begin the gamewhile not winner:score_board = []Round += 1print('--------------Round: {}---------------'.format(Round))  # 显示round数for man in player_list:print('------------************------------')print('Player_{}:'.format(man.num))  # 显示当前玩家man.addition = 0  # 对本turn的加分预先清零go_on = True  # 是否继续while go_on:result = man.one_roll()print(result)man.addition = man.addition + resultif result is 1:man.addition = 0breakgo_on = man.continue_or_not()man.score = man.score + man.additionscore_board.append(man.score)if man.score >= 100:winner = man.numprint('Winner: player_{}'.format(winner))breakprint("score_board: {}".format(score_board))

三、运行结果

please input number of players(2~5): 2
--------------Round: 1---------------
------------************------------
Player_1:
5
want to continue?(y/n) y
4
want to continue?(y/n) y
3
want to continue?(y/n) y
4
want to continue?(y/n) y
4
want to continue?(y/n) y
5
want to continue?(y/n) y
6
want to continue?(y/n) y
2
want to continue?(y/n) n
------------************------------
Player_2:
4
want to continue?(y/n) y
4
want to continue?(y/n) y
5
want to continue?(y/n) y
5
want to continue?(y/n) n
score_board: [33, 18]
--------------Round: 2---------------
------------************------------
Player_1:
1
------------************------------
Player_2:
4
want to continue?(y/n) y
5
want to continue?(y/n) y
4
want to continue?(y/n) y
3
want to continue?(y/n) n
score_board: [33, 34]
--------------Round: 3---------------
------------************------------
Player_1:
1
------------************------------
Player_2:
2
want to continue?(y/n) y
4
want to continue?(y/n) y
4
want to continue?(y/n) y
6
want to continue?(y/n) y
1
score_board: [33, 34]
--------------Round: 4---------------
------------************------------
Player_1:
2
want to continue?(y/n) y
2
want to continue?(y/n) y
5
want to continue?(y/n) y
4
want to continue?(y/n) y
3
want to continue?(y/n) y
3
want to continue?(y/n) y
6
want to continue?(y/n) n
------------************------------
Player_2:
5
want to continue?(y/n) y
1
score_board: [58, 34]
--------------Round: 5---------------
------------************------------
Player_1:
1
------------************------------
Player_2:
5
want to continue?(y/n) y
5
want to continue?(y/n) y
1
score_board: [58, 34]
--------------Round: 6---------------
------------************------------
Player_1:
2
want to continue?(y/n) y
6
want to continue?(y/n) y
5
want to continue?(y/n) y
3
want to continue?(y/n) y
5
want to continue?(y/n) y
6
want to continue?(y/n) n
------------************------------
Player_2:
4
want to continue?(y/n) y
3
want to continue?(y/n) y
2
want to continue?(y/n) n
score_board: [85, 43]
--------------Round: 7---------------
------------************------------
Player_1:
4
want to continue?(y/n) n
------------************------------
Player_2:
3
want to continue?(y/n) y
4
want to continue?(y/n) y
2
want to continue?(y/n) y
5
want to continue?(y/n) n
score_board: [89, 57]
--------------Round: 8---------------
------------************------------
Player_1:
4
want to continue?(y/n) n
------------************------------
Player_2:
4
want to continue?(y/n) y
1
score_board: [93, 57]
--------------Round: 9---------------
------------************------------
Player_1:
2
want to continue?(y/n) n
------------************------------
Player_2:
6
want to continue?(y/n) y
1
score_board: [95, 57]
--------------Round: 10---------------
------------************------------
Player_1:
3
want to continue?(y/n) n
------------************------------
Player_2:
4
want to continue?(y/n) y
3
want to continue?(y/n) y
5
want to continue?(y/n) y
4
want to continue?(y/n) n
score_board: [98, 73]
--------------Round: 11---------------
------------************------------
Player_1:
1
------------************------------
Player_2:
3
want to continue?(y/n) y
2
want to continue?(y/n) y
3
want to continue?(y/n) y
6
want to continue?(y/n) y
6
want to continue?(y/n) y
1
score_board: [98, 73]
--------------Round: 12---------------
------------************------------
Player_1:
2
want to continue?(y/n) n
Winner: player_1
score_board: [100]

Python实现掷骰子小游戏 The Game of Pig相关推荐

  1. python实现掷骰子小游戏(附源码 简单易懂)

    需要图片集可以点赞关注收藏后评论区留言~~~ 如图 随机生成1-6之间的数字 按回车键就会自动生成 代码如下 import cv2 import time import random inx=inpu ...

  2. python编写掷骰子小游戏

    from random import * count=0#金币数 #玩游戏消耗5金币 #玩一局赠送一金币 #赢一局奖励2金币,输了不奖励 x=0#记录游戏局数 flag=True while flag ...

  3. python掷骰子小游戏

    python掷骰子小游戏 ''' 掷骰子猜大小小游戏 要求: 1.每次充值必须是100的整数倍,且冲100元等于50个游戏币 2.每玩一次游戏扣除两个游戏币,猜对的奖励四个游戏币 ''' import ...

  4. php掷骰子游戏,js实现简单掷骰子小游戏

    本文实例为大家分享了js掷骰子小游戏的具体代码,供大家参考,具体内容如下 实现方法: 方法一:通过background-position.background-image.backg-repeat三个 ...

  5. c语言扔骰子随机数的相加,C语言编程学习:制作掷骰子小游戏

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  6. php掷骰子小游戏代码,js实现掷骰子小游戏

    本文实例为大家分享了js掷骰子小游戏的具体代码,供大家参考,具体内容如下 因为这次作业是第一个实验,比较简单,但是要求面向对象来做,而我这个时候又刚好在学JS,JS来做骰子游戏即有前端了,又省了后台处 ...

  7. C语言编程学习:制作掷骰子小游戏!超适合新手的练手项目!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  8. c 语言掷骰子游戏,C 语言编程学习: 制作掷骰子小游戏

    C 语言编程学习: 制作掷骰子小游戏 问题描述 骰子是一个有六个面的正方体, 每个面分别印有 16 之间的小圆点代表点数. 假设这个游戏的规则是: 两个人轮流掷骰子 6 次, 并将每次投掷的点数累加起 ...

  9. Python基础案例练习:掷骰子小游戏

    前言 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给新接触Python的初学者们~ 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者 ...

最新文章

  1. GitHub star 7k+:史上最全图像分割资料集锦
  2. 独家发布 | 产品经理生存现状
  3. micropython函数库下载_Python microfs包_程序模块 - PyPI - Python中文网
  4. 分类分布(categorical分布)
  5. 山洪沟防洪治理工程技术规范_幸福沟水库一期工程完工丨尚志城市供水、防洪、农业灌溉皆升级...
  6. 啥是前端开发工程师必会的5种网页布局方法?
  7. mysql通配符like,不吃透都对不起自己
  8. 最简单的视音频播放示例8:DirectSound播放PCM
  9. Python+selenium自动化测试环境安装
  10. python 正则表达式 符号及其定义
  11. 基于Linux平台Softimage XSI 演示
  12. 详版大数据报告_《2018抖音大数据报告》完整版,赶快收藏!
  13. 数学建模MATLAB难不难,如何才能在数学建模竞赛中取得好成绩
  14. 股票交易接口申请方式有哪几种?
  15. 小程序webview嵌入h5兼容iphone安全区域
  16. 高数--函数--初等函数
  17. OC10_代理反向传值
  18. String数组拆分
  19. canvas+js实现简单的双人坦克对战小游戏
  20. tar命令功能及选项

热门文章

  1. Histogram of Oriented Gradients
  2. div id与div class什么意思用法讲解
  3. 服装机械加工如何使用ERP管理系统?
  4. 人大金仓kingbaseV8常用sql整理
  5. 计算机网络五:局域网、城域网、广域网和互联网
  6. 菜鸟学源码之Nacos v1.1.3源码学习-Client模块(2):NacosConfigService
  7. 测试小白的心酸路之测试初体验
  8. java 获得某月的第一天和最后一天
  9. Catfishcms漏洞复现
  10. pytorch张量(tensor)常用高级操作函数