Rock-Paper-Scissors-Lizard-Spock Python实现
初学python,实现一些很有意思的小游戏是很能提高编程能力的。
Rock-Paper-Scissors-Lizard-Spock
http://en.wikipedia.org/wiki/Rock-paper-scissors-lizard-Spock 这里是关于这个小游戏的全部介绍
下面是我用python实现的代码:
#coding:utf-8
'''
Rock-Paper-Scissors-Lizard-Spock
游戏规则:
石头砸蜥蜴;石头敲坏剪子。
剪子剪布;剪子斩首蜥蜴;
布包石头;布包死斯波克;
蜥蜴毒死斯波克;蜥蜴吃掉布;
斯波克踩碎剪子;斯波克融化石头;
'''
import random def win(computer,player):
'''
游戏输赢判定
根据对玩家和电脑的选择数值化,对五个选项的赋值,得出以下判定方法
'''
diff = (player - computer) % 5
if (diff == 1) or (diff == 2):
return 'Yes,you are winer !'
elif (diff == 3) or (diff == 4):
return 'Sorry,computer win the game ...'
else:
return 'God, you and computer tie !' def numToStr(num):
if num==0:
return 'Rock'
elif num==1:
return 'Spock'
elif num==2:
return 'Paper'
elif num==3:
return 'Lizard'
elif num==4:
return 'Scissors'
elif num==5:
return 'Exit' def strToNum(Str):
if Str=='Rock':
return 0
elif Str=='Spock':
return 1
elif Str=='Paper':
return 2
elif Str=='Lizard':
return 3
elif Str=='Scissors':
return 4
elif Str=='Exit':
return 5
else:
return 6 def rpsls(playerStr):
playerNum=strToNum(playerStr)
computerNum=random.randint(0,5)
winer=win(computerNum,playerNum)
computerStr=numToStr(computerNum)
print 'You chose '+playerStr
print 'The computer chose '+computerStr
print winer
print '' def main():
print 'Welcome to play the Rock-Paper-Scissors-Lizard-Spock !'
print 'While you need inPut something,please chose from the following word !'
print 'Rock,Paper,Scissors,Lizard,Spock,Exit...(Exit for exit)'
print ''
print 'Please inPut your choice:'
player=raw_input()
while(1):
xx=strToNum(player)
if(xx==0 or xx==1 or xx==2 or xx==3 or xx==4 or xx==5):
if(strToNum(player) == 5):
print 'Game Over !'
break
rpsls(player)
print 'Please inPut your choice:'
player=raw_input()
else :
print 'InPut wrong ! Please chose again :'
player=raw_input() main()

上面是实现结果。
Rock-Paper-Scissors-Lizard-Spock Python实现的更多相关文章
- 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)
2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...
- SDUT 3568 Rock Paper Scissors 状压统计
就是改成把一个字符串改成三进制状压,然后分成前5位,后5位统计, 然后直接统计 f[i][j][k]代表,后5局状压为k的,前5局比和j状态比输了5局的有多少个人 复杂度是O(T*30000*25*m ...
- FFT(Rock Paper Scissors Gym - 101667H)
题目链接:https://vjudge.net/problem/Gym-101667H 题目大意:首先给你两个字符串,R代表石头,P代表布,S代表剪刀,第一个字符串代表第一个人每一次出的类型,第二个字 ...
- Gym - 101667H - Rock Paper Scissors FFT 求区间相同个数
Gym - 101667H:https://vjudge.net/problem/Gym-101667H 参考:https://blog.csdn.net/weixin_37517391/articl ...
- Gym101667 H. Rock Paper Scissors
将第二个字符串改成能赢对方时对方的字符并倒序后,字符串匹配就是卷积的过程. 那么就枚举字符做三次卷积即可. #include <bits/stdc++.h> struct Complex ...
- 【题解】CF1426E Rock, Paper, Scissors
题目戳我 \(\text{Solution:}\) 考虑第二问,赢的局数最小,即输和平的局数最多. 考虑网络流,\(1,2,3\)表示\(Alice\)选择的三种可能性,\(4,5,6\)同理. 它们 ...
- 题解 CF1426E - Rock, Paper, Scissors
一眼题. 第一问很简单吧,就是每个 \(\tt Alice\) 能赢的都尽量让他赢. 第二问很简单吧,就是让 \(\tt Alice\) 输的或平局的尽量多,于是跑个网络最大流.\(1 - 3\) 的 ...
- HDOJ(HDU) 2164 Rock, Paper, or Scissors?
Problem Description Rock, Paper, Scissors is a two player game, where each player simultaneously cho ...
- HDU 2164 Rock, Paper, or Scissors?
http://acm.hdu.edu.cn/showproblem.php?pid=2164 Problem Description Rock, Paper, Scissors is a two pl ...
- 1090-Rock, Paper, Scissors
描述 Rock, Paper, Scissors is a classic hand game for two people. Each participant holds out either a ...
随机推荐
- 【BZOJ】3402: [Usaco2009 Open]Hide and Seek 捉迷藏(spfa)
http://www.lydsy.com/JudgeOnline/problem.php?id=3402 又是spfa水题.. #include <cstdio> #include < ...
- Openstack(Kilo)安装系列之Keystone(五)
Create OpenStack client environment scripts To create the scripts Create client environment scripts ...
- 【Raspberry Pi】修改时区
Raspberry Pi没有时钟模块,所以每次断电都会丢失时间,但它有联网获取时间的预设.但要修改默认时区 http://outofmemory.cn/code-snippet/2899/shumei ...
- npm安装express 公司上网设置代理
异常: 0 info it worked if it ends with ok1 verbose cli [ 'C:\\Program Files (x86)\\nodejs\\\\node.exe' ...
- Poj1482
It's not a Bug, It's a Feature! Time Limit: 5000MS Memory Limit: 30000K Total Submissions: 1428 ...
- ubuntu 下 Nginx相关设置
ubuntu安装Nginx之后的文件结构大致为: 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下 启动程序文件在/usr/ ...
- 爬虫实战【10】利用Selenium自动登陆京东签到领金币
今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币. 如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前 ...
- 《JavaScript高级程序设计》读书笔记1--HTTP头部信息
优秀的书籍常读常新 ----------------------------------------- 在发送XHR请求的同时,还会发送如下头部信息: --Accept: 浏览器能够处理的内容类型 - ...
- c# public private protected internal protected internal
一个 访问修饰符 定义了一个类成员的范围和可见性.C# 支持的访问修饰符如下所示: public:所有对象都可以访问: private:对象本身在对象内部可以访问: protected:只有该类对象及 ...
- mysql 中事件
# 创建存储过程 /* delimiter // create procedure test() begin update test SET name = date_format(now(),'%Y- ...