调用方法本身不好

本文关键字:方法 调用 | 更新日期: 2023-09-27 18:34:09

我一直在编写一个文字冒险游戏。在游戏开始时,调用 Menu(字符串选择,bool takenDump)。还有其他几种方法具有用户可以遇到的不同场景,例如口袋妖怪遭遇等。如果用户死亡,那么他们会在 Menu() 重新启动,这意味着它会从自身内部再次调用。有什么办法可以避免这种情况吗? program

调用方法本身不好

不,从自身调用方法是完全可以的 - 名称是"递归"/"递归函数"。

在您的特定情况下,这绝对没有必要(并且可能是错误的)。顶级游戏代码通常看起来像无限循环而不是递归:

 while (continuePlaying)
 { 
    ResetLevels_Lives_AndEverything(); 
    while(notDead)
    {
       handleInput()
       draw()
       notDead = ChechStillAlive();
    }
    continuePlaying = CheckContinuePlaying();
 }

使用递归时应注意的一件事是堆栈溢出。这似乎不是您要执行的操作的问题,但是如果您的方法多次调用自身,并且每个调用都再次调用它多次,则会发生(除非您设置合理的深度限制)。想想分形、阶乘、斐波那契数列。