笨方法习题43中的游戏场景切换方法记录

import sys
from sys import exit
class scene(object):
    def enter(self):
        exit()
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 A(scene):
    def enter(self):
        print"this is a"
        return 'b'#return和字典联合使用
class B(scene):
    def enter(self):
        print"this is b"
        exit()
class map(object):
    scenes={
    'a':A(),
    'b':B()
    }
    def __init__(self,start_scene):
        self.start_scene=start_scene
    def next_scene(self,scene_name):
        return map.scenes.get(scene_name)#注意!是map.scenes.get()
    def opening_scene(self):
        return self.next_scene(self.start_scene)
a_map=map('a')#'a'即'start_scene'
a_game=engine(a_map)#'a_map'即'scene_map'
a_game.play()
  • 一个非常好用的方法:利用notepad里的视图\显示符号\显示空格与制表符来查看缩进的种类
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值