python实现数字炸弹【猜数字游戏】

数字炸弹【猜数字游戏】

目录

游戏规则

数字炸弹是一种猜数字的游戏,游戏规则如下:

  1. 游戏开始时,假设游戏边界为1-100,生成一个随机由1 - 100范围的数字。
  2. 玩家循环猜测答案,每次猜测后都会得到一些提示。
  3. 假如玩家猜测答案为 50, 游戏答案为80。系统提示 50 - 100
  4. 假如玩家猜测答案为 90 , 游戏答案为80。系统提示 50 - 90。
  5. 以此类推直至猜出与答案相符。

类设计

初始化基本信息:

  1. self.userNum为用户输入的信息。
  2. self.left为游戏下边界,实例化获取。
  3. 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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值