鱼C论坛

 找回密码
 立即注册
查看: 943|回复: 4

一段代码看不懂。关于类之间的互相调用,还有函数之间的调用

[复制链接]
发表于 2018-6-24 19:38:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 taigefcxj 于 2018-6-24 19:38 编辑

from sys import exit
from random import randint

class Scene(object):

    def entet(self):
        print("this scene is not yes configured. Subclass it and implement enter().")
        exit(1)


class Engine(object):

    def __init__(self,scene_map):
        self.scene_map = scene_map

    def play(self):
        current_scene = self.scene_map.opening_scene()

        while True:
            print("\n----------")
            next_scene_name = current_scene.enter()
            current_scene = self.scene_map.next_scene(next_scene_name)

class Death(Scene):


class CentralCorridor(Scene):

   

class LaserWeaponArmory(Scene):

  
class TheBridge(Scene):

  

class EscapePod(Scene):

   

class Map(object):

    scenes = {'death': Death(),  
              'central_corridor': CentralCorridor(),  
              'laser_weapon_armory': LaserWeaponArmory(),  
              'the_bridge': TheBridge(),  
              'escape_pod': EscapePod()  
              }

    def __init__(self,start_scene):
        self.start_scene = start_scene

    def next_scene(self,scene_name):
        return Map.scenes.get(scene_name)

    def opening_scene(self):
        return self.next_scene(self.start_scene)

a_map = Map('central_corridor')
a_game = Engine(a_map)
a_game.play()


上面是一个文字冒险类的小游戏  为了方便大家看代码   我把一些多余的部分去掉了
一直没有弄懂他的 class Engine 是怎么起到载入现在的场景 和准备下一个场景的


我理解的路线图 ===〉 在实例化a_map = Map('central_corridor') 以后   >>>> 'central_corridor'进入 class Map  >>>>>  调用函数 def __init__ (self,start_scene) 然后 central_corridor'赋值给 self.start_scene >>>>> 但是再下一步 def next_scene(self,scene_name) 并没有被传入参数  刚刚赋值的 self.start_scene变量 也没有进入这个函数  在下面一个函数  
所以到了这里就看不明白了  请大佬指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-6-24 20:57:02 | 显示全部楼层
大佬在哪里 ~~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-25 10:18:02 | 显示全部楼层
是我描述的不清楚吗。。。。。如果有看不明白的位置请告诉我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-25 22:08:28 | 显示全部楼层
分别把你的文件目录结构贴出来,每个文件内容贴出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-26 10:42:11 | 显示全部楼层
tifa2018 发表于 2018-6-25 22:08
分别把你的文件目录结构贴出来,每个文件内容贴出来

没有其他文件 就这一个代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 12:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表