Пример #1
0
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)
Пример #2
0
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()
Пример #3
0
    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:
Пример #4
0
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')
Пример #5
0
 def __init__(self):
     self.window = retro.Window(title='Pacman', size=(448, 528), fps=-1)
     self.game = Game()
     self.rand_impulse = RandImpulse()
Пример #6
0
        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)
Пример #7
0
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)
Пример #8
0
 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))
Пример #9
0
            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)
Пример #10
0
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)
Пример #11
0
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)