X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgameboard.py;h=2d138b2dbe74fceb3bf313fca5eaf05755b2f22b;hb=8292a195eeba42e60f9917214350e604554bb6d9;hp=367a9e15118b4cbd6b9fe3248a691c141f66831d;hpb=014367e70a121b18e9b8ceb0f363c0e20087cdc2;p=naja.git diff --git a/naja/gameboard.py b/naja/gameboard.py index 367a9e1..2d138b2 100644 --- a/naja/gameboard.py +++ b/naja/gameboard.py @@ -2,7 +2,7 @@ from random import choice from naja.constants import( BITS, DIRECTION_BITS, CONDITION_BITS, PLAYER_DEFAULTS, - ACT, EXAMINE) + ACT, EXAMINE, ROTATION) from naja.player import Player from naja import actions @@ -117,7 +117,6 @@ class GameBoard(object): new_i = (new_i + change) % 5 shifted_locations[mkpos(new_i)] = self.board_locations[mkpos(i)] - print change, is_vertical, shifted_locations self.board_locations.update(shifted_locations) def shift_locations(self, direction): @@ -130,6 +129,35 @@ class GameBoard(object): elif BITS[direction] == BITS.WEST: self.shift_location_row(-1, is_vertical=False) + def rotate_locations(self, direction): + px, py = self.player.position + locations_to_rotate = [] + rotated_locations = {} + + if py > 0: + for i in range(max(0, px -1), min(5, px + 2)): + locations_to_rotate.append((i, py - 1)) + + if px > 0: + locations_to_rotate.append((px - 1, py)) + + if px < 4: + locations_to_rotate.append((px + 1, py)) + + if py < 4: + for i in range(max(0, px -1), min(5, px + 2)): + locations_to_rotate.append((i, py + 1)) + + if direction == ROTATION.CLOCKWISE: + new_positions = locations_to_rotate[1:] + locations_to_rotate[0] + elif direction == ROTATION.ANTICLOCKWISE: + new_positions = locations_to_rotate[-1] + locations_to_rotate[:-1] + + for old, new in zip(locations_to_rotate, new_positions): + rotated_locations[old] = self.board_locations[new] + + self.board_locations.update(rotated_locations) + def allow_chess_move(self, chesspiece): self.player.allow_chess_move(chesspiece)