python小程序之猜水果游戏

猜水果游戏题目如下

猜水果之面向过程编程题目:

'''
猜水果系统
规则:
("1.猜题游戏一共有10个题,每个题10分,共一百分")
("2.您在这个游戏中可以猜测10次,不管您答对还是答错,都会消耗猜测的次数")
("3.每道题目开始时,系统都会提示是否使用锦囊,一共有三次的锦囊机会(锦囊一共有三种  ,并且可以重复选择!)。同时,锦囊不算在猜测的次数中。")
("4.锦囊包括:1.提示水果第一个字。2.提示水果第二个字3.这个水果的字数")
("5.游戏可以提前结束")
a = ['西瓜', '梨子', '香蕉', '核桃', '苹果', '桃子', '花生', '石榴', '西瓜', '梨子']
b = ['绿色的,红心', '配冰糖,暖到心', '弯弯的月儿小小的船,小小的船儿两头尖', '皱肉皱骨头, 骨头生在肉外头。', '乔布斯', '胖娃娃,没手脚,红尖嘴,一身毛,背上一道沟,肚里好味道。',
     '青藤藤,开黄花,地上开花不结果,地下结果不开。,', '小小红坛子,装满红饺子,吃掉红饺子,吐出白珠子。', '绿色的,红心', '配冰糖,暖到心']
'''

使用面向过程编写代码:我就不写注释了,比较简单,使用面向对象代码编写的代码,我加了一些注释,包含这个代码的。

a = ['西瓜', '梨子', '香蕉', '核桃', '苹果', '桃子', '花生', '石榴', '西瓜', '梨子']
b = ['绿色的,红心', '配冰糖,暖到心', '弯弯的月儿小小的船,小小的船儿两头尖', '皱肉皱骨头, 骨头生在肉外头。', '乔布斯', '胖娃娃,没手脚,红尖嘴,一身毛,背上一道沟,肚里好味道。',
     '青藤藤,开黄花,地上开花不结果,地下结果不开。,', '小小红坛子,装满红饺子,吃掉红饺子,吐出白珠子。', '绿色的,红心', '配冰糖,暖到心']


import random
change=10  #定义猜的机会
right=0    #定义猜对的题数
add=3      #定义锦囊次数
print("这是一个猜题游戏,你一共有10次机会")
print("游戏开始")
while change:
    print("你现在还有%d次机会"%change)
    random_number=random.randint(1, len(b)-1)
    print("请听题")
    print(b[random_number])
    print("请问:这道题所描述的水果是:")
    print("你还有%d次机会使用锦囊"%(add))
    if add>0:
        kit = input("系统提示:是否使用锦囊,输入yes或者no")
        while True:
            if kit=="yes":
                print("这里有三个锦囊:1.提示水果第一个字。2.提示水果第二个字3.这个水果的字数")
                while True:
                    number = eval(input("请输入你要数字选择你要哪一个锦囊"))
                    if number==1:
                        print("提示")
                        print(a[random_number][0:1])
                        add-=1
                        break
                    elif number==2:
                        print("提示")
                        print(a[random_number][1:2])
                        add-=1
                        break
                    elif number==3:
                        print("提示")
                        print(len(a[random_number]))
                        add-=1
                        break
                    else:
                        print("输入错误")

                break
            elif kit=="no":
                break
            else:
                print("输入错误")
            break

    result=input("请输入你要猜的水果")
    if result == a[random_number]:
        print("恭喜你猜对了")
        right+=1
    else:
        print("很遗憾,你猜错了")
    print("游戏可以提前结束")
    gameover=input("你需要结束游戏请输入exit")
    if gameover=="exit":
        print("游戏结束中")
        break
    else:
        if change==1:
            print("游戏结束")
        else:
            print("游戏继续进行")
    change-=1
print("你答对%d道题"%right)

猜水果之面向对象编程题目:

'''
a = ['西瓜', '梨子', '香蕉', '核桃', '苹果', '桃子', '花生', '石榴', '西瓜', '梨子']
b = ['绿色的,红心', '配冰糖,暖到心', '弯弯的月儿小小的船,小小的船儿两头尖', '皱肉皱骨头, 骨头生在肉外头。', '乔布斯', '胖娃娃,没手脚,红尖嘴,一身毛,背上一道沟,肚里好味道。',
'青藤藤,开黄花,地上开花不结果,地下结果不开。,', '小小红坛子,装满红饺子,吃掉红饺子,吐出白珠子。', '绿色的,红心', '配冰糖,暖到心']
1.定义一个游戏类
2.定义对象属性:
游戏者的名字
控制游戏开始的属性
控制锦囊次数的属性
控制游戏次数的属性
控制分数的属性
3.定义类属性
定义一个最高分类属性
4.定义方法
锦囊方法
游戏方法
注意:游戏方法调用锦囊方法
5.能够几个人玩,并且能计算出最高分的姓名与最高分

'''

使用面向对象封装编写代码

class Play:
    a = ['西瓜', '梨子', '香蕉', '核桃', '苹果', '桃子', '花生', '石榴', '西瓜', '梨子']
    b = ['绿色的,红心', '配冰糖,暖到心', '弯弯的月儿小小的船,小小的船儿两头尖', '皱肉皱骨头, 骨头生在肉外头。', '乔布斯', '胖娃娃,没手脚,红尖嘴,一身毛,背上一道沟,肚里好味道。',
         '青藤藤,开黄花,地上开花不结果,地下结果不开。,', '小小红坛子,装满红饺子,吃掉红饺子,吐出白珠子。', '绿色的,红心', '配冰糖,暖到心']
    score_max = 0        #设置默认最高分为0
    name_max = "nobody"      #设置默认最高分的姓名为None
    def __init__(self):  #变量初始化
        self.change = 10  #设置一共10次机会
        self.score = 0    #设置分数为0
        self.add = 3      #设置锦囊的机会为三次
        self.number = -1   #设置锦囊选项


    def play_user(self, name):
        self.name = name    #录入姓名

    def play_go(self, isgo):
        if isgo == "True":   #定义游戏开始
            return True
        else:
            return False

    def play_times_change(self):  #使用一次锦囊机会少一次
        self.add = self.add - 1

    def play_change_change(self):   #游戏机会使用一次少一次
        self.change = self.change - 1

    def play_score_change(self):   #答对一道题得10分
        self.score = self.score + 10

    def play_score_max(self, score):   #寻找最高分
        if score >= self.score_max:
            self.score_max = score
            self.name_max = self.name

    def print(self):                #打印最高分姓名及最高分
        return "最高分:{} 姓名:{}".format(self.score_max, self.name_max)

    def Secret_method(self, random_number):   #定义锦囊策略
        while True:
            kit = input("请输入yes选择锦囊,输入no不适用锦囊")
            if kit == "yes":
                print("这里有三个锦囊:1.提示水果第一个字。2.提示水果第二个字3.这个水果的字数")
                while True:
                    self.number = eval(input("请输入你要数字选择你要哪一个锦囊"))
                    if self.number == 1:    #第一种提示
                        print("提示")
                        play.play_times_change()
                        return play.a[random_number][0:1]
                    elif self.number == 2:    #第二种提示
                        print("提示")
                        play.play_times_change()
                        return play.a[random_number][1:2]
                    elif self.number == 3:     #第三种提示
                        print("提示")
                        play.play_times_change()
                        return len(play.a[random_number])
                    else:                       #输入错误,不跳出循环
                        print("输入错误")     

            elif kit == "no":
                return "不使用"
            else:
                print("输入错误")

if __name__ == '__main__':   #主方法
    import random

    play = Play()
    for i in range(int(input("请输入数字代表几个人玩"))):   #让玩家选择几个人玩
        print("这是一个猜题游戏,你一共有10次机会")
        play.name = input("请输入你的姓名")
        if play.play_go(input("如果开始游戏请输入True")):   #判断是否进入游戏
            while play.change:
                print("你现在还有%d次机会" % play.change)
                random_number = random.randint(1, len(play.b) - 1)
                print("请听题")
                print(play.b[random_number])
                print("请问:这道题所描述的水果是:")
                print("你还有%d次机会使用锦囊" % (play.add))
                if play.add > 0:
                    print(play.Secret_method(random_number))

                    result = input("请输入你要猜的水果")
                if result == play.a[random_number]:
                    print("恭喜你猜对了")
                    play.play_score_change()
                else:
                    print("很遗憾,你猜错了")
                print("游戏可以提前结束")
                gameover = input("你需要结束游戏请输入exit")
                if gameover == "exit":
                    print("游戏结束中")
                    break
                else:
                    print("游戏继续进行")
                play.play_change_change()
            print("%s得了%d分" % (play.name, play.score))
            play.play_score_max(play.score)
            play.__init__()             #每一个人玩完便可初始化变量
        else:
            print("游戏结束")
    print(play.print())                 #打印最高分姓名及最高分
发布了38 篇原创文章 · 获赞 128 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lujiangyang123/article/details/103701705