Python实现猜拳与猜数字游戏的方法详解
来源:脚本之家    时间:2022-04-06 12:03:01

至此,我们的 Python零基础入门篇 的系列专栏到今天基本上算是结束了。今天没有任何的知识点,只是运用我们之前学习过的知识做两个小游戏的案例。第一个是模拟猜拳的小游戏,第二个就是猜数字的游戏。

猜拳小游戏

需求:

运用至今所学的 Python 知识编写脚本,实现一个人与计算机玩猜拳的石头剪刀布的小游戏。

这里我们先思考一下,如果将石头、剪刀、布分别用数字0、1、2表示,那么如何判定谁胜谁负呢?

userrobot结果
0(石头)0(石头)平局
0(石头)1(剪刀)user 获胜
0(石头)2(布)robot 获胜
1(剪刀)0(石头)robot 获胜
1(剪刀)1(剪刀)平局
1(剪刀)2(布)user 获胜
2(布)0(石头)user 获胜
2(布)1(剪刀)robot 获胜
2(布)2(布)平局

不难发现游戏的规律如下:

如果user和computer相等就是平局如果用 (user+1) 除以 3 得到的余数与 robot 相等,就是user(人)获得胜利其余情况都是 robot 获胜

案例脚本如下:

# coding:utf-8


import random


# TODO:只针对输入的参数做了 int 的排除,未针对输入的 非 int 类型做校验,可通过 isNum 函数做校验,或者进行 异常捕获。

data = {0: "石头", 1: "剪刀", 2: "布"}

while(True):
    robot = random.randint(0, 2)
    print("********猜拳小游戏即将开始,请准备!********")
    user = int(input("请输入[0:石头;1:剪刀;2:布;9:退出游戏]:"))

    if user not in (9, 0, 1, 2):
        print("--------输入参数不合法,请重新输入!--------")
        print("   ")
        continue

    elif user == 9:
        print("**********游戏结束,下次再来玩哦**********")
        break
    elif not 0 <= user <= 2:
        continue


    if user == robot:
        print("\"你\"出的是{}, \"ROBOT\" 出的是{}, 结果为:\"平局\"".format(data[user], data[robot]))
        print("    ")
    elif (user + 1) % 3 == robot:
        print("\"你\"出的是{}, \"ROBOT\" 出的是{}; 结果为:\"你赢了!\"".format(data[user], data[robot]))
        print("    ")
    else:
        print("\"你\"出的是{}, \"ROBOT\" 出的是{}; 结果为:\"ROBOT赢了!\"".format(data[user], data[robot]))
        print("    ")

PS:这里的传入参数校验并不完善,大家可以尝试自己动手完善一下。

数字猜猜猜小游戏

需求:

根据现实生活中的猜数字游戏的游戏规则,运用Python语言模拟实现猜数字游戏的的基本功能.

1、设定可猜测的次数,并根据提示进行数字区间的输入猜测的数字

2、将输入的数字与随机生成的数字进行比对,同时次数减一。若次数用完后,仍未猜对,则游戏结束。

案例脚本如下:

# coding:utf-8


import random


# TODO:这并不是我想要的效果,但是目前也只能写成这样了,有时间再晚上吧。

robot = random.randint(1, 10)
count = 5
print("*************游戏开始***************")
print("猜数字游戏,数字在1到10之间,你有{0}次机会".format(count))
print("   ")

while count > 0:
    num = input("请输入您要猜测的数字:")
    if num.isdigit():
        num = int(num)
        if num == robot:
            print("对了")
            print("   ")
            break
        elif num < robot:
            # print("您输入的参数小了", "剩余机会次数:%s" % int(count-1))
            print("您输入的参数小了", "剩余机会次数:{0}".format(count-1))
            print("   ")
        else:
            print("您输入的参数大了", "剩余机会次数:{0}".format(count-1))
            print("   ")
        count -= 1
        if count == 0:
            print("您的机会已经用完")
            print("   ")
            break
        # print("你还剩余{0}次机会".format(count))
        # print("   ")
    else:
        print("你输入的不是一个数字,请重新输入")
        print("   ")
print("**********游戏结束************")

以上就是Python实现猜拳与猜数字游戏的方法详解的详细内容,更多关于Python 猜拳猜数字的资料请关注脚本之家其它相关文章!

关键词: 游戏结束 相关文章 石头剪刀布 今天没有 游戏开始

X 关闭

X 关闭