大富翁python简易逻辑代码
大富翁游戏是一个比较复杂的游戏,需要涉及到很多方面的知识,包括游戏规则、玩家交互、随机事件等等。以下是一个简单的Python大富翁游戏代码示例,供您参考:
import random
class Player:
def __init__(self, name, money):
self.name = name
self.money = money
self.position = 0
def move(self, steps):
self.position += steps
if self.position >= 40:
self.position -= 40
self.money += 200
def pay_rent(self, amount):
self.money -= amount
def receive_rent(self, amount):
self.money += amount
class Property:
def __init__(self, name, price, rent):
self.name = name
self.price = price
self.rent = rent
self.owner = None
def buy(self, player):
self.owner = player
player.money -= self.price
def pay_rent(self, player):
player.pay_rent(self.rent)
self.owner.receive_rent(self.rent)
class Game:
def __init__(self, players):
self.players = players
self.properties = [
Property("起点", 0, 0),
Property("长沙", 60, 2),
Property("公交车", 0, 0),
Property("深圳", 100, 4),
Property("机会", 0, 0),
Property("北京", 200, 6),
Property("上海", 150, 8),
Property("医院", 0, 0),
Property("广州", 180, 10),
Property("机会", 0, 0),
Property("深圳", 100, 4),
Property("长沙", 60, 2),
Property("公交车", 0, 0),
Property("北京", 200, 6),
Property("上海", 150, 8),
Property("机会", 0, 0),
Property("广州", 180, 10),
Property("长沙", 60, 2),
Property("公交车", 0, 0),
Property("深圳", 100, 4),
Property("机会", 0, 0),
Property("北京", 200, 6),
Property("上海", 150, 8),
Property("医院", 0, 0),
Property("广州", 180, 10),
Property("机会", 0, 0),
Property("长沙", 60, 2),
Property("公交车", 0, 0),
Property("深圳", 100, 4),
Property("北京", 200, 6),
Property("上海", 150, 8),
Property("机会", 0, 0),
Property("广州", 180, 10),
Property("终点", 0, 0)
]
self.current_player = 0
def next_player(self):
self.current_player += 1
if self.current_player >= len(self.players):
self.current_player = 0
def play(self):
while True:
player = self.players[self.current_player]
print("轮到玩家 %s" % player.name)
steps = random.randint(1, 6)
print("玩家 %s 掷骰子,前进 %d 步" % (player.name, steps))
player.move(steps)
property = self.properties[player.position]
if property.price > 0:
if property.owner is None:
print("玩家 %s 到达 %s,可以购买该地产,价格为 %d" % (player.name, property.name, property.price))
choice = input("是否购买?(y/n)")
if choice == "y":
property.buy(player)
print("玩家 %s 购买了 %s" % (player.name, property.name))
else:
print("玩家 %s 放弃购买 %s" % (player.name, property.name))
elif property.owner != player:
print("玩家 %s 到达 %s,需要支付 %d 的租金给 %s" % (player.name, property.name, property.rent, property.owner.name))
property.pay_rent(player)
elif property.name == "机会":
print("玩家 %s 到达 机会,获得一次机会" % player.name)
elif property.name == "医院":
print("玩家 %s 到达 医院,需要休息一回合" % player.name)
elif property.name == "公交车":
print("玩家 %s 到达 公交车,可以免费前往任意一处地产" % player.name)
elif property.name == "起点":
print("玩家 %s 到达 起点,获得 200 元奖励" % player.name)
player.money += 200
elif property.name == "终点":
print("玩家 %s 到达 终点,游戏结束" % player.name)
break
self.next_player()
players = [
Player("玩家1", 1000),
Player("玩家2", 1000),
Player("玩家3", 1000),
Player("玩家4", 1000)
]
game = Game(players)
game.play()
运行效果
大富翁python简易逻辑代码相关推荐
- python中控制代码块逻辑关系_一、Python基础知识
1.1 Python简介 (1)解释型语言 解释型语言在运行程序的时候才逐行翻译.运行. ①优点: 有良好的平台兼容性,在任何环境中都可以运行(安装了解释器)灵活,修改代码的时候直接修改就可以,可以快 ...
- python实现逻辑回归代码_python如何实现逻辑回归 python实现逻辑回归代码示例
python如何实现逻辑回归?本篇文章小编给大家分享一下python实现逻辑回归代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下: i ...
- Python实现逻辑回归实战(完整版)--内附详细代码
Hello大家!上一篇小A已经详细的为大家讲解了逻辑回归的原理和数学推导,但是对于学习人工智能来说仅仅学会原理是远远不够的,还必须要动手实践,必须要学会使用编程语言将算法实现.所以,今天我就来为大家展 ...
- python写了代码_Python写代码的用法建议
1.Mutable and immutable types Python有两种内置或用户定义的类型 可变类型是允许就地修改内容的类型.典型的可变列表是列表和词典:所有列表都有变异方法,如 list.a ...
- python代码写好了怎么运行不了-python代码可以直接运行吗 Python写了代码如何运行...
先下载python,然后打开命令行,输入 python 你的代码文件名. 有python代码怎么编成可执行的exe程序? 如果可以能否帮小编做成可执行的exe程序儿女情长什么的,真的很影响小编行走江湖 ...
- 10 种机器学习算法的要点(附 Python 和 R 代码)(转载)
10 种机器学习算法的要点(附 Python 和 R 代码)(转载) from:https://zhuanlan.zhihu.com/p/25273698 前言 谷歌董事长施密特曾说过:虽然谷歌的无人 ...
- 机器学习算法一览(附python和R代码)
机器学习算法一览(附python和R代码) 来源:数据观 时间:2016-04-19 15:20:43 作者:大数据文摘 "谷歌的无人车和机器人得到了很多关注,但我们真正的未来却在于能 ...
- 机器学习系列(9)_机器学习算法一览(附Python和R代码)
转载自:http://blog.csdn.net/longxinchen_ml/article/details/51192086 – 谷歌的无人车和机器人得到了很多关注,但我们真正的未来却在于能够使电 ...
- ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(二)
ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(二) 目录 2. xgboost参数/XGBoost Para ...
最新文章
- 面试高频题:单链表的逆置操作/链表逆序
- AWS — AWS 上的 MEC
- Java 9 - 17 特性解读:Java 9
- 怎么写redmine wiki
- Linux软件安装常用方法
- python新闻管理系统_python项目——新闻管理系统
- codeforces1559 D2. Mocha and Diana (Hard Version)(并查集+启发式合并+随机化)
- 基于Docker持续交付平台建设的实践
- sprintboot 后端将音频流写入到前端播放_freac for mac(音频和CD格式转换器)
- 【Flink】Flink StreamingFileSink
- python输出总字符个数_python每次处理固定个数的字符的方法总结
- CISCO CCNA路由器密码管理
- a标签去掉下划线_怎么去掉html a超链接下划线
- 为什么腾讯微云显示服务器繁忙,谁知道腾讯微云是干什么?
- thinkphp对接支付宝的当面付
- 按键精灵 android版运行异常,按键精灵安卓版 tap、touch命令 不好用的解决办法!...
- phpyun 电脑调试wap版
- 嵌入式硬件(四)常用模拟集成电路
- Chapter5 初始化(Initialization)
- 10多个LearnDash示例和演示:从这些在线教育网站获得灵感!