Created on 6 dec. 2013 Author: Daan Helsloot ''' from ipy_lib import SnakeUserInterface ui = SnakeUserInterface(40, 30, 0.5) def processEvent(event): ui.print_(event.name + " " + event.data + "\n") if event.name == "click": processClick(event) elif event.name == "other": processSpacebar(event) def processClick(event): click_coordinates = event.data.split() x = int(click_coordinates[0]) y = int(click_coordinates[1]) ui.place(x, y, ui.WALL) ui.show() def processSpacebar(event): ui.clear() ui.show() while True: event = ui.get_event() processEvent(event)
food.generate(ui, snake.get_coordinates(), walls.get_coordinates()) snake.extend_tail() snake.place(ui) food.place(ui) walls.place(ui) ui.show() '''Start program''' ui = SnakeUserInterface(WIDTH, HEIGHT) ui.set_animation_speed(ANIMATION_SPEED) init_snake_coordinates = INIT_SNAKE_COORDINATES direction = INIT_DIRECTION walls = [] level = None # level = read_file('SnakeInput4.txt') # Uncomment if you want to play levels if level is not None: walls, init_snake_coordinates, direction = prepare_data_level(level) snake = Snake(init_snake_coordinates) walls = Walls(walls) food = Food((ui.random(MAX_X), ui.random(MAX_Y))) food.generate(ui, snake.get_coordinates(), walls.get_coordinates()) while True: event = ui.get_event() process_event(event)
# process all events that come in def process_event(event): # print_event(event) # Note: makes the program run slow if event.name == "letter": process_letter(event.data) elif event.name == "alarm": process_alarm(event.data) elif event.name == "arrow": process_arrow(event.data) # START PROGRAM # initialize the visual interface ui = SnakeUserInterface(UI_WIDTH, UI_HEIGHT) ui.show() # state variables current_color = ui.WALL current_position = START_POSITION current_speed = START_SPEED # initial settings ui.set_animation_speed(current_speed) ui.place(current_position[0], current_position[1], current_color) # infinite loop that parses the events while True: event = ui.get_event( ) # fetches the event using the built-in library function process_event(event) # event dispatcher