bzoj#P2290. 【POJ Challenge】翻版玛丽

【POJ Challenge】翻版玛丽

题目描述

lqp18_31 和 1tthinking 虽然是两个性格完全不同的人, 但是他们都喜欢玩 'Super Mario Bros'.

一天 lqp18_31 和 1tthinking 正玩得高兴,突然发现他们的 Mac 坏掉了。于是他们求助 ftiasch,想借他的电脑。但是由于 ftiasch 使用的是 Ubuntu,没有 super mario bros 这个游戏,ftiasch 打算写一个 mario 给两个可怜的小朋友玩。

不过写着写着,ftiasch 就觉得不好玩了,跑去找她的姐妹们玩了。你能不能帮助 ftiasch 写这个游戏?

输入格式

第一行两个整数 RRCC, 表示游戏地图的大小 (1R,C300)(1 \le R, C \le 300)
第二行两个整数 xmariox_{mario}ymarioy_{mario}, tt 表示 small mario 所在的坐标 $(0 \le x_{mario} < R, 0 \le y_{mario} < C)。 第三行两个整数 $x_{mush}y_{mush},表示唯一一个蘑菇的坐标(如果, 表示唯一一个蘑菇的坐标 (如果 x_{mush}y_{mush}等于 等于 -1,表示不存在)。第四行四个整数, 表示不存在)。 第四行四个整数 x_{tube1}, y_{tube1}, x_{tube2}, y_{tube2},表示两个水管的坐标。(如果, 表示两个水管的坐标。 (如果 x_{tube1} = -1y_{tube1} = -1x_{tube2} = -1y_{tube2} = -1,表示不存在)。第五行一个整数, 表示不存在)。 第五行一个整数 n,表示block的数量,然后是, 表示 block 的数量,然后是 n对整数,表示 对整数, 表示 block[i]的坐标。第六行一个整数 的坐标。 第六行一个整数 m,表示coin的数量,然后是, 表示 coin 的数量,然后是 m对整数,表示 对整数, 表示 coin[i]$ 的坐标。
第七行一个字符串,表示动作序列。

下面给出所有物体的像素图形:

Small mario

     ********        
    ************     
    ####....#.       
  #..###.....##....  
  ###.......######   
     ...........     
    ##*#######       
 ####*******######   
...#***.****.*###....
....**********##.....
....****    *****....
  ####        ####   
######        ###### 

Big mario

     ********        
    **************   
    ####....#.       
  #..##.....#.....   
  #..###.....##....  
  ###.......######   
     ...........     
    ##*######        
  ####*#####*#####   
######*******####### 
...#***.****.*###....
....**********##.....
...**************....
    ****    ****     
  ####        ####   
######        ###### 

Mushroom

   ########   
 ##.******.## 
##...****...##
#............#
#..########..#
###..#..#..###
  #..#..#..#  
  #........#  
   ########   

Tube

####################
#------------------#
#------------------#
####################
    #----------#    
    #----------#    
    #----------#    
    #----------#    
    ############    

Coin

 ### 
#...#
#.#.#
#.#.#
#...#
 ### 

Block

##############
#...#......#.#
##############
#..#....#....#
##############
#.....#......#
##############
#.#..#....#..#
##############

保证输入不会重叠,且 mario 一开始脚下一定有砖块。 重叠指有非空格重叠。下面是重叠:

##############
#...#......#.#
##############
#..#....#....#
##############
#.....#......#
##############
#.#..#....#..#
##############**     
    ####....#.       
  #..###.....##....  
  ###.......######   
     ...........     
    ##*#######       
 ####*******######   
...#***.****.*###....
....**********##.....
....****    *****....
  ####        ####   
######        ###### 

下面不是重叠:

                 ##############
                 #...#......#.#
                 ##############
                 #..#....#....#
                 ##############
                 #.....#......#
     ********    ##############
    ************ #.#..#....#..#
    ####....#.   ##############
  #..###.....##....  
  ###.......######   
     ...........     
    ##*#######       
 ####*******######   
...#***.****.*###....
....**********##.....
....****    *****....
  ####        ####   
######        ###### 

字符串包含 D,L,R,P
R:如果向右不会导致 mario 和某个 block、tube 重叠,mario 向右。
L:如果向左不会导致 mario 和某个 block、tube 重叠,mario 向左。
D:如果 mario 脚下是某个 tube,mario 到达另一个 tube 的正上方。

Mario 在水管上方:

     ********        
    ************     
    ####....#.       
  #..###.....##....  
  ###.......######   
     ...........     
    ##*#######       
 ####*******######   
...#***.****.*###....
....**********##.....
....****    *****....
  ####        ####   
######        ###### 
####################
#------------------#
#------------------#
####################
    #----------#    
    #----------#    
    #----------#    
    #----------#    
    ############    

水管不在 mario 的脚下:

     ********        
    ************     
    ####....#.       
  #..###.....##....  
  ###.......######   
     ...........     
    ##*#######       
 ####*******######   
...#***.****.*###....
....**********##.....
....****    *****....
  ####        ####   
######        ###### 
 ####################
 #------------------#
 #------------------#
 ####################
     #----------#    
     #----------#    
     #----------#    
     #----------#    
     ############    

当 mario 和 mushroom 重叠,mario 会变大。且 mushroom 消失。
当 mario 和金币重叠,mario 会获得 100100 分。且 coin 消失。
如果 mario 脚下没有砖块或者水管,它会不断往下掉。
如果当前 mario 到达了地图的底部,且还是没有 block 和 tube,mario 就输了。必须输出:

....#####.......#........#...#..#####.........###...#.....#..#####.......#####.....
...#...........#.#......##..##..#............#...#..#....#...#..........#.....#...
...#..........#..#.....#.#.#.#..#####........#...#..#...#....#####.....#######...
...#..###... #####....#..##..#..#............#...#..#..#.....#........#..#......
...#....#...#....#...#...#...#..#............#...#..#.#......#.......#....#....
....###.#..#.....#..#........#..#####.........###...##.......#####..#......#..

输出格式

对于每个P,输出当前的地图以及一行得分情况 "Mario : ? points"。P与P之间输出一个空行

100 150
9 0
-1 -1
0 42 0 90
4 0 0 0 14 0 28 0 76
5 12 28 12 62 12 76 12 90 12 42
RRRRRRRRRRRP
                ********       
               ************    
               ####....#.      
             #..###.....##.... 
             ###.......######              ###                 ###           ###           ### 
                ...........               #...#               #...#         #...#         #...#
               ##*#######                 #.#.#               #.#.#         #.#.#         #.#.#
            ####*******######             #.#.#               #.#.#         #.#.#         #.#.#
           ...#***.****.*###....          #...#               #...#         #...#         #...#
           ....**********##.....           ###                 ###           ###           ### 
           ....****    *****....               
             ####        ####         
           ######        ######       
##############################################################              ##################################
#...#......#.##...#......#.##...#......#.##------------------#              #...#......#.##------------------#
###########################################------------------#              ###############------------------#
#..#....#....##..#....#....##..#....#....#####################              #..#....#....#####################
##########################################    #----------#                  ##############    #----------#
#.....#......##.....#......##.....#......#    #----------#                  #.....#......#    #----------#
##########################################    #----------#                  ##############    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#                  #.#..#....#..#    #----------#
##########################################    ############                  ##############    ############
Mario : 100 points

提示

没有写明提示

题目来源

没有写明来源