课时57:小游戏开发_完成游戏
摘要:本次课程围绕“唐僧大战白骨精”游戏的开发流程展开,详细阐述了从欢迎信息制作完成后,如何显示玩家基本信息、设置游戏选项,以及处理玩家不同选择(练级、打Boss、逃跑)的具体逻辑,同时指出了代码中存在的不合理之处并给出改进建议,旨在帮助初学者通过该游戏开发练习流程控制语句的使用。
1. 显示玩家基本信息
2. 显示游戏选项
3. 处理用户选择
4. 代码优化建议
01、 显示玩家基本信息
1.1 变量创建
在欢迎信息制作完成后,接下来要显示玩家的基本信息,主要包括攻击力和生命值。这两个信息需要创建变量来保存,因为后续要与Boss的相应值进行比较。
#创建变量,来保存玩家的生命值和攻击力
Player_life=2; 生命值
Player_attack=2; 攻击力
对于攻击力变量名的确定,若拿不准可以通过搜索引擎查询英文翻译,正确的“攻击”英文是“attack”。
同样,为了保存Boss的生命值和攻击力,也需要创建相应变量,且Boss的生命值和攻击力应比玩家高,可根据自己的想法设置具体数值。
#创建变量,来保存Boss的生命值和攻击力
Boss-life=10; Boss生命值
Boss-attack=10; Boss攻击力
1.2 信息显示
只需要向玩家显示玩家的信息,可使用格式化输出语句来展示。为了使显示效果更清晰,可以添加空格和分割线。
printf(f’唐僧,你的生命值是{player-life}
,你的攻击力是 {player-attack);
02、 显示游戏选项
2.1 选项设置
游戏正式开始,为玩家提供三个选项:练级、打Boss、逃跑。可以通过复制之前的格式代码并进行修改来实现。
println("请选择你要进行的操作:"); println(‘\t1.练级’) println(‘\t2.打Boss’) println(‘\t3.逃跑’) 为了保存用户的选择,可以使用一个变量,如`player-choose`。 player-choose=input(‘请选择要做的操作[1-3]:’), 也可以换成game-choose=input(‘请选择要做的操作[1-3]:’),
为了使界面格式更好看,每段信息之间最好添加分割线。
03、 处理用户选择
3.1 练级选项
当用户选择1进行练级时,需要增加玩家的生命值和攻击力。
If game_Choose==‘1’: #增加玩家的生命值和攻击力 player-life +=2; player-attack +=2;
由于游戏选项是需要反复显示的,所以必须将游戏选项编写到一个死循环中。因为不知道游戏何时结束,所以使用死循环,通过`break`语句在合适的时候退出循环。
while True:
#显示玩家信息:你也可以放到一个循环里面,也可以放if里边。
print(f’恭喜你升级了,你现在的生命值是{player life},你的攻击力是{player attack}’);
玩家信息也可以根据需求选择放在循环内或在修改后单独显示最新信息。
3.2 (二)打Boss选项(elif game-choose==‘2’)
当用户选择2打Boss时,需要分两步进行操作。
1. 玩家攻击Boss:玩家攻击Boss就是减去Boss的生命值,减去的生命值等于玩家的攻击力。 elif game-choose==2: BossLife-=player-attack; print(‘->唐僧<-攻击力->白骨精<-) #检查Boss是否死亡 If Boss-life<=0 #Boss死亡,player胜利,游戏结束 println(f‘->白骨精<-受到了{player-attack}点伤害,重伤不治死了。->唐僧<-赢得了胜利!‘); //游戏结束 Break(退出循环)
2. Boss反击玩家:若Boss未死亡,则Boss反击玩家,减去玩家的生命值。
else{ player-life-=BossAttack; printf(‘->白骨精<-攻击了->唐僧<-‘); #检查玩家是否死亡 If player-life<=0 : println(‘你受到了{Boss-attack}点伤害,重伤不治死了!GAME OVER’) #游戏结束 break;
3.3 逃跑选项
当用户选择3逃跑时,相当于退出游戏,此时可以显示一个提示信息并使用`break`语句退出循环。
elif(game-choose==‘3’: println(‘->唐僧<-一扭头,撒腿就跑。GAME OVER!"); break;
3.4 非法输入处理
为了处理用户输入非法选项的情况,需要添加一个`else`分支,提示用户输入有误并让其重新输入。
else: print (‘用户你的输入有误,请重新输入!‘);
04、 代码优化建议
当前代码中,像“唐僧”“白骨精”这样的游戏人物名字是写死的,如果要修改游戏名称或人物,需要多处修改,成本较高。更合理的方式是将这些人物名字设置成变量,这样可以使游戏更加灵活。
对于初学者来说,这个游戏开发是一个很好的练习机会,建议自己独立编写两三遍,体会程序的开发流程。同时,可以发挥想象力对游戏进行扩展,如引入闪避机制、技能系统等,让游戏更加复杂和有趣。