Some updates
This commit is contained in:
parent
28e8aae4ee
commit
77174a8e42
|
@ -1,2 +1,3 @@
|
||||||
__pycache__
|
__pycache__
|
||||||
*.pyc
|
*.pyc
|
||||||
|
ais
|
||||||
|
|
4
play.py
4
play.py
|
@ -8,6 +8,8 @@ from tron.game import Game, PositionPlayer
|
||||||
from tron.window import Window
|
from tron.window import Window
|
||||||
from tron.player import Direction, KeyboardPlayer, Mode
|
from tron.player import Direction, KeyboardPlayer, Mode
|
||||||
|
|
||||||
|
from ais.wallavoider import Ai
|
||||||
|
|
||||||
# This script shows how to create a game with human players and play it interactively.
|
# This script shows how to create a game with human players and play it interactively.
|
||||||
# It shows how to create the game, to setup interactive controls for users, and
|
# It shows how to create the game, to setup interactive controls for users, and
|
||||||
# to run the game while rendering it on a window with a reasonnable framerate.
|
# to run the game while rendering it on a window with a reasonnable framerate.
|
||||||
|
@ -29,7 +31,7 @@ def main():
|
||||||
# default direction that will be to the right, and that will use the Z,
|
# default direction that will be to the right, and that will use the Z,
|
||||||
# Q, S and D keys.
|
# Q, S and D keys.
|
||||||
# The last array defines the initial position of the player.
|
# The last array defines the initial position of the player.
|
||||||
PositionPlayer(1, KeyboardPlayer(Direction.RIGHT, Mode.ZQSD), [0, 0]),
|
PositionPlayer(1, Ai(), [0, 0]),
|
||||||
|
|
||||||
# We create a second player that will use the arrow keys.
|
# We create a second player that will use the arrow keys.
|
||||||
PositionPlayer(2, KeyboardPlayer(Direction.LEFT, Mode.ARROWS), [width - 1, height - 1]),
|
PositionPlayer(2, KeyboardPlayer(Direction.LEFT, Mode.ARROWS), [width - 1, height - 1]),
|
||||||
|
|
|
@ -34,6 +34,19 @@ class Player(object):
|
||||||
"""
|
"""
|
||||||
return '/'.join(self.__module__.split('.')[:-1]) + '/' + name
|
return '/'.join(self.__module__.split('.')[:-1]) + '/' + name
|
||||||
|
|
||||||
|
def next_position(self, current_position, direction):
|
||||||
|
"""
|
||||||
|
Computes the next position if the player would go on towards a specific
|
||||||
|
direction.
|
||||||
|
"""
|
||||||
|
if direction == Direction.UP:
|
||||||
|
return (current_position[0] - 1, current_position[1])
|
||||||
|
if direction == Direction.RIGHT:
|
||||||
|
return (current_position[0], current_position[1] + 1)
|
||||||
|
if direction == Direction.DOWN:
|
||||||
|
return (current_position[0] + 1, current_position[1])
|
||||||
|
if direction == Direction.LEFT:
|
||||||
|
return (current_position[0], current_position[1] - 1)
|
||||||
|
|
||||||
def next_position_and_direction(self, current_position, id, map):
|
def next_position_and_direction(self, current_position, id, map):
|
||||||
"""
|
"""
|
||||||
|
@ -41,14 +54,7 @@ class Player(object):
|
||||||
depending on the current position.
|
depending on the current position.
|
||||||
"""
|
"""
|
||||||
direction = self.action(map, id)
|
direction = self.action(map, id)
|
||||||
if direction == Direction.UP:
|
return (self.next_position(current_position, direction), direction)
|
||||||
return ((current_position[0] - 1, current_position[1]), direction)
|
|
||||||
if direction == Direction.RIGHT:
|
|
||||||
return ((current_position[0], current_position[1] + 1), direction)
|
|
||||||
if direction == Direction.DOWN:
|
|
||||||
return ((current_position[0] + 1, current_position[1]), direction)
|
|
||||||
if direction == Direction.LEFT:
|
|
||||||
return ((current_position[0], current_position[1] - 1), direction)
|
|
||||||
|
|
||||||
def action(self, map, id):
|
def action(self, map, id):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue