吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2297|回复: 10
收起左侧

[Python 转载] 猜数字游戏

[复制链接]
georgefan 发表于 2021-8-19 12:29
猜数字的游戏,系统随机生成一个1~100之间的整数,玩家有5次机会,每猜一次系统就会提示玩家该数字是偏大还是偏小,如果猜中了,则告知玩家并提前结束游戏,如果5次都没猜中,结束游戏并告知正确答案。
[Python] 纯文本查看 复制代码
import random


class GuessGame:
    def __init__(self, min_num, max_num, choice):
        self.min_num = min_num
        self.max_num = max_num
        self.target = random.randint(min_num, max_num)
        self.choice = choice

    def guess(self):
        choice = self.choice
        min_num = self.min_num
        max_num = self.max_num
        while choice > 0:
            choice -= 1
            try:
                num = int(input("请输入%d - %d之间的幸运数字:" % (min_num, max_num)))
                if num < min_num or num >max_num:
                    raise ValueError(e)
            except  ValueError as e:
                print("请输入有效数字:")
                continue

            if num == self.target:
                print("恭喜你猜中了!")
            elif num < self.target:
                min_num = num
                print("你猜小了,还剩%d次机会, 幸运数字区间在%d — %d。" % (choice, min_num, max_num))
            else:
                max_num = num
                print("你猜大了,,还剩%d次机会, 幸运数字区间在%d — %d。" % (choice, min_num, max_num))
        else:
            print("很遗憾,%d次机会都用完了,正确答案是%d。" % (self.choice, self.target))


if __name__ == "__main__":
    game = GuessGame(1, 100, 5)
    game.guess()

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

李佑辰 发表于 2021-8-19 12:44
这不就是踩雷游戏么,只是猜的次数没有限制。
shen1989827 发表于 2021-8-19 12:58
额   以前玩的不亦乐乎  坐车无聊的时候 玩一玩  
雾都孤尔 发表于 2021-8-19 13:04
一小段代码就能重温当年的扫雷游戏也是不错了
Lich 发表于 2021-8-19 14:08
当我第五次猜中数字也会出现“很遗憾”

[Python] 纯文本查看 复制代码
import random
 
 
class GuessGame:
    def __init__(self, min_num, max_num, choice):
        self.min_num = min_num
        self.max_num = max_num
        self.target = random.randint(min_num, max_num)
        self.choice = choice
 
    def guess(self):
        choice = self.choice
        min_num = self.min_num
        max_num = self.max_num
        while choice > 0:
            choice -= 1
            try:
                num = int(input("请输入%d - %d之间的幸运数字:" % (min_num, max_num)))
                if num < min_num or num >max_num:
                    raise ValueError(e)
            except  ValueError as e:
                print("请输入有效数字:")
                continue
 
            if num == self.target:
                print("恭喜你猜中了!")
                game = GuessGame(1, 100, 5)
                game.guess()
            elif num < self.target:
                min_num = num
                print("你猜小了,还剩%d次机会, 幸运数字区间在%d — %d。" % (choice, min_num, max_num))
            else:
                max_num = num
                print("你猜大了,,还剩%d次机会, 幸运数字区间在%d — %d。" % (choice, min_num, max_num))
        else:
            print("很遗憾,%d次机会都用完了,正确答案是%d。" % (self.choice, self.target))
            game = GuessGame(1, 100, 5)
            game.guess()
 
 
if __name__ == "__main__":
    game = GuessGame(1, 100, 5)
    game.guess()
TDwei 发表于 2021-8-19 14:35
猜中也是遗憾
image.png
wuaiwuai888 发表于 2021-8-19 14:39
好有回忆感,支持!!
xdxgz 发表于 2021-8-19 14:40
1、猜中不会结束游戏,继续猜
2、第5次 不管猜中与否,都会出现遗憾。

请输入1 - 100之间的幸运数字:49
你猜小了,还剩4次机会, 幸运数字区间在49 — 100。
请输入49 - 100之间的幸运数字:75
恭喜你猜中了!
请输入49 - 100之间的幸运数字:75
恭喜你猜中了!
请输入49 - 100之间的幸运数字:75
恭喜你猜中了!
请输入49 - 100之间的幸运数字:75
恭喜你猜中了!
很遗憾,5次机会都用完了,正确答案是75。
sunrisexzy 发表于 2021-8-19 15:24
小小改了一下下~
[Python] 纯文本查看 复制代码
import random


class GuessGame:
    def __init__(self, min_num, max_num, choice):
        self.min_num = min_num
        self.max_num = max_num
        self.target = random.randint(min_num, max_num)
        self.choice = choice

    def guess(self):
        choice = self.choice
        min_num = self.min_num
        max_num = self.max_num
        while choice > 0:
            choice -= 1
            try:
                num = int(input("请输入%d - %d之间的幸运数字:" % (min_num, max_num)))
                if num < min_num or num > max_num:
                    raise ValueError(e)
            except  ValueError as e:
                print("请输入有效数字:")
                continue

            if num == self.target:
                print("恭喜你猜中了!")
                print('您只用了%d次机会~' %(self.choice - choice))
                break
            elif num < self.target:
                min_num = num
                print("你猜小了,还剩%d次机会, 幸运数字区间在%d — %d。" % (choice, min_num, max_num))
            else:
                max_num = num
                print("你猜大了,,还剩%d次机会, 幸运数字区间在%d — %d。" % (choice, min_num, max_num))
        else:
            print("很遗憾,%d次机会都用完了,正确答案是%d。" % (self.choice, self.target))


if __name__ == "__main__":
    game = GuessGame(1, 100, 8)
    game.guess()
C:\Users\sunrisexzy\Pictures\a.png
a.png
 楼主| georgefan 发表于 2021-8-23 15:18
sunrisexzy 发表于 2021-8-19 15:24
小小改了一下下~[mw_shl_code=python,true]import random

您只用了%d次机会~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表