初学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. .NET开发笔记--对config文件的操作(2)

    1.前台代码 sys_channel_edit.aspx <tbody id="item_box"> <asp:Repeater ID="rptList ...

  2. tree的使用

    //html <ul id="tree"></ul>  js function initTree() { $('#tree').tree({ url: '/ ...

  3. Storm集成Kafka编程模型

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3974417.html 本文主要介绍如何在Storm编程实现与Kafka的集成 一.实现模型 数据流程: ...

  4. 【转】 VC++6.0 在Win7 64位下调试,Shift+F5无法退出

    Win7 64位VC++6.0调试代码无法关闭窗口解决方法 VC++6.0 在64位Windows7下调试的时候,再结束调试,程序无法退出,只能关闭VC++6.0 IDE环境. 问题描述:当我击F5开 ...

  5. OGRE 保存纹理到文件

    Ogre::TexturePtr tex = Ogre::TextureManager::getSingleton( ).getByName( "YaHeiTexture" ); ...

  6. iOS-如何读取Plist文件

    解决办法: // 1) 找到Plist文件的路径 "path" NSString *path = [[NSBundle mainBundle]pathForResource:@&q ...

  7. 分布式服务框架dubbo入门实例

    dubbo是一个分布式的服务架构,可直接用于生产环境作为SOA服务框架. 官网首页:http://dubbo.io/ ,官方用户指南 http://dubbo.io/User+Guide-zh.htm ...

  8. Android新的menu实现——ActionMode

    Android的menu有多种实现方式,以前写过一篇Android中五种常用的menu(菜单),这里介绍一种新的menu实现方式:ActionMode.ActionMode是Android 3.0以后 ...

  9. Delphi TreeView – 自动展开树形结构

    Delphi TreeView – 自动展开树形结构 当处理完TreeView控件树形结构的数据后,需要默认自动全部展开,可以用到TreeView的Expanded属性. 1 2 3 4 5 6 7 ...

  10. 【BZOJ3190】[JLOI2013]赛车 单调栈+几何

    [BZOJ3190][JLOI2013]赛车 Description 这里有一辆赛车比赛正在进行,赛场上一共有N辆车,分别称为个g1,g2……gn.赛道是一条无限长的直线.最初,gi位于距离起跑线前进 ...