set display mode 640,480,32 randomize timer() `// `// Passable tiles range from 1 to 5 `// Obstacle tiles range from 6 and up `// `// `// `// #CONSTANT GRASS = 1 : `image number for grass #CONSTANT BRICK = 3 : `image number for bricks #CONSTANT BUSHES = 7 : `image number for bricks #CONSTANT WATTER = 6 : `image number for water (water is a reserved word, hence watter) #CONSTANT TILE_SIZE = 32 : `size of 1 tile (tile is assumed and should to be square) Global MAP_WIDTH = 64 : `number of tiles in a map across Global MAP_HEIGHT = 64 : `number of tiles in a map down GLOBAL SCREEN_HEIGHT : SCREEN_HEIGHT = screen height() / TILE_SIZE : `screen height in number of tiles GLOBAL SCREEN_WIDTH : SCREEN_WIDTH = screen width() / TILE_SIZE : `screen width in number of tiles GLOBAL SCREEN_WIDTH_BOUNDARY : SCREEN_WIDTH_BOUNDARY = (MAP_WIDTH * TILE_SIZE) - (SCREEN_WIDTH-1)*TILE_SIZE GLOBAL SCREEN_HEIGHT_BOUNDARY : SCREEN_HEIGHT_BOUNDARY = (MAP_HEIGHT * TILE_SIZE) - (SCREEN_HEIGHT-1)*TILE_SIZE GLOBAL SCROLL_BOUNDARY : SCROLL_BOUNDARY = TILE_SIZE*4 : `How far from edge of screen should map start scrolling GLOBAL STAT_BOX_HEIGHT = 64 type character x as float y as float damage as integer armor as integer str as float dex as float hp as float gold as integer level as integer expr as integer name as string endtype player as character restore player1 read player.damage read player.armor read player.str read player.dex read player.hp read player.gold read player.level read player.expr read player.name player.x = 320 player.y = 240 REM create some random images getGrassImage(GRASS) getBushesImage(BUSHES) getWaterImage(WATTER) getBrickImage(BRICK) restore map1 buildMap() restore Character_Pic getCharacterImage(9) mx = TILE_SIZE my = TILE_SIZE sync on backdrop on DO gosub _CONTROLS drawMap(mx,my) positionPlayer(player.x, player.y) printStats(player) set cursor 0,0 print "FPS: ",screen fps() sync LOOP `================================================= `Player controls `Also keeps coordinates within boundaries `================================================= _CONTROLS: speed = 2 if upkey() then dec player.y, speed if downkey() then inc player.y, speed if rightkey() then inc player.x, speed if leftkey() then dec player.x, speed gosub _BOUNDARY_CHECKS RETURN `================================================= `Checks player and screen boundaries along with `map scrolling `================================================= _BOUNDARY_CHECKS: sw = screen width() sh = screen height() if player.x < SCROLL_BOUNDARY if mx > TILE_SIZE player.x = SCROLL_BOUNDARY dec mx, speed else mx = TILE_SIZE if player.x < 0 then player.x = 0 endif endif if player.x > sw - SCROLL_BOUNDARY if mx < SCREEN_WIDTH_BOUNDARY player.x = sw - SCROLL_BOUNDARY inc mx, speed else mx = mx - (mx-SCREEN_WIDTH_BOUNDARY) rem 15 is the character's image size if player.x > sw-15 then player.x = sw-15 endif endif if player.y < SCROLL_BOUNDARY if my > TILE_SIZE player.y = SCROLL_BOUNDARY dec my, speed else my = TILE_SIZE if player.y < 0 then player.y = 0 endif endif if player.y > (sh - STAT_BOX_HEIGHT) - SCROLL_BOUNDARY if my < SCREEN_HEIGHT_BOUNDARY player.y = (sh - STAT_BOX_HEIGHT) - SCROLL_BOUNDARY inc my, speed else my = SCREEN_HEIGHT_BOUNDARY if player.y > (sh - STAT_BOX_HEIGHT)-15 then player.y = (sh - STAT_BOX_HEIGHT)-15 endif endif RETURN `================================================= `Draws the map at position (mapDrawX,mapDrawY `starting in the top left corner of the screen(0,0) `Parameters are map coordinates. So a map with 64 `tiles each 32pixels each, the map would range from `1 to 2048 `================================================= function drawMap(mapDrawX as integer, mapDrawY as integer) mapx = mapDrawX / TILE_SIZE mapy = mapDrawY / TILE_SIZE xoff = mapDrawX AND (TILE_SIZE-1) yoff = mapDrawY AND (TILE_SIZE-1) xoff = mapDrawX - mapx*TILE_SIZE yoff = mapDrawY - mapy*TILE_SIZE sprt = 0 for x = 0 to SCREEN_WIDTH for y=0 to SCREEN_HEIGHT inc sprt, 1 img = getMapTile(mapy+y, mapx+x) `if img > 0 then sprite sprt, x*32 - xoff, y*32 - yoff, img if img > 0 then paste image img,x*TILE_SIZE - xoff, y*TILE_SIZE - yoff next y next x endfunction `================================================= ` `================================================= function positionPlayer(x as float, y as float) paste image 9, x, y endfunction `================================================= `Returns value from map array, making sure the call `is within the boundaries of the array `================================================= function getMapTile(y as integer, x as integer) if x >= 0 and x <= MAP_WIDTH and y >= 0 and y <= MAP_HEIGHT img = map(y,x) exitfunction img endif endfunction 0 `================================================= ` !!!!!WARNING!!!!!! `map data must be restored BEFORE you call this `function so it knows which map to load `================================================= function buildMap() REM create our map restore map1 read MAP_WIDTH read MAP_HEIGHT SCREEN_WIDTH_BOUNDARY = (MAP_WIDTH * TILE_SIZE) - (SCREEN_WIDTH-1)*TILE_SIZE SCREEN_HEIGHT_BOUNDARY = ((MAP_HEIGHT * TILE_SIZE) - (SCREEN_HEIGHT-1)*TILE_SIZE) + 64 dim map(MAP_HEIGHT, MAP_WIDTH) for y=1 to MAP_HEIGHT for x=1 to MAP_WIDTH read map(y,x) next x next y endfunction `================================================= ` `================================================= function printStats(c as character) SH = screen height() ink 0,0 box 0,SH-STAT_BOX_HEIGHT,screen width(),SH ink rgb(255,0,0), 0 center text 320,SH - 64,c.name +" ("+str$(c.level)+")" text 0, SH - 64, "Strength: "+str$(c.str) text 0, SH - 52, "Dexterity: "+str$(c.dex) text 0, SH - 40, "Armor: "+str$(c.armor) text 0, SH - 28, "Damage: "+str$(c.damage) text 0, SH - 16, "Hitpoints: "+str$(c.hp) text 190, SH - 28, "Experience: "+str$(c.expr) text 190, SH - 16, "Gold: "+str$(c.damage) endfunction `================================================= `Randomly creates a grass image `================================================= function getGrassImage(img as integer) cls for x = 0 to 32 for y=0 to 32 r = rnd(128) dot x,y,rgb(r,rnd(128)+128,r) next y next x blur bitmap 0, 2 get image img, 0,0,32,32 endfunction `================================================= `Randomly creates a bushes image `================================================= function getBushesImage(img as integer) for r = 7 to 1 step -1 g = 255 - r*18 ink rgb(0,g,0),0 circle 0,0,r circle 0,16,r circle 0,32,r circle 16,0,r circle 16,16,r circle 16,32,r circle 32,0,r circle 32,16,r circle 32,32,r next r get image img, 0,0,32,32 endfunction `================================================= `Randomly creates a water image `================================================= function getWaterImage(img as integer) cls for x = 0 to 32 for y=0 to 32 r = rnd(64) g = rnd(128) dot x,y,rgb(r,g,rnd(128)+128) next y next x blur bitmap 0, 3 get image img, 0,0,32,32 endfunction `================================================= `Randomly creates a brick image `================================================= function getBrickImage(img as integer) cls for x = 0 to 32 for y=0 to 32 g = rnd(128)+64 dot x,y,rgb(g,g,g) next y next x ink 0,0 line 0,31,32,31 line 0,21,32,21 line 0,10,32,10 line 10,0,10,10 line 21,0,21,10 line 10,21,10,32 line 21,21,21,32 line 16,10,16,21 get image img, 0,0,32,32 endfunction `================================================= `loads the character and forms a picture from data `================================================= function getCharacterImage(img as integer) cls color as dword read cx read cy for y = 1 to cy for x = 1 to cx read z color = rgb(255,255,255) * z dot x,y,color next y next x get image img, 1,1,15,15 endfunction player1: DATA 2, 0, 9, 6, 40, 80, 1, 0, "Gwark" Character_Pic: data 15,15 data 0,1,0,0,0,0,0,1,1,0,0,0,0,0,0 data 0,1,0,0,0,0,1,1,1,1,0,0,0,0,0 data 0,0,1,0,0,0,1,1,1,1,0,0,0,0,0 data 0,0,1,0,0,0,0,1,1,0,0,0,0,0,0 data 0,0,0,1,0,0,1,1,1,1,1,0,0,0,0 data 0,0,0,1,0,1,1,1,0,0,1,1,1,0,0 data 0,0,0,0,1,1,0,1,0,1,1,1,1,0,0 data 0,0,0,0,1,0,1,1,1,0,1,1,0,0,0 data 0,0,0,0,0,0,1,1,1,0,1,1,0,0,0 data 0,0,0,0,0,0,1,1,1,1,1,0,0,0,0 data 0,0,0,0,0,0,1,1,0,1,1,0,0,0,0 data 0,0,0,0,0,0,1,1,0,1,1,0,0,0,0 data 0,0,0,0,0,0,1,1,0,1,1,0,0,0,0 data 0,0,0,0,0,1,1,1,0,1,1,1,0,0,0 data 0,0,0,0,0,1,1,1,0,1,1,1,0,0,0 map1: DATA 64,64 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,7,7,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,7,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,7,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,7,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,7,1,1,1,1,7,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,7,1,1,1,1,1,1,1,7,7,7,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,1,1,1,1,1,1,1,1,7,7,7,7,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,6,6,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,6,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3