Python零基础实战:猜拳与猜数字游戏开发详解

远山来客
远山来客
发布时间:2026-10-15| 5人浏览过
原创

本文通过两个经典案例——猜拳与猜数字游戏,系统讲解Python基础语法在实战中的应用。内容涵盖条件判断、循环结构、随机数生成及输入输出处理,帮助初学者巩固Python零基础知识,掌握脚本编写技巧,完成从理论到实践的转变。

Python零基础实战:猜拳与猜数字游戏开发详解

至此,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)与计算机(robot)出的数字相等时,判定为平局。
  • 当 (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('    ')

注:此处对传入参数的校验尚不完善,建议读者尝试自行完善输入验证逻辑。

猜数字游戏功能实现

数字猜猜猜小游戏

需求:

依据现实生活中猜数字游戏的规则,使用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相关技术内容请关注本站其他文章。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。