初学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实现的更多相关文章

  1. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  2. SDUT 3568 Rock Paper Scissors 状压统计

    就是改成把一个字符串改成三进制状压,然后分成前5位,后5位统计, 然后直接统计 f[i][j][k]代表,后5局状压为k的,前5局比和j状态比输了5局的有多少个人 复杂度是O(T*30000*25*m ...

  3. FFT(Rock Paper Scissors Gym - 101667H)

    题目链接:https://vjudge.net/problem/Gym-101667H 题目大意:首先给你两个字符串,R代表石头,P代表布,S代表剪刀,第一个字符串代表第一个人每一次出的类型,第二个字 ...

  4. Gym - 101667H - Rock Paper Scissors FFT 求区间相同个数

    Gym - 101667H:https://vjudge.net/problem/Gym-101667H 参考:https://blog.csdn.net/weixin_37517391/articl ...

  5. Gym101667 H. Rock Paper Scissors

    将第二个字符串改成能赢对方时对方的字符并倒序后,字符串匹配就是卷积的过程. 那么就枚举字符做三次卷积即可. #include <bits/stdc++.h> struct Complex ...

  6. 【题解】CF1426E Rock, Paper, Scissors

    题目戳我 \(\text{Solution:}\) 考虑第二问,赢的局数最小,即输和平的局数最多. 考虑网络流,\(1,2,3\)表示\(Alice\)选择的三种可能性,\(4,5,6\)同理. 它们 ...

  7. 题解 CF1426E - Rock, Paper, Scissors

    一眼题. 第一问很简单吧,就是每个 \(\tt Alice\) 能赢的都尽量让他赢. 第二问很简单吧,就是让 \(\tt Alice\) 输的或平局的尽量多,于是跑个网络最大流.\(1 - 3\) 的 ...

  8. HDOJ(HDU) 2164 Rock, Paper, or Scissors?

    Problem Description Rock, Paper, Scissors is a two player game, where each player simultaneously cho ...

  9. HDU 2164 Rock, Paper, or Scissors?

    http://acm.hdu.edu.cn/showproblem.php?pid=2164 Problem Description Rock, Paper, Scissors is a two pl ...

  10. 1090-Rock, Paper, Scissors

    描述 Rock, Paper, Scissors is a classic hand game for two people. Each participant holds out either a ...

随机推荐

  1. Jmeter接口测试系列之参数化方法

    至于参数化的用途,我这里就不多说了,本文主要介绍最全.最强大的参数化方法,对参数化有一个彻底的认识,这里提供了多种参数化方法 1.jmeter参数化之用户变量   在测试计划里面添加一个用户自定义的变 ...

  2. [翻译]创建ASP.NET WebApi RESTful 服务(11)

    本章介绍通过使用Ali Kheyrollahi开发的CacheCow来实现服务器端的缓存.所有代码现在都可以在GitHub上下载. 我们将要实现的缓存方式叫做Conditional Requests, ...

  3. (转)使用 python Matplotlib 库绘图

    运行一个简单的程序例子: import matplotlib.pyplot as plt plt.plot([1,2,3]) plt.ylabel('some numbers') plt.show() ...

  4. C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西付给另一个类对象,而不是付给引用地址)

    from:https://blog.csdn.net/poxiaohai2011/article/details/27555951 //C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西 ...

  5. mac上的webStorm上配置gitHub

    一,webStorm下,首先打开Preferences; 二,在Version Control目录下,选择GitHub,填写有边的内容; 注意:填写完Login和Password的以后,点击Test一 ...

  6. poj3411

    Paid Roads Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6549   Accepted: 2427 Descri ...

  7. xmpp muc 群聊协议 2

    Roles and Affiliations There are two dimensions along which we can measure a user's connection with ...

  8. [hihoCoder] 题外话·堆

    A direct applicatin of the heap data structure. Specifically, a max heap is used. The required funct ...

  9. PAT 1016 Phone Bills(模拟)

    1016. Phone Bills (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A long-di ...

  10. 如何修改Myeclipse的JSP模板

    先找到MyEclipse的安装目录, 再找到myeclipse/eclipse/plugins/com.genuitec.eclipse.wizards_5.1.0/templates/jsp (co ...