初学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. php 合并数组的方法 非array_merge

    Array ( [0] => Array ( [max] => 50 [date] => 2016-01-07 ) [1] => Array ( [max] => 100 ...

  2. GAN网络

    http://www.sohu.com/a/130252639_473283 高分辨率图像重建 https://zhuanlan.zhihu.com/p/25201511 生成式对抗网络GAN有哪些最 ...

  3. JQuery基本选择器和基本动画方法总结

    刚开始接触JQuery是在大三的时候,那时候先学的Javascript,然后跳跃到JQuery,就一个字,爽.但因为之前用的不是太多,所以很多都忘了,直接导致的后果就是之前在一家公司面试,面试官问我要 ...

  4. Hadoop1的安装

    目前hadoop1的稳定版本是1.2.1,我们以版本1.2.1为例详细的介绍hadoop1的安装,此过程包括OS安装与配置,JDK的安装,用户和组的配置,这些过程在hadoop2也有可能用到. Had ...

  5. (转)Unity笔记之编辑器(CurveField、DoubleField、EnumMaskField、EnumPopup) ... ...

    1. CurveField创建的是一个类型为AnimationCurve的曲线变量,看代码: [code]csharpcode: using UnityEngine; using System.Col ...

  6. 用MathType编辑上下尖括号有什么技巧

    在MathType中,同一个数学符号可以进行各种变换方向的使用,就比如箭头符号,任意方向都可以使用,这也是很常见的.数学中的符号能够根据各种特殊需要进行灵活使用,除了箭头符号之外,其它符号也可以,比如 ...

  7. hdu 4322(最大费用最大流)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4322 思路:建图真的是太巧妙了!直接copy大牛的了: 由于只要得到糖就肯定有1个快乐度,在这一点上糖 ...

  8. Ubuntu14.04编译Android5.1.1源码

    1.Ubuntu环境配置 硬盘:120G 内存:4G 注:配置很重要,直接影响能否编译成功. 2.安装JDK sudo apt-get update sudo apt-get install open ...

  9. Android显示全局Dialog

    1.需求:Dialog只能依附于某个具体的Activity显示,当我们需要一个全局的不依赖于某个Activity的Dialog时,应该怎么创建?类似于QQ消息提醒框 2.分析:我们可以在Service ...

  10. lighttpd mysql php简单教程

    lighttpd mysql php简单教程 lighttpd+php5+mysql+Debian etch lighttpd是速度最快的静态web server,mysql最通用的的database ...