TEL:400-8793-956
当前位置:程序、服务器

地图不会记录下移

提问者: 近期获赞: 浏览人数: 发布时间:2021-02-24 09:00:04

 问:我无法截屏所有代码,也没有使用工作区来编写代码,因此我将以一种不常见的方式将其抛出:

 
导入 随机
CELLS = [(0 ,0 ), (0 ,1 ), (0 ,2 ), (1 ,0 ), (1 ,1 ), (1 ,2 ), (2 ,0 ), (2 ,1 ), (2 ,2 )] DEF get_locations ():怪物=随机。选择
 
      (CELLS )
门=随机。选择(CELLS )开始=随机。如果怪物==门或怪物==开始或门==开始,则选择(CELLS ):返回get_locations ()返回怪物,门,开始def move_player (player ,move ):#player =(x,y)x ,      
 
     y  = 玩家
是否移动== '左' :y- = 1次Elif移动== '右' :y + = 1次Elif移动== '上' :x- = 1次Elif移动== '向下' :x + = 1 return x ,y def get_moves (player ):动作= [ '左' ,'右' ,'上' ,'下'
 
         ] 
#玩家=(x,y)如果玩家[ 1 ] == 0 :移动。如果玩家[ 1 ] == 2 :移动,则移除('LEFT' )。如果玩家[ 0 ] == 0 :移动,则移除('RIGHT' )。如果玩家[ 0 ] == 2 :移动,则移除('UP' )。    
 
        除去('向下' )
返回移动高清draw_map (播放机):打印('_ _ _' )瓦片= '| {}'为IDX ,细胞在枚举(CELLS ):如果IDX在[ 0 ,1 ,3 ,4 ,6 ,7 ]:如果细胞==播放器:打印(瓦。格式(
 
                'X' ), 结束= '' )
其他:打印(瓦。格式('_' ),结束= '' )其他:如果电池==球员:打印(瓦。格式('X |' ))其他:打印(瓦。格式('_ |' ))的怪物,门,玩家= get_locations ()            
 
打印(“欢迎来到地下城!” ),
同时为True时:moves = get_moves (玩家)打印(“您当前在房间{}” 。格式(玩家))draw_map (玩家)print (“您可以移动{}” 。格式(移动))打印(“ENTER QUIT退出” )移动=输入(“>” )移动=移动。上
 
      ()
如果move == 'QUIT' :如果进行移动,则中断:player = move_player (player ,move )else :print (“ **墙壁很硬,请停止进入其中!**” )如果玩家==门,则继续:打印(“您逃脱了!” )打破elif player ==怪物:打印(“您被烟火吞噬了” )打破
 
    #如果动作不错,请更改玩家的位置
#如果动作不好,请不要更改位置#如果新玩家的位置是他们赢的门#如果新玩家的位置是他们输的怪物#否则继续    
 
 
答:您的代码看起来不错,但是您有一个错字打乱了您的进度。
 
    如果 move  ==  'LEFT' :
y- = 1 elif move == 'RIGHT' :y + = 1 elif move == 'UP' :x- = 1 elif move == 'DOWN' :x + = 1           
          
elif move == ' DOWN':该行在DOWN之前寻找一个空格,而不只是DOWN。如果您删除该空间,它应该可以正常工作。
 
希望有帮助!
上一篇: 在textarea元素上,添加一个id属性并将其值设置为“ comment”
下一篇: bin rake / spec ...未找到命令“ bin”?