用python迭代器开发可以通关的小游戏

liftword1周前 (06-21)技术文章3

python的迭代器有两个重要的函数,一个是iter()用于创建迭代器,一个是next()用于获取迭代器中的元素。

同样是遍历数据序列,迭代器与for循环比起来,各有各的优势,比如下面这个用迭代器开发的可通关的小游戏,代码如下:

def guessNum(x, y):
    import random

    md = random.randint(x,y)
    start = x
    end = y
    inp = int(input('从%s到%s猜一个数字' %(start, end)))
    while start > inp or end < inp:
        inp = int(input('请重新输入从%s到%s猜一个数字' %(start, end)))

    while start <= inp <= end:
        if inp inp or end < inp:
                inp = int(input('请重新输入从%s到%s猜一个数字' %(start, end)))
        elif inp > md:
            end = inp
            inp = int(input('从%s到%s猜一个数字:' %(start,end)))
            while start > inp or end < inp:
                inp = int(input('请重新输入从%s到%s猜一个数字' %(start, end)))
        else:            
            break
            
score = [10,20,30]
i_end = iter([50,100,200]) #iter()内置函数创建可迭代的对象,
n = len(score) #要通关的关数
i_score = iter(score)
x = 0 #
i = 1
sumScore = 0 #用于统计总得分
while i <= n:  #while循环的条件判断,不仅用于终止while循环,也终止了next()获取超出元素个数范围的值,避免引发错误
    print('第%s关!' %i)
    y = next(i_end) #next()函数用于获取迭代器的下一个元素,当一关通过就用next()获取下一个元素作为猜字游戏的end值
    guessNum(x,y) 
    sumScore += next(i_score) #统计总得分
    
    print('恭喜你闯过了第%s关,你目前的得分是%s分'%(i,sumScore))
    i += 1
——————————————————————————————————————————
第1关!
从0到50猜一个数字10
从10到50猜一个数字:20
从10到20猜一个数字:30
请重新输入从10到20猜一个数字15
从15到20猜一个数字:16
从16到20猜一个数字:18
从18到20猜一个数字:19
恭喜你闯过了第1关,你目前的得分是10分
第2关!
从0到100猜一个数字50
从50到100猜一个数字:60
从50到60猜一个数字:55
从55到60猜一个数字:58
从55到58猜一个数字:56
恭喜你闯过了第2关,你目前的得分是30分
第3关!
从0到200猜一个数字100
从100到200猜一个数字:150
从150到200猜一个数字:180
从180到200猜一个数字:190
从180到190猜一个数字:185
从180到185猜一个数字:183
从180到183猜一个数字:182
从180到182猜一个数字:181
恭喜你闯过了第3关,你目前的得分是60分

关于python迭代器更多的介绍,可以参考下面的内容:

python迭代器,iter()函数,通关游戏实例 - 大器编程

通关游戏实例解析

如上面游戏实例中的注释,iter()函数用于创建迭代器对象,next()用于获取迭代器的下一个元素,这比起用for循环来要方便许多。

注意:上面的代码要作为一个游戏来说并不完整,比如我们还可以为该游戏设置猜数字的次数,当超过这个次数的时候,游戏就game over,当然,如果只是限定次数,游戏仍然要靠没有依据的猜测,我们可以为游戏玩家设置问答的程序,如果答对了就可以获得缩小数字范围的提示,等等,还有很多可以进行完善的地方,在后面的章节中,如果有机会,我们就来完善这个游戏。

相关文章

从python入门开始,玩这个炸弹超人小游戏,打通关就可以掌握编程

还记得那个街机游戏炸弹超人吗?#python#现在用python可以直接开发出一个这样的炸弹超人小游戏,并且非常简单,跟着详细教程学,再加上所有的源码,你就不仅能开发出一个这样的python小游戏,还...

Python入门塔防小游戏,开发步骤和源码,带你轻松学python

在上一篇文章中,我介绍了有关python入门塔防小游戏的一些功能,下面我继续讲解有关这个小游戏的大致开发步骤。开发工具还是:Python版本:3.6.4相关的模块有:pygame模块,以及一些pyth...

原来通过玩游戏也可以学会编程,这里有六款编程游戏让你尝试

前言除了想成为一名程序员并拥有一份高薪工作之外,还有很多理由让你去学习编程。即使是那些认为自己在其他行业工作的人也可以学习编程,因为它在很多领域都有作用。如果您知道如何编写代码,那么您也知道如何将问题...

Python程序开发之简单小程序实例(11)小游戏-跳动的小球

Python程序开发之简单小程序实例(11)小游戏-跳动的小球一、项目功能用户控制挡板来阻挡跳动的小球。二、项目分析根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键...

分享编程之美:Python弹球小游戏

Python是一种流行的编程语言,也是许多游戏开发者所使用的工具。我们可以使用Python来创建各种有趣的小游戏,比如弹球小游戏。首先,我们需要安装一个名为“pygame”的Python库。这个库包含...