猜数字游戏(Python)

一、猜数字游戏是一个古老的密码破译类、益智类小游戏,通常由两个人参与,一个人设置一个数字,一个人猜数字,当猜数字的人说出一个数字,由出数字的人告知是否猜中:若猜测的数字大于设置的数字,出数字的人提示"很遗憾,你猜大了";若猜测的数字小于设置的数字时,出数字的人提示"很遗憾,你猜小了";若猜数字的人在规定的次数内猜中设置的数字,出数字的人提示"恭喜,猜数成功"。

本实例要求编写程序,实现上述规则的猜数字游戏,并限制猜数机会只有10次。游戏规则:

(1)程序应随机生成一个 1 至 100 之间的整数;

(2)玩家有 10 次机会猜该数字;若猜中,则提示玩家获胜;若未猜中,则提示玩家猜 大了,还是猜小了,并且提示下一次猜数的范围;若 10 次机会用完仍未猜中,则提示玩家失败;

(3)并且在代码中显示该游戏花费时间

代码运行结果:

python 复制代码
退出程序请输入0
请输入你猜的数字,你有十次机会:
请输入要猜的数字:23
小于随机数字
下一次请输入 23 ~ 100 之间的数字
请输入要猜的数字:55
大于随机数字
下一次请输入 23 ~ 55 之间的数字
请输入要猜的数字:40
小于随机数字
下一次请输入 40 ~ 55 之间的数字
请输入要猜的数字:48
恭喜你,猜对了!(~ ̄▽ ̄)~
正确数字是: 48
共用了 4 次机会
用时: 19 秒
python 复制代码
import random
import time
startTime=time.time()
#代码简介:随机猜数字上进行升级,
# 参与者每次猜测都能提示其范围,并且可以随时退出,并输出使用次数,和游戏时间
print("退出程序请输入0")
random_number=random.randint(1,100)#生成一个随机数字
print("请输入你猜的数字,你有十次机会:")
list1=[1,1,100]
list2=[100,100,1]
t=0
for i in range(10+t):
    d=eval(input("请输入要猜的数字:"))
    if d > 100:             #如果是超出范围,重新输入
        print("超出数字范围,此次不会计入相应次数,请重新输入")
        continue
    if d!=round(d):
        print("请输入整数:") #判断是否是整数
        continue
    if d>random_number:
        print("大于随机数字")
        list1[1]=d
        print("下一次请输入",list2[2],"~",list1[1],"之间的数字")#第一次输入大于数字,下一次从1-d开始
        list1[2]=d
    elif d<random_number and d>0:
        print("小于随机数字")
        list2[1]=d
        print("下一次请输入",list2[1],"~",list1[2],"之间的数字")
        list2[2]=d
    elif d==random_number:
        print("恭喜你,猜对了!(~ ̄▽ ̄)~")
        break
    elif d==0:
        print("退出成功!")
        break
endTime=time.time()
if i==9:
    print("很抱歉,你没有猜对┭┮﹏┭┮,正确数字是:")
print("正确数字是:",random_number)
if d==0:
    print("共用了",i,"次机会")
else:
    print("共用了",i+1,"次机会")
 
useTime=int(endTime-startTime)
print("用时:",useTime,"秒")
相关推荐
行者966 小时前
Flutter跨平台开发在OpenHarmony上的评分组件实现与优化
开发语言·flutter·harmonyos·鸿蒙
Hcoco_me6 小时前
大模型面试题61:Flash Attention中online softmax(在线softmax)的实现方式
人工智能·深度学习·自然语言处理·transformer·vllm
阿部多瑞 ABU6 小时前
`chenmo` —— 可编程元叙事引擎 V2.3+
linux·人工智能·python·ai写作
acanab6 小时前
VScode python插件
ide·vscode·python
阿蒙Amon6 小时前
C#每日面试题-Array和ArrayList的区别
java·开发语言·c#
666HZ6666 小时前
数据结构2.0 线性表
c语言·数据结构·算法
SmartRadio7 小时前
ESP32添加修改蓝牙名称和获取蓝牙连接状态的AT命令-完整UART BLE服务功能后的完整`main.c`代码
c语言·开发语言·c++·esp32·ble
且去填词7 小时前
Go 语言的“反叛”——为什么少即是多?
开发语言·后端·面试·go
极海拾贝7 小时前
GeoScene解决方案中心正式上线!
大数据·人工智能·深度学习·arcgis·信息可视化·语言模型·解决方案
知乎的哥廷根数学学派7 小时前
基于生成对抗U-Net混合架构的隧道衬砌缺陷地质雷达数据智能反演与成像方法(以模拟信号为例,Pytorch)
开发语言·人工智能·pytorch·python·深度学习·机器学习