块语言编程游戏8:水战
这个游戏我玩了两次,第一次用了差不多一个下午的时间,战胜的几率仅有5%。于是晚上打电话请教陶陶同学(我的侄子,初中生),他给了我很多提示,并说他的战胜几率有85%左右。我的策略比较简单,以逃跑为主,而陶陶的策略是精准打击。
为了编写这个文档,我又花了将近一个上午的时间改进我的程序,终于可以达到差不多70%的战胜率了。
首先,必须熟悉水战中玩家的各种能力,即开炮、扫描、游泳、停止以及获取玩家的x、y坐标、速度及生命值等等。然后,观察对手的特点,这一点很关键。如果对手没有发现(扫描到)你,那么它们之间会发生混战,消耗彼此的生命值,因此,要想办法远离对手。我的策略是,先悄无声息地移动到左下角,然后再开始扫描、射击。为了保存实力,还要学会逃跑。通过监测玩家的生命值,判断自己是否受到攻击,一旦受到攻击,则沿屏幕的左侧边缘上下游动,这样,对手很难发现你,于是为自己争取了时间,而在这段时间里,对手们之间的相互厮杀,成为我取胜的重要因素。下图仅作为提示,而非有效程序 。
这个游戏提供了一个非常生动的学习模型。首先,学习者面对的是一个现实的问题,他的目标是解决问题,为此,他必须首先学会各种技能;其次,学习者通过观察及思考,给出自己的解决方案,并通过实践检验方案的可行性;最后,根据检验的结果,对方案进行调整,并提高解决问题的效率。更为有趣的是,这样的问题并不具有唯一解,而且成功率也不是100%,为学习者提供了很大的思考及改进的空间。我这里给出的方案也仅仅是起到抛砖引玉的作用,希望大家积极参与,并提供更好的解决方案。
勉强获胜之后,有些许的欣喜,并促使我继续改进!
赞 (0)