def reset(self):

        # reset env
        self.env = np.zeros((self.max_h, self.max_w))  # background
        self.env = self.draw_boundary(self.env)

        # Add player 1
        head_x1, head_y1 = self.get_randoms()
        self.p1 = Snake(head_x1, head_y1, self.w, self.h)
        self.env = self.p1.draw(self.env, player=1)

        # Add player 2
        head_x2, head_y2 = self.get_randoms()
        self.p2 = Snake(head_x2, head_y2, self.w, self.h)
        self.env = self.p2.draw(self.env, player=2)

        # Add food
        self.food_x, self.food_y = self.get_randoms()
        self.env[self.food_y, self.food_x] = CONSTANTS['food']

        # Get player's states (v for vision)
        self.v1 = self.p1.look(self.env, self.agent_vision)
        self.v2 = self.p2.look(self.env, self.agent_vision)

        return np.hstack((self.v1.ravel(), (head_x1 - self.food_x, head_y1 - self.food_y))), self.v1, \
               np.hstack((self.v2.ravel(), (head_x2 - self.food_x, head_y2 - self.food_y))), self.v2
 def __init__(self):
     self.laberinto = Laberinto()
     self.puzzle = Puzzle()
     self.ruta = Ruta()
     self.snake = Snake()
     self.evitandoVirus = EvitandoVirus()
     self.puntaje = 0
示例#3
0
def main(stdscr):
    fps = 5
    stdscr.timeout(1000 // fps)
    # hide cursor
    curses.curs_set(0)

    # init head at top left
    border = 2
    stdscr.border(border)
    # h = Head(border, border, stdscr, '@')
    f = Food(border, border, stdscr, '$')
    s = Snake(border, border, stdscr)
    score = 0
    while True:
        stdscr.clear()

        # index of keyboard
        # index = -1 if no key inserted in loop
        stdscr.addstr(1, 10, f'score: {score}      type ESC to exit')
        # h.render()
        f.render()
        s.render()

        key = stdscr.getch()
        log('key:', key)
        s.update(key)
        # ESC == 27
        if s.collid() or key == 27:
            break

        if s.head.coor == f.coor:
            f.reset()
            s.grow()
            score += 1
示例#4
0
文件: main.py 项目: yztcit/Snake
def run_game():
    # 游戏配置信息
    game_setting = Setting()

    # 初始化游戏,并创建一个屏幕对象
    pygame.init()
    fps_clock = pygame.time.Clock()
    # 图标
    icon = pygame.image.load("res/snake.png")
    screen = pygame.display.set_mode(
        [game_setting.screen_width, game_setting.screen_width])
    pygame.display.set_caption("Greedy Snake")
    pygame.display.set_icon(icon)

    # 创建一条蛇
    snake = Snake(game_setting, screen)
    # 创建一个食物
    food = Food(game_setting, screen, snake)

    # 游戏的主循环
    while True:
        gf.keyboard_listener(game_setting, snake)

        snake.update()

        gf.snake_eat_food(snake, food)

        gf.update_screen(game_setting, screen, snake, food)
        fps_clock.tick(game_setting.snake_speed)
示例#5
0
文件: app.py 项目: tomasz8w/snake
def main():
    board_size = 15
    v = View(board_size)
    s = Snake(board_size)

    key_mapping = {
        'H': s.DIR_UP,
        'M': s.DIR_RIGHT,
        'P': s.DIR_DOWN,
        'K': s.DIR_LEFT
    }

    clear = lambda: os.system('cls')
    clear()

    while True:
        if msvcrt.kbhit():
            msvcrt.getch()  # skip 0xe0
            key = msvcrt.getch().decode('utf-8')
            if key in key_mapping:
                if not s.update(key_mapping[key]):
                    return
        else:
            if not s.update(None):
                return
        #print(s.get_food_x_y())
        #print(s.get_coord_list())

        v.update_gameboard(s.get_coord_list(), s.get_food_x_y())
        time.sleep(0.1)
        clear = lambda: os.system('cls')
        clear()
示例#6
0
文件: main.py 项目: Xartos/snake-ml
 def __init__(self, ml = False):
     self._running = True
     self._display_surf = None
     if ml:
         speed = 10
     else:
         speed = 200
     self.game = Snake(speed)
     self.human = not ml
示例#7
0
def start_server(port='8080'):
    server = Battlesnake(Snake())
    cherrypy.config.update({'server.socket_host': '0.0.0.0'})
    cherrypy.config.update({
        'server.socket_port':
        int(os.environ.get('PORT', port)),
    })
    print('Starting Battlesnake Server...')
    cherrypy.quickstart(server)
示例#8
0
 def __init__(self,
              maze_size=_MAZE_SIZE,
              start_location=Coordinate(int(_MAZE_SIZE / 2),
                                        int(_MAZE_SIZE / 2)),
              tick_interval=1):
     self._maze_size = maze_size
     self._snake = Snake(head=start_location)
     self._food = None
     self._running = False
     self._timer = None
     self._tick_interval = tick_interval
     self._tick_count = 0
示例#9
0
 def __init__(self):
     pygame.init()
     self.CLOCK = Clock()
     self.ROWS_COLS = 15
     self.GRID_SIZE = 50
     self.SCREEN_SIZE = self.GRID_SIZE * self.ROWS_COLS
     self.DISPLAY = display.set_mode((self.SCREEN_SIZE, self.SCREEN_SIZE))
     self.BACKGROUND_COLOR = (0, 0, 0)
     self.GRID_COLOR = (100, 100, 100)
     self.SNAKE_COLOR = (0, 255, 0)
     self.apple_generator = AppleGenerator(self.ROWS_COLS, self.GRID_SIZE)
     self.apple = self.apple_generator.generate_apple(self.snake)
     mid = (self.ROWS_COLS // 2) * self.GRID_SIZE
     self.start_x_y = (mid, mid)
     self.snake = Snake(self.start_x_y, self.GRID_SIZE, self.SCREEN_SIZE,
                        self.SNAKE_COLOR, self.spawn_apple)
     self.exit_clicked = None
     self.playing = None
示例#10
0
文件: main.py 项目: dion-ricky/snek
    def __init__(self):
        self.fps = 30
        self.fpsclock = pygame.time.Clock()

        self.view = View()

        self.snake_obj = Snake()

        pygame.time.set_timer(USEREVENT, 150)

        # ['base', 'menu', 'pause', 'ingame', 'gameover', 'locating_server', 'lan_game_mode']
        self.screen = 'menu'

        self.on_menu = True
        self.on_pause = False

        self.thread_list = []

        self.interface = Interface(main=self, view=self.view, snake=self.snake_obj)
示例#11
0
from snake.snake import Snake

# Start application
if __name__ == '__main__':
    s = Snake()
    s.run()
示例#12
0
 def reset(self):
     self.snake = Snake(self.start_x_y, self.GRID_SIZE, self.SCREEN_SIZE,
                        self.SNAKE_COLOR, self.spawn_apple)
     self.spawn_apple()
示例#13
0
文件: main.py 项目: dion-ricky/snek
 def change_snake(self):
     self.snake = Snake()
     self.main.snake_obj = self.snake
     self.snake.interface = self
示例#14
0
文件: main.py 项目: dion-ricky/snek
 def __init__(self, client=True, server=False):
     self.server = Server() if server else None
     self.client = Client()
     self.enemy_obj = Snake()
     self.interface = None
示例#15
0
from snake.snake import Snake
from snake.settings import Settings

from snake.spec_helper import *


with description('Snake') as self:
    with it('has a default length'):
        snake = Snake()
        expect(snake.length).to(equal(3))

    with context('no velocity'):
        with it('does not grow'):
            snake = Snake()
            snake.tick(1000)
            expect(snake.length).to(equal(3))

    with context('positive velocity'):
        with it('grows at the expected rate'):
            snake = Snake()
            snake.post = Dummy()

            snake.queue_growth(2)
            snake.set_velocity(Settings.snake_size / 100.0, 0 )

            # Moving right, growing
            snake.tick(100)
            expect(snake.length).to(equal(4))
            expect(snake.growing).to(equal(1))
            expect(snake.head_pt.x).to(equal(Settings.snake_size * 3))
            expect(snake.head_pt.y).to(equal(0))
    def main(self, screen):
        screen.fill((0, 0, 0))
        tutorial1 = """Geraldo é uma cobrinha sapeca e que vive faminta. Sua comida favorita é a fruta maça."""
        tutorial2 = """Porém Geraldo é bem especifico, ele só come maçãs que são de numero primo no pé."""
        tutorial3 = """INSTRUÇÔES"""
        tutorial4 = """Para isso ajude Geraldo a se alimentar capturando apenas as  maçãs com numeros primos"""
        tutorial5 = """E utilizando as setas do teclado para se mover"""

        ##### TUTORIAL ########################
        score_font = pygame.font.Font('freesansbold.ttf', 13)
        score_screen = score_font.render(f'{tutorial1}', True, (255, 255, 255))
        score_rect = score_screen.get_rect()
        score_rect.midtop = (600 / 2, 10)
        screen.blit(score_screen, score_rect)
        score_font = pygame.font.Font('freesansbold.ttf', 13)
        score_screen = score_font.render(f'{tutorial2}', True, (255, 255, 255))
        score_rect = score_screen.get_rect()
        score_rect.midtop = (600 / 2, 50)
        screen.blit(score_screen, score_rect)
        score_font = pygame.font.Font('freesansbold.ttf', 13)
        score_screen = score_font.render(f'{tutorial3}', True, (255, 255, 255))
        score_rect = score_screen.get_rect()
        score_rect.midtop = (600 / 2, 100)
        screen.blit(score_screen, score_rect)
        score_font = pygame.font.Font('freesansbold.ttf', 13)
        score_screen = score_font.render(f'{tutorial4}', True, (255, 255, 255))
        score_rect = score_screen.get_rect()
        score_rect.midtop = (600 / 2, 150)
        screen.blit(score_screen, score_rect)
        score_font = pygame.font.Font('freesansbold.ttf', 13)
        score_screen = score_font.render(f'{tutorial5}', True, (255, 255, 255))
        score_rect = score_screen.get_rect()
        score_rect.midtop = (600 / 2, 200)
        screen.blit(score_screen, score_rect)
        pygame.display.update()
        pygame.time.wait(9000)

        snake_skin = pygame.Surface((self.BLOCK_SIZE, self.BLOCK_SIZE))
        snake_skin.fill((255, 255, 255))
        self.snake = Snake(snake_skin, self.screen_size)

        prime_apple_sprite = pygame.Surface((self.BLOCK_SIZE, self.BLOCK_SIZE))
        prime_apple_sprite.fill((255, 0, 0))
        prime_apple = Apple(
            prime_apple_sprite,  # sprite
            self.on_grid_random(),  # pos
            self.prime_apple_randomizer(),  # num
            pygame.font.SysFont("arial", self.FONT_SIZE)  # font
        )
        normal_apple_sprite = pygame.Surface(
            (self.BLOCK_SIZE, self.BLOCK_SIZE))
        normal_apple_sprite.fill((255, 0, 0))
        normal_apple = Apple(
            normal_apple_sprite,  # sprite
            self.on_grid_random(),  # pos
            self.normal_apple_randomizer(),  # num
            pygame.font.SysFont("arial", self.FONT_SIZE)  # font
        )
        clock = pygame.time.Clock()

        while True:
            """
            This is the main looping of the game, resposible for update the screen,snake and apples
            """
            clock.tick(10 if self.snake.fast else 5)
            for event in pygame.event.get():
                if event.type == QUIT:
                    pygame.quit()
                    exit()

                if event.type == KEYDOWN:
                    self.snake.listen(event)
                    if event.key == K_ESCAPE:
                        return

            if self.snake.collision(prime_apple.pos):
                prime_apple.change(self.on_grid_random(),
                                   self.prime_apple_randomizer())
                normal_apple.change(self.on_grid_random(),
                                    self.normal_apple_randomizer())
                self.snake.grow()
                self.snake.counter = self.snake.counter + 1

            if self.snake.collision(normal_apple.pos):
                self.snake.snake_reset()
                prime_apple.change(self.on_grid_random(),
                                   self.prime_apple_randomizer())
                normal_apple.change(self.on_grid_random(),
                                    self.normal_apple_randomizer())

            if self.snake.boundry_collision(
            ):  # Check the collision with boudaries
                game_over = True
                self.game_over_screen(screen)
                return

            self.snake.update()

            screen.fill((0, 0, 0))

            prime_apple.drawn(screen, 20)
            normal_apple.drawn(screen, 20)
            self.snake.drawn(screen, self.BLOCK_SIZE)

            pygame.display.update()
示例#17
0
def main():
    snake = Snake(SCREEN_WIDTH, SCREEN_HEIGHT)
    snake.play()