用Python写一个猜数字的小游戏

Python使用版本:3.9.5

运行效果:

Python 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
================= RESTART: D:\Workspace-Python\game\starter.py =================

请输入“start”开始游戏,退出游戏请输入“quit”:s

输入错误。

请输入“start”开始游戏,退出游戏请输入“quit”:start

已启动游戏。

-------------------我i小游戏-------------------

猜数字的游戏,请输入数字1~15:8

小了,小了

再试试吧,请输入数字1~15:e

输入错误,请输入整数类型1~15:10

小了,小了

再试试吧,请输入数字1~15:12

小了,小了

再试试吧,请输入数字1~15:14

大了,大了

再试试吧,请输入数字1~15:15

大了,大了

再试试吧,请输入数字1~15:12

小了,小了

再试试吧,请输入数字1~15:13

您总共猜了 7 次

有点慢哦,但总算猜对了!

game over!

请输入“start”开始游戏,退出游戏请输入“quit”:start

-------------------我i小游戏-------------------

猜数字的游戏,请输入数字1~15:9

大了,大了

再试试吧,请输入数字1~15:5

大了,大了

再试试吧,请输入数字1~15:3

大了,大了

再试试吧,请输入数字1~15:2

您总共猜了 4 次

嗯...也不错,这次猜对了!

game over!

请输入“start”开始游戏,退出游戏请输入“quit”:quit

游戏名称:我i小游戏
游戏次数:2 次
游戏开始时间:2022-10-31 17:02:48
游戏结束时间:2022-10-31 17:03:33

已退出游戏。

>>> 

看代码:

starter.py 文件的代码:

from game_module import Game 

# 运行游戏
def runGame():  
    game = None

    while True:
        content = input("\n请输入“start”开始游戏,退出游戏请输入“quit”:")
        
        if content == "start":
            #首次创建游戏实例
            if game is None:
                game = Game()
                
            #启动游戏    
            game.start();
        elif content == "quit":
            break
        else:
            print("\n输入错误。")
            continue
        
    if game is None:
       print("\n已结束游戏。\n")
    else:        
       game.quit()

# 调用运行游戏函数
runGame()

 game_module.py 文件的代码

import random
import time

class Game():

    def __init__(self):
        self.gameName = "我i小游戏"
        self.startTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        self.playCount = 0
        print("\n已启动游戏。")

    #开始游戏
    def start(self):
        self.playCount += 1
        print("\n-------------------" + self.gameName + "-------------------\n")
        
        focus = random.randint(1, 15)
        temp = input("猜数字的游戏,请输入数字1~15:")

        isNotNumber = True
        while isNotNumber:
             try:
                result = int(temp)
                isNotNumber = False
             except ValueError:
                temp = input("\n输入错误,请输入整数类型1~15:")
                continue
             
        count = 1;

        while result != focus:
            if result > focus:
               print("\n大了,大了\n")
            else:
               print("\n小了,小了\n")
               
            temp = input("再试试吧,请输入数字1~15:")
            isNotNumber = True
            while isNotNumber:
                 try:
                    result = int(temp)
                    isNotNumber = False
                 except ValueError:
                    temp = input("\n输入错误,请输入整数类型1~15:")
                    continue
             
            count += 1

        print("\n您总共猜了 " + str(count) + " 次\n")
            
        if count == 1:
            print("您太聪明了,一次就猜对了!")
        elif count < 4:
            print("很棒哦,这么快就猜对了!")
        elif count < 6:
            print("嗯...也不错,这次猜对了!")
        else:
            print("有点慢哦,但总算猜对了!") 

        print("\ngame over!")

    #退出游戏
    def quit(self):
        self.entTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

        print("\n游戏名称:"+ self.gameName +
              "\n游戏次数:" + str(self.playCount) + " 次" +
              "\n游戏开始时间:" + self.startTime +
              "\n游戏结束时间:" + self.entTime)
        print("\n已退出游戏。\n")
        
        

或者都写在一个文件里也可以:

import random
import time

class Game():

    def __init__(self):
        self.gameName = "我i小游戏"
        self.startTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        self.playCount = 0
        print("\n已启动游戏。")

    #开始游戏
    def start(self):
        self.playCount += 1
        print("\n-------------------" + self.gameName + "-------------------\n")
        
        focus = random.randint(1, 15)
        temp = input("猜数字的游戏,请输入数字1~15:")

        isNotNumber = True
        while isNotNumber:
             try:
                result = int(temp)
                isNotNumber = False
             except ValueError:
                temp = input("\n输入错误,请输入整数类型1~15:")
                continue
  
        count = 1;

        while result != focus:  
            if result > focus:
               print("\n大了,大了\n")
            else:
               print("\n小了,小了\n")
               
            temp = input("再试试吧,请输入数字1~15:")
            isNotNumber = True
            while isNotNumber:
                 try:
                    result = int(temp)
                    isNotNumber = False
                 except ValueError:
                    temp = input("\n输入错误,请输入整数类型1~15:")
                    continue
             
            count += 1

        print("\n您总共猜了 " + str(count) + " 次\n")
            
        if count == 1:
            print("您太聪明了,一次就猜对了!")
        elif count < 4:
            print("很棒哦,这么快就猜对了!")
        elif count < 6:
            print("嗯...也不错,这次猜对了!")
        else:
            print("有点慢哦,但总算猜对了!") 

        print("\ngame over!")

    #退出游戏
    def quit(self):
        self.entTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

        print("\n游戏名称:"+ self.gameName +
              "\n游戏次数:" + str(self.playCount) + " 次" +
              "\n游戏开始时间:" + self.startTime +
              "\n游戏结束时间:" + self.entTime)
        print("\n已退出游戏。\n")

    # 启动游戏函数
    @staticmethod
    def runGame():  
        game = None

        while True:
            content = input("\n请输入“start”开始游戏,退出游戏请输入“quit”:")
            
            if content == "start":
                #首次创建游戏实例
                if game is None:
                    game = Game()
                    
                #启动游戏    
                game.start();
            elif content == "quit":
                break
            else:
                print("\n输入错误。")
                continue
            
        if game is None:
           print("\n已结束游戏。\n")
        else:        
           game.quit()

#以脚本的形式启动        
if __name__ == '__main__':
    Game.runGame()

比较简单,纯粹是为了练习语法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

windfallsheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值