当前位置:   article > 正文

使用Python编写小游戏:“石头剪刀布”_python石头剪刀布流程图怎么画

python石头剪刀布流程图怎么画

前言:

在学完Python部分基础以后,根据所学内容,制作了一个简单的小游戏,内容就是玩家与机器人进行石头剪刀布。所写代码思路尽量清晰易懂,哈哈,进入正题了。


游戏原理

玩家输入数字,然后数字对应石头剪刀布其中一种,机器人产生随机数也会对应石头剪刀布的一种。那么我们就需要根据他们输入的数字进行判断,开始代码实现。

一、玩家以及机器人输入

import random # 导入随机数模块

# 提示信息:输入的数字代表结果是什么
print('石头剪刀布游戏开始!玩家与人工智能小Q的对决,输入0代表剪刀、1代表石头、2代表布')

# 这里小Q代表了机器人

# 开始一个无限循环,避免输入一次就结束掉了整个游戏
while True:
	# 获取玩家的输入
	user_inp = input('\n请玩家输入:')
	print() # 与打印内容换一行
	com_xq = random.randrange(0, 3)  # 小Q在0-3之间随机获取数字
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

二、获取双方输入的结果并打印

# 定义一个函数,用于判断输入的内容
def judge_inp(name, value):
    # 返回输入者的姓名,以及输入的值
    
    if value == '0': # 如果输入的是0 则打印剪刀
        print(name + "输入了剪刀")
        return 0 # 且返回0这个数字给输入者
    elif value == '1':
        print(name + "输入了石头")
        return 1
    elif value == '2':
        print(name + "输入了布")
        return 2
    return -1  # 只要输入内容不在判断内,就返回这个-1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

三、接收输入的结果

# 将玩家的名称,以及输入的内容放到函数里面判断,并拿到返回的值
user_result = judge_inp('玩家',user_inp)

# 如果返回的结果为-1,那么就说明玩家输入的内容不再范围内
if user_result == -1:
        print('输入错误,请重新输入\n')
        continue  # 跳过这次循环,玩家重新输入

# 将小Q的名称,以及输入的内容放到函数里面判断,并拿到返回的值
# 由于判断时,是根据字符串判断,小Q产生的随机数为int类型,所以这里转换成str类型
xq_result = judge_inp('小Q',str(com_xq))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

此时代码可实现的效果:待加上判断以后就可以决定胜负了
在这里插入图片描述


四、判断双方输入的内容决定胜负

# 其中有一方胜利后,游戏结束!!
if user_result == 0 and xq_result == 2:  # 玩家输入剪刀,小Q输入布
    print('玩家赢了')
    break
elif xq_result == 0 and user_result == 2:  # 玩家输入布,小Q输入剪刀
    print('小Q赢了')
    break
elif xq_result == 0 and user_result == 1:  # 玩家输入石头,小Q输入剪刀
    print('玩家赢了')
    break
elif xq_result == 1 and user_result == 0:  # 玩家输入剪刀,小Q输入石头
    print('小Q赢了')
    break
elif user_result == 1 and xq_result == 2:  # 玩家输入石头,小Q输入布
    print('小Q赢了')
    break
elif user_result == 2 and xq_result == 1:  # 玩家输入布,小Q输入石头
    print('玩家赢了')
    break
elif user_result == xq_result:  # 双方输入相同则为平局,开始下一剧
    print('平局\n')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

完整游戏代码

import random  # 导入随机数模块

# 提示信息:输入的数字代表结果是什么
print('石头剪刀布游戏开始!玩家与人工智能小Q的对决,输入0代表剪刀、1代表石头、2代表布')


# 这里小Q代表了机器人

# 定义一个函数,用于判断输入的内容
def judge_inp(name, value):
    # 返回输入者的姓名,以及输入的值

    if value == '0':  # 如果输入的是0 则打印剪刀
        print(name + "输入了剪刀")
        return 0  # 且返回0这个数字给输入者
    elif value == '1':
        print(name + "输入了石头")
        return 1
    elif value == '2':
        print(name + "输入了布")
        return 2
    return -1  # 只要输入内容不在判断内,就返回这个-1


# 开始一个无限循环,避免输入一次就结束掉了整个游戏
while True:
    # 获取玩家的输入
    user_inp = input('请玩家输入:')
    print()  # 与打印内容换一行
    com_xq = random.randrange(0, 3)  # 小Q在0-3之间随机获取数字

    # 将玩家的名称,以及输入的内容放到函数里面判断,并拿到返回的值
    user_result = judge_inp('玩家', user_inp)

    # 如果返回的结果为-1,那么就说明玩家输入的内容不再范围内
    if user_result == -1:
        print('输入错误,请重新输入\n')
        continue  # 跳过这次循环,玩家重新输入

    # 将小Q的名称,以及输入的内容放到函数里面判断,并拿到返回的值
    # 由于判断时,是根据字符串判断,小Q产生的随机数为int类型,所以这里转换成str类型
    xq_result = judge_inp('小Q', str(com_xq))

    # 其中有一方胜利后,游戏结束!!
    if user_result == 0 and xq_result == 2:  # 玩家输入剪刀,小Q输入布
        print('玩家赢了')
    elif xq_result == 0 and user_result == 2:  # 玩家输入布,小Q输入剪刀
        print('小Q赢了')
    elif xq_result == 0 and user_result == 1:  # 玩家输入石头,小Q输入剪刀
        print('玩家赢了')
    elif xq_result == 1 and user_result == 0:  # 玩家输入剪刀,小Q输入石头
        print('小Q赢了')
    elif user_result == 1 and xq_result == 2:  # 玩家输入石头,小Q输入布
        print('小Q赢了')
    elif user_result == 2 and xq_result == 1:  # 玩家输入布,小Q输入石头
        print('玩家赢了')
    else:  # 不满足上面条件,则说明平局情况,使用continue进行下一局(不然的话循环会被break)
        print('平局\n')
        continue
    
    # 非平局的情况,则执行到此行代码结束游戏对局
    break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62

游戏效果:
在这里插入图片描述
总结:

以上就是编写这个小游戏的整体代码逻辑,如果有错误或者不解的地方,欢迎在下方评论。

技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点赞 收藏+关注 子夜期待你的关注,谢谢支持!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/230115
推荐阅读
相关标签
  

闽ICP备14008679号