数字炸弹【猜数字游戏】
目录
游戏规则
数字炸弹是一种猜数字的游戏,游戏规则如下:
- 游戏开始时,假设游戏边界为1-100,生成一个随机由1 - 100范围的数字。
- 玩家循环猜测答案,每次猜测后都会得到一些提示。
- 假如玩家猜测答案为 50, 游戏答案为80。系统提示 50 - 100
- 假如玩家猜测答案为 90 , 游戏答案为80。系统提示 50 - 90。
- 以此类推直至猜出与答案相符。
类设计
初始化基本信息:
self.userNum
为用户输入的信息。self.left
为游戏下边界,实例化获取。self.right
为游戏上边界。
# -*- coding: utf-8 -*-
# @Time : 2023/8/30 15:01
# @Author : Relieved
import random
class GuessNumberGame:
def __init__(self, left, right):
self.userNum = 0
self.left = left
self.right = right
将接受用户输入封装在函数中:
def get_user_input(self):
self.userNum = int(input(f"> 请输入[{self.left:^3}] - [{self.right:^3}]以内的数字 "))
return self.userNum
逻辑处理:
def play_game(self):
print(">>> GuessNumberGame <<<")
self.get_user_input()
randomNumber = random.randint(self.left, self.right)
while self.userNum != randomNumber:
if self.userNum > randomNumber:
print(f">> {self.left} - {self.userNum} ")
self.right = self.userNum
elif self.userNum < randomNumber:
print(f">> {self.userNum} - {self.right}")
self.left = self.userNum
self.get_user_input()
print(f"> Guessed It Right: {randomNumber}")
启动器设计
def launcher():
init_left, init_right = input(f"> 输入猜数字游戏范围, 使用空格隔开[1 100]: ").split(" ")
try:
init_left, init_right = int(init_left), int(init_right)
game = GuessNumberGame(init_left, init_right)
game.play_game()
except ValueError:
print("> 输入的参数不是整数类型")
launcher()
主函数
if __name__ == '__main__':
launcher()
结果展示
> 输入猜数字游戏范围, 使用空格隔开[1 100]: 1 100
>>> GuessNumberGame <<<
> 请输入[ 1 ] - [100]以内的数字 50
>>Number in: [ 1 - 50 ]
> 请输入[ 1 ] - [50 ]以内的数字 25
>>Number in: [ 1 - 25 ]
> 请输入[ 1 ] - [25 ]以内的数字 15
>>Number in: [ 1 - 15 ]
> 请输入[ 1 ] - [15 ]以内的数字 7
>>Number in: [ 1 - 7 ]
> 请输入[ 1 ] - [ 7 ]以内的数字 3
>>Number in: [ 1 - 3 ]
> 请输入[ 1 ] - [ 3 ]以内的数字 2
>>Number in: [ 1 - 2 ]
> 请输入[ 1 ] - [ 2 ]以内的数字 1
> Guessed It Right: 1
进程已结束,退出代码为 0