初学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. 运行jsp需要安装_______Web服务器。

    运行jsp需要安装_______Web服务器. A.Apache B.tomcat C.WebLogic D.IIS 解答:BC Apache是PHP程序运行的服务器,IIS是.net程序运行的服务器 ...

  2. (随用随总结)Linux下面的特殊权限&不同的文件类型

    一.Linux的文件信息   linux文件被保存在文件系统下,由以下属性组成: ls -l 之后看到的信息 从左到右可以看到文件的以下属性 各种类型 访问权限 链接数(跟 inode相关,ln 硬链 ...

  3. 从头认识java-17.4 具体解释同步(2)-具体解释竞争条件

    这一章节我们来具体讨论一下竞争条件. 1.为什么会引起竞争条件? 因为操作缺失原子性. 2.什么是原子性? 所谓原子操作是指不会被线程调度机制打断的操作:这样的操作一旦開始,就一直运行到结束.中间不会 ...

  4. 视觉slam闭环检测之-DBoW2 -视觉词袋构建

    需要准备的知识点:http://www.cnblogs.com/zjiaxing/p/5616653.html      http://www.cnblogs.com/zjiaxing/p/56166 ...

  5. Windows平台安装最新OpenCV-2.4.9,利用Eclipse、MinGW构建C++调用OpenCV开发环境

    近期电脑重装系统了,第一件事重装OpenCV. 这次直接装最新版,2014-4-25日公布的OpenCV2.4.9版本号,下载链接: http://sourceforge.net/projects/o ...

  6. python实现抓取必应图片设置桌面

    源码参考https://github.com/vbirds/pyWallpaper,代码风格不错 本人只是将其适配到python3.5,并消除一些bug,源代码中桌面地址未使用绝对路径导致win10 ...

  7. java关于Timer schedule执行定时任务 !!!!!!!!!

    1.在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类. private java.util.Time ...

  8. jquery动态生成html代码绑定事件

    今天工作中需要在页面动态生成html代码,但发现新生成的代码的click事件失效了(非动态生成的代码已经绑定了click事件),于是在网上找了很多解决办法,很多都比较复杂,且使用的jquery都比较老 ...

  9. PAT 甲级 1019 General Palindromic Number(简单题)

    1019. General Palindromic Number (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN ...

  10. Java——BeanUtils基本用法

    为了操作JavaBean的属性,sun公司自己写了一套内省的api(在Java.beans.*)中,但是我们发现操作起来还是比较复杂的,所以apache公司就自己写了一套api替代了它,大大方便了开发 ...