import sys from retro.src import retro from pacman.game.game import Game window = retro.Window(title='Pacman', size=(448, 528), fps=60) game = Game() def update(): if not game.finished: maze = game.maze player = game.player ghosts = game.ghosts key = window.events.key_press if key(retro.K_UP): player.nxtdir = [ 0, -1] elif key(retro.K_DOWN): player.nxtdir = [ 0, 1] elif key(retro.K_LEFT): player.nxtdir = [-1, 0] elif key(retro.K_RIGHT): player.nxtdir = [ 1, 0] game.update() else: game.reset() def render(): game.render(window) window.loop(update, render)
import sys from retro.src import retro from flappy.nnga import NNGAPool from flappy.game import Game window = retro.Window(title='Flappy Bird', size=(288, 512), fps=-1) game = Game(window, nbirds=10) pool = NNGAPool(size=len(game.birds), arch=(2, 1)) def update(): if not game.finished: for i, b in enumerate(game.birds): if b.fitness >= 10000: print(pool.generation, b.fitness) sys.exit() if b.alive and pool[i].predict( b.rect.y / window.rect().height, game.target.centery / window.rect().height, )[0] > 0.5: b.flap() game.update() else: best_fitness = pool.evolve(game.birds) print(pool.generation - 1, best_fitness) if pool.generation - 1 >= 50: sys.exit() game.reset()
def draw(target): target.draw_img(obj1, obj1_rect.topleft) target.draw_img(obj2, obj2_rect.topleft) target.draw_img(obj3, obj3_rect.topleft) target.draw_img(obj4, obj4_rect.topleft) target.draw_img(obj5, obj5_rect.topleft) return draw # --- window = retro.Window( title='image', size=(800, 600), fps=30, headless='--interactive' not in sys.argv, ) test_draw = TestDraw() test_init = TestInit() test_tf = TestTransform() def render(target): target.fill(retro.WHITE) test_draw(target) test_init(target) test_tf(target) if window.headless:
from retro.src import retro window = retro.Window(title='events', size=(640, 480), fps=30) def update(): # key - event e = window.events.event(retro.KEYDOWN) if e: print(e) e = window.events.event(retro.KEYUP) if e: print(e) # key - methods e = window.events.key_press(retro.K_F1) if e: print('press F1') e = window.events.key_hold(retro.K_F1) if e: print('hold F1') e = window.events.key_release(retro.K_F1) if e: print('release F1') # mouse- event e = window.events.event(retro.MOUSEBUTTONDOWN) if e: print(e) e = window.events.event(retro.MOUSEBUTTONUP) if e: print(e) # mouse- methods e = window.events.mouse_press(retro.M_LEFT) if e: print('press M_LEFT') e = window.events.mouse_hold(retro.M_LEFT) if e: print('hold M_LEFT')
def __init__(self): self.window = retro.Window(title='Pacman', size=(448, 528), fps=-1) self.game = Game() self.rand_impulse = RandImpulse()
target.fill(retro.WHITE) s1.draw(target) s1.draw(target, position=s1.rect1.topleft, area=retro.Rect(10, 10, 30, 30)) s2.draw(target) s2.draw(target, position=s2.rect1.topleft, area=retro.Rect(0, 10, 1000, 1000)) s3.draw(target) return update window = retro.Window( title='sprite', size=(320, 240), fps=30, headless='--interactive' not in sys.argv, ) test_sprite = TestSprite(window) if window.headless: for _ in range(10): test_sprite() # window.save(assets('expectation_sprite.png')) assert window == retro.Image(assets('expectation_sprite.png')) else: window.loop(None, test_sprite)
class Game: def __init__(self, window): self.window = window self.state = None def update(self): if self.state is None: self.state = states.Run(self.window) elif type(self.state) == states.Run: if self.state.winner: self.state = states.End(self.window, self.state.winner) else: self.state.update() elif type(self.state) == states.End: if self.state.restart: self.state = states.Run(self.window) else: self.state.update() def render(self): self.state.render() window = retro.Window(title='Pong', size=(600, 400), fps=120) window.cursor(False) game = Game(window) window.loop(game.update, game.render)
def __init__(self): self.nn_pool = NNGAPool(size=200, arch=(10, 10, 10, 4)) self.window = retro.Window(title='Pacman', size=(448, 528), fps=-1) self.games = Games(size=len(self.nn_pool))
self.state = Level1(self.window) elif type(self.state) == Level1: if self.state.win: self.state = Level2(window) elif self.state.lost: self.state = type(self.state)(self.window) else: self.state.update() elif type(self.state) == Level2: if self.state.win: self.state = End(window) elif self.state.lost: self.state = type(self.state)(self.window) else: self.state.update() elif type(self.state) == End: if self.state.restart: self.state = Level1(window) else: self.state.update() def render(self): self.state.render() window = retro.Window(title='Lemmings', size=(800, 400), fps=45) window.cursor(pygame.cursors.diamond) game = Game(window) window.loop(game.update, game.render)
class Game: def __init__(self, window): self.window = window self.state = None def update(self): if self.state is None: self.state = states.Run(window) elif type(self.state) == states.Run: if self.state.win: self.state = states.End(window) else: self.state.update() elif type(self.state) == states.End: if self.state.restart: self.state = states.Run(window) else: self.state.update() def render(self): self.state.render() window = retro.Window(title='Maze', size=(400, 400), fps=60) window.cursor(False) game = Game(window) window.loop(game.update, game.render)
class Game: def __init__(self, window): self.window = window self.state = None def update(self): if self.state is None: self.state = states.Run(window) elif type(self.state) == states.Run: if self.state.finished: self.state = states.End(window) else: self.state.update() elif type(self.state) == states.End: if self.state.restart: self.state = states.Run(window) else: self.state.update() def render(self): self.state.render() window = retro.Window(title='Empire City', size=(400, 300), fps=60) window.cursor(False) game = Game(window) window.loop(game.update, game.render)