python写机器人玩僵尸骰子
由Al Sweigart用python发布
注意:我正在为我的僵尸骰子模拟器寻找反馈,以及这一套指令。如果你觉得有什么地方可以改进,请发邮件到al@inventwithpython.com。
编程游戏是一种游戏类型,玩家不直接玩游戏,而是编写机器人程序来自主玩游戏。我已经创建了一个僵尸骰子模拟器,允许程序员在玩ai游戏的同时练习他们的技能。僵尸骰子机器人可以是简单的或难以置信的复杂,是伟大的类练习或个人编程挑战。
如何玩僵尸骰子
僵尸骰子是一个快速,有趣的骰子游戏从史蒂夫杰克逊的游戏。玩家们都是僵尸,试图吃掉尽可能多的人类大脑而不被“射杀”。有13个骰子,上面有大脑、脚印和猎枪的图标。骰子的颜色是绿色(大脑更有可能),红色(猎枪更有可能),黄色(大脑和猎枪平分)。
他们将:杏仁图片
玩家从杯子里随机取出骰子,直到手中有三个骰子,然后滚动骰子。玩家总是掷三次骰子。
他们把大脑(被吃掉的人类)和猎枪(反击的人类)放在一边。
如果玩家在此回合中拨出三把散弹枪,他们的回合将以零分结束。
如果玩家决定再次掷骰子,他们手中会保留任何出现脚印的骰子。
否则,玩家可以选择结束他们的回合,在那里他们将收集每个大脑一分,并返回所有骰子为下一个球员的杯。
或者玩家可以选择继续他们的旋转和再次滚动。回到第1步,注意任何已经出现在步骤中的骰子都将被重用。
僵尸骰子有一个“推你运气”的游戏机制:你重新掷骰子的次数越多,你能得到的大脑就越多,但你最终得到三把猎枪并失去一切的可能性就越大。一旦一个玩家达到13分,剩下的玩家就会得到一个回合(潜在的追赶),游戏就结束了。得分最多的选手获胜。
更多关于僵尸骰子的完整规则可以在这里找到:
PDF英文规则
动画Flash演示如何播放
说明文章的规则
YouTube上有人解释规则的视频
机器人编程挑战
要使用pip安装模拟器,请运行pip install zombiedice(在Windows上)或pip3 install zombiedice(在macOS和Linux上)。要使用一些预先制作好的机器人运行一个演示程序,可以运行python -m zombiedice(在Windows上)或python3 -m zombiedice(在macOS和Linux上),以查看模拟器的web gui示例:
模拟器可以快速运行数百个游戏,记录每个机器人获得多少胜利和平局。
您将通过使用turn()方法编写类来创建bot,当轮到机器人时,厂家专卖网站模拟器会调用该方法。在这个turn()方法中,您将尽可能频繁地调用zombiedice.roll()函数(当然,在您的回合中至少应该调用一次)。类超出了本文的范围,但是您可以简单地更改myzombie.py中的turn()代码:
进口zombiedice
类MyZombie:
def __init__(自我、名称):
self.name =名字
def转(自我,gameState):
# gameState是一个带有关于游戏当前状态信息的字典。
您可以选择在代码中忽略它。
第一个卷
# roll()返回一个字典,其中有键“brains”、“shotgun”和
#“脚步声”,每个类型有多少卷。
# 'rolls'键是一个包含(颜色、图标)元组的列表
准确的滚动结果信息。
滚动()返回值的例子:
#{‘大脑’:1,‘脚步’:1,‘猎枪’:1,
#“卷”:[(“黄色”,“大脑”)(“红”、“脚步”),
#(“绿色”、“猎枪”)]}
你的僵尸程序的代码逻辑在这里:
大脑= 0
而diceRollResults并不是没有:
大脑+ = diceRollResults(“大脑”)
如果大脑小于2:
diceRollResults = zombiedice.roll() # roll再一次
其他:
打破
类AlwaysRollsTwicePerTurn:
def __init__(自我、名称):
self.name =名字
def转(自我,gameState):
zombiedice.roll()
zombiedice.roll()
僵尸=(
zombiedice.examples.RandomCoinFlipZombie(name =“随机”),
zombiedice.examples。RollsUntilInTheLeadZombie(name =“直到领先”),
zombiedice.examples。MinNumShotgunsThenStopsZombie(名字='停在2枪',minShotguns=2),
zombiedice.examples。MinNumShotgunsThenStopsZombie(名字='停在1枪',minShotguns=1),
MyZombie(name =“我的僵尸机器人”),
AlwaysRollsTwicePerTurn(name = '滚两次'),
添加其他僵尸玩家。
)
在CLI或Web GUI模式下运行的下列代码之一取消注释:
# zombiedice.runTournament(僵尸=僵尸,爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。关于SEO优化,不仅仅是SEO知识点的学习,更是SEO资源和SEO策略的积累。多数SEO人员学完了整套SEO视频无法独立优化网站的最大原因是因为任何SEO培训教程都是在阐述SEO的知识点,并没有给与学员本身系统化的SEO流程化分析。所以多数从业人员并不知道第一步该做什么、第二步又该做什么。导致你即使参加了SEO培训,也无法操作网站排名。当然,也有一部分人领会到了SEO优化流程化思想,但是真正操作一个SEO优化的时候网站排名总是上不去,其实归结到底,还是资源性的问题。其实任何一个行业都是如此,资源决定你的SEO的走向,比如做SEO排名当中经常要用到的外链,几乎任何一个SEO培训机构都给不出,而通过SEO培训提供全新的SEO方法,足够让你在前期的实战SEO当中比任何一个人都要具备先天的网站排名优势。

转载于:https://www.cnblogs.com/blogst/p/10244052.html

python写机器人玩僵尸骰子相关推荐

  1. python写机器人程序_用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  2. python写机器人程序_从Python写入机器人框架控制台

    python函数有几种方式将信息发送到机器人日志或控制台.这些都记录在Robot框架用户指南的 Logging information节中. 最干净的方法是使用logging API,它为各种日志记录 ...

  3. python写机器人插件_从Python写入机器人框架控制台

    I am a newbie using python and I wanted to ask for your help in showing me how can I print messages ...

  4. python自动回复机器人手机版_GitHub - HZQHZA/wxpy: Python 写 微信聊天 根据 自动回复 接入机器人 等等.......

    wxpy Python 写 微信聊天 根据 自动回复 接入机器人 等等.... wxpy: 用 Python 玩微信 #项目介绍 wxpy登录就给好友发消息 发图片   自动回复信息   添加好友自动 ...

  5. [译] 如何用 Python 写一个 Discord 机器人

    原文地址:How to write a Discord bot in Python 原文作者:Junpei Shimotsu 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/go ...

  6. 用python写聊天机器人_用Python 写一个机器人陪你聊天(文尾有彩蛋)

    工作一忙,原来秉烛夜谈的好友现在都很少聊天,微信都成了微信群的天下,鲜有微信好友给你发消息,想要主动发却也找不到开题话题,怎么办?用Python写一个机器人陪自己聊聊天吧.以下是源码及解析,小白都看得 ...

  7. (写着玩)Python仿网络游戏《炉石传说》,继上次部分代码展示

    上一期: (写着玩)Python仿网络游戏<炉石传说>,使用LOL的卡牌进行模拟对局(版本1.0)_AMarvelZ的博客-CSDN博客

  8. 用Python 写一个机器人陪你聊天(文尾有彩蛋)

    工作一忙,原来秉烛夜谈的好友现在都很少聊天,微信都成了微信群的天下,鲜有微信好友给你发消息,想要主动发却也找不到开题话题,怎么办?用Python写一个机器人陪自己聊聊天吧.以下是源码及解析,小白都看得 ...

  9. 微信群有人发广告?用 Python 写自动化机器人消灭他!

    作者 | 刘早起 来源 | 早起Python( ID:zaoqi-python ) 序幕 微信群牛皮癣,指的是在微信群里毫无下限的群发小广告的用户,是微信群主最痛恨的一波人.如果熟悉早起的读者可以知道 ...

最新文章

  1. Java 成员变量与局部变量
  2. php删除上传图片,PHP上传图片、删除图片的简单示例代码
  3. linux之文件的高级命令
  4. # 对象json互相转换_推荐一款 Java 对象映射神器
  5. 透过源码看Session
  6. 在.Net framework中动态加载Assembly的loadFromRemoteSources配置
  7. 果园机器人是什么文体_果园机器人课文原文
  8. UC浏览器怎么删除收藏历史?UC浏览器删除收藏历史的操作方法
  9. Servlet相关(servletconfig、servletcontext、request)
  10. mongo .update
  11. javacpp 人脸_javacv实现人脸检测
  12. 第四章 结构化程序设计
  13. Win10家庭中文版如何添加本地用户
  14. 大数据扫黄,是怎样发现你的?
  15. Redis启动窗口一闪就关
  16. 服务器运维事项,云服务器的运维工作要注意的事项
  17. 从零开始掌握Python机器学习:七步教程 基础篇
  18. DDK开发介绍_自我学习
  19. glibc 知:手册21:日期和时间
  20. AD原理图编译错误:Details Duplicate pins in component Pin ×× and Pin ××

热门文章

  1. 用计算机说我爱你怎么能,微信伤感说说 我爱你用唇语读出来却是怀疑
  2. 基本算法温习:打印金字塔
  3. 详解EIP-4361:什么是以太坊登录|Tokenview
  4. Windows2012R2 远程桌面服务(RDP)3389存在SSL漏洞的解决办法
  5. 电压互感器的基础知识原理及注意事项-安科瑞薛炯毅
  6. 有创意的撩妹肉麻句子,有你在的日子,每天都是在过情人节
  7. Saiku的编译与CAS集成
  8. oracle函数 NEW_TIME(dt1,c1,c2)
  9. Python究竟属不属于嵌入式语言?
  10. 官方教程 Redshift 05 system参数详细解释