Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # script for PIZZA/labirynth contest by Mrowqa @ 2013 -- http://mrowqa.pl
- import socket
- import time
- HOST = 'pizza.natodia.net'
- PORT = 10000
- USER = 'mrowqa'
- PASS = 'sweet secret ;>'
- def cmd(command):
- f.write(command + "\n")
- f.flush()
- def wait():
- cmd("WAIT")
- read()
- read()
- def read():
- return f.readline().strip()
- def visualize(map):
- map = map.split("\n")
- map[-1] = "M 0 0" # ME
- minX, maxX, minY, maxY = 0,0,0,0
- for m in map: # calculate bounds
- m = m.split(" ")
- x, y = int(m[1]), int(m[2])
- minX, maxX = min(minX, x), max(maxX, x)
- minY, maxY = min(minY, y), max(maxY, y)
- #
- w, h = (maxX-minX+1), (maxY-minY+1)
- xmap=[list([' ']*w) for cnt in range(h)] # map[y][x]
- s2m = {'F':'.', 'S':'!', 'E':'?', 'W':'#', 'M':'+'}
- for m in map:
- m = m.split(" ")
- x, y = int(m[1])+abs(minX), int(m[2])+abs(minY)
- try:
- xmap[y][x] = s2m[m[0]]
- except KeyError:
- xmap[y][x] = '@'
- #
- for i in range(len(xmap)):
- xmap[i] = ''.join(xmap[i])
- #
- print '\n'.join(xmap)
- def scan():
- cmd("SCAN")
- err = read()
- if(err!="OK"):
- return err
- cnt = int(read())
- map = ""
- for i in range(cnt):
- map += read() + "\n"
- visualize(map)
- def move(x,y):
- cmd("MOVE " + str(x) + " " + str(y))
- return read()
- def d(): #down
- move(0,1)
- wait()
- scan()
- def u(): #up
- move(0,-1)
- wait()
- scan()
- def l(): #left
- move(-1,0)
- wait()
- scan()
- def r(): #right
- move(1,0)
- wait()
- scan()
- def t(foo, cnt):
- for i in range(cnt):
- foo()
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect((HOST,PORT))
- f = s.makefile()
- read() # read 'LOGIN'
- cmd(USER)
- read() # read 'PASS'
- cmd(PASS)
- read() # read 'OK'
- # command(f, "TURNS_LEFT")
- # f.readline() # read 'OK'
- # print f.readline().strip()
Advertisement
Add Comment
Please, Sign In to add comment