闲着也是闲着:PYTHON 编写剪刀石头布游戏

闲着也是闲着:PYTHON 编写剪刀石头布游戏

突如其来的一场变故,使得这个假期尤为的漫长,特别是不知什么时候终结的假期,尤其的漫长。闲着也是闲着,不如来学习学习Python吧。

我学习新的语言,不喜欢从基本开始学起,我喜欢从做好的项目或者游戏开始学起。

我在教学也是这样,讲基本理论知识容易让人打瞌睡。不如从做好的项目里面加入基础知识点更能让人容易接受。

Python IDE我不是用Python自带的,我使用更加专业的PyCharm,非常好用。有条件的朋友也可以使用。

本例程基本知识点为:随机数、if...elif...else、input、列表和print等,

用户输入数值的代码

# 输入1,2,3 分别代表剪刀,石头,布

# 电脑随机出拳,也是以1,2,3分别代表剪刀,石头,布

# 比较输赢

首先将代码注释做好。我们一步一步来完成它!

首先,我们让电脑提示我们输入1,2,3,分别代表剪刀,石头,布。

利用input即可: input("请输入您要出的是 剪刀(1)/ 石头(2) / 布(3)")

同时,我们将输入的数值赋予player:

player=int(input("请输入您要出的是 剪刀(1)/ 石头(2) / 布(3)"))

我们先忽略电脑随机出拳的代码,给它一个固定的数值:computer=1

当用户输入一个数值之后,电脑要马上打印出用户输入和电脑的出拳:print("玩家选择的拳头是 %d - 电脑出的拳是 %d" % (player,computer))

python的方便之处就在这里显示出来,代码尽可能的简洁。

# 输入1,2,3 分别代表剪刀,石头,布
player=int(input("请输入您要出的是 剪刀(1)/ 石头(2) / 布(3)"))
# 电脑随机出拳,也是以1,2,3分别代表剪刀,石头,布
computer = 1
print("玩家选择的拳头是 %d - 电脑出的拳是 %d" % (player,computer))
# 比较输赢

判断胜负的代码

比较胜负的代码比较容易,主要是player,computer的对比,首先第一步需要写出的是player 所有的获胜条件:

if (player==1 and computer==3) or (player==2 and computer==1) or (player==3 and computer==2):

第二步,需要写出平局的条件,因为平局的条件比较好写,那么剩下的就是computer获胜的条件:

elif player==computer:

判断胜负的全部代码如下:

# 比较输赢
if ((player == 1 and computer == 3) 
        or (player == 2 and computer == 1) 
        or (player == 3 and computer == 2)):
    print("主人获胜了!")
elif player == computer:
    print("主人和电脑平局了!")
else:
    print("很遗憾,主人您落败了!")

随机数的应用

游戏的编写,是少不了随机数的应用的。在python中,要加入随机数,需要增加一个随机数的模块。使用import关键字,并且在文件的顶部。

import random
...
computer = random.randint(1, 3)

randint 函数是返回在a b 两个数之间,包括a b 之间的数。

上面我们需要电脑的出拳,是从1,3之间。

最后的完善

现在我们对代码进行运行,随便输入1,2,3,python会有如下的提示:

请输入您要出的是 剪刀(1)/ 石头(2) / 布(3)2
玩家选择的拳头是 2 - 电脑出的拳是 3
很遗憾,主人您落败了!

现在我们再完善一点:让电脑的提示更人性化一点:

请输入您要出的是 剪刀(1)/ 石头(2) / 布(3)1
玩家选择的拳头是 剪刀 - 电脑出的拳是 布
主人获胜了!

要做到这一点也很容易,使用列表就可以:plays = ["", "剪刀", "石头", "布"] 第一个之所以为空是因为我们的值是1~3,而列表的第一个数值为plays[0]。

然后再使用打印的语句 print("玩家选择的拳头是 %s - 电脑出的拳是 %s" % (plays[player], plays[computer]))

完整代码如下:

import random

# 输入1,2,3 分别代表剪刀,石头,布
player = int(input("请输入您要出的是 剪刀(1)/ 石头(2) / 布(3)"))
# 电脑随机出拳,也是以1,2,3分别代表剪刀,石头,布
computer = random.randint(1, 3)
plays = ["", "剪刀", "石头", "布"]
print("玩家选择的拳头是 %s - 电脑出的拳是 %s" % (plays[player], plays[computer]))
# 比较输赢
if ((player == 1 and computer == 3)
        or (player == 2 and computer == 1)
        or (player == 3 and computer == 2)):
    print("主人获胜了!")
elif player == computer:
    print("主人和电脑平局了!")
else:
    print("很遗憾,主人您落败了!")

要注意PyCharm的提示,写出符合规范的代码。Shift+F10运行代码。

谢谢大家!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容