Erste Funktionalitäten, Docstrings auf Sphinx-Format geändert
Zur Änderung der Docstrings pyment eingesetzt. z.B. ``` pyment -w Field.py ```
This commit is contained in:
parent
6ae7a34f1a
commit
55d804f3bc
@ -1,58 +1,72 @@
|
|||||||
from House import *
|
import House
|
||||||
from Field import *
|
import Field
|
||||||
|
|
||||||
class Board(object):
|
class Board(object):
|
||||||
|
|
||||||
"""
|
""":version: 0.1
|
||||||
:version:
|
:author: Martin Putzlocher
|
||||||
:author:
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
""" ATTRIBUTES
|
""" ATTRIBUTES
|
||||||
|
list_all_fields (private)
|
||||||
dict_all_fields (private)
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def __init__(self, colors:list, number_of_players=4):
|
||||||
|
self.colors = colors
|
||||||
|
self.num_players = number_of_players
|
||||||
|
self._list_all_fields = list()
|
||||||
|
self.init_board()
|
||||||
|
|
||||||
def get_house_by_color(self, color = "black"):
|
def get_house_by_color(self, color = "black"):
|
||||||
"""
|
"""Returns list of house fields of one color
|
||||||
|
|
||||||
|
:param string: color :
|
||||||
|
:param color: (Default value = "black")
|
||||||
|
:returns: House :
|
||||||
|
|
||||||
@param string color :
|
|
||||||
@return House :
|
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def init_board(self):
|
def init_board(self):
|
||||||
"""
|
"""Initialize Board
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
for n in range(self.num_players):
|
||||||
|
for i in range(10):
|
||||||
|
f = Field.Field(self, i, self.colors[n], house=False)
|
||||||
|
self._list_all_fields.append(f)
|
||||||
|
IDlist = [f.get_id() for f in self._list_all_fields]
|
||||||
|
print(IDlist)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_next_standard_field(self, current_field):
|
def get_next_standard_field(self, current_field):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
:param Field: current_field :
|
||||||
@param Field current_field :
|
:param current_field:
|
||||||
@return Field :
|
:returns: Field :
|
||||||
@author
|
@author
|
||||||
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def get_next_field_by_color(self, current_field, color = "black"):
|
def get_next_field_by_color(self, current_field, color = "black"):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
:param Field: current_field : Current field
|
||||||
@param Field current_field : Current field
|
:param string: color : Color of the stone requesting his next field.
|
||||||
@param string color : Color of the stone requesting his next field.
|
:param current_field:
|
||||||
@return Field :
|
:param color: (Default value = "black")
|
||||||
|
:returns: Field :
|
||||||
@author
|
@author
|
||||||
|
|
||||||
"""
|
"""
|
||||||
pass
|
curr_id = current_field.get_id()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
from Board import *
|
import Board
|
||||||
|
|
||||||
|
class Field():
|
||||||
|
|
||||||
|
""" Class of single field on game board
|
||||||
|
:version: 0.1
|
||||||
|
:author: Martin Putzlocher
|
||||||
|
|
||||||
class Field(object):
|
|
||||||
|
|
||||||
"""
|
|
||||||
:version:
|
|
||||||
:author:
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
""" ATTRIBUTES
|
""" ATTRIBUTES
|
||||||
@ -19,16 +21,47 @@ class Field(object):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def get_next_field(self, color_of_stone = "black"):
|
def __init__(self, board:Board.Board=None, number:int=0, color:str="black", house:bool=False):
|
||||||
|
if board is None:
|
||||||
|
raise Exception("No Board Exception")
|
||||||
|
self.board = board
|
||||||
|
self._n = number
|
||||||
|
self._c = color
|
||||||
|
self._h = house
|
||||||
|
self._id = ""
|
||||||
|
self.set_id(color, number, house)
|
||||||
|
|
||||||
|
def get_id(self):
|
||||||
|
""" Get ID of field instance
|
||||||
"""
|
"""
|
||||||
Give back next field on board, dependent on the color of a stone on the current
|
return self._id
|
||||||
|
|
||||||
|
def set_id(self, color:str, number:int, house:bool):
|
||||||
|
""" Set ID of field instance
|
||||||
|
|
||||||
|
:param color:str:
|
||||||
|
:param number:int:
|
||||||
|
:param house:bool:
|
||||||
|
|
||||||
|
"""
|
||||||
|
if house:
|
||||||
|
assert 0 <= number <= 3
|
||||||
|
self._id = "H" + color[:3] + str(number)
|
||||||
|
else:
|
||||||
|
assert 0 <= number <= 10
|
||||||
|
self._id = "S" + color[:3] + str(number)
|
||||||
|
return self._id
|
||||||
|
|
||||||
|
def get_next_field(self, color_of_stone = "black"):
|
||||||
|
"""Give back next field on board, dependent on the color of a stone on the current
|
||||||
field.
|
field.
|
||||||
|
|
||||||
@param string color_of_stone :
|
:param color_of_stone: Default value = "black")
|
||||||
@return Field :
|
:returns: Field :
|
||||||
@author
|
@author : Martin Putzlocher
|
||||||
|
|
||||||
"""
|
"""
|
||||||
pass
|
return self.board.get_next_field_by_color(self, color_of_stone)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,9 +4,10 @@ from GameView import *
|
|||||||
|
|
||||||
class GameController(object):
|
class GameController(object):
|
||||||
|
|
||||||
"""
|
""":version:
|
||||||
:version:
|
|
||||||
:author:
|
:author:
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
""" ATTRIBUTES
|
""" ATTRIBUTES
|
||||||
@ -19,26 +20,43 @@ class GameController(object):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
COLORS=["black", "yellow", "green", "red", "blue", "purple"]
|
||||||
|
|
||||||
|
def __init__(self, number_of_players:int=4):
|
||||||
|
self.list_of_players = list()
|
||||||
|
for i in range(number_of_players):
|
||||||
|
self.add_player("Player " + str(i), GameController.COLORS[i])
|
||||||
|
self.board = Board(GameController.COLORS, number_of_players)
|
||||||
|
self.game_view = GameView()
|
||||||
|
|
||||||
def add_player(self, name, color):
|
def add_player(self, name, color):
|
||||||
"""
|
"""Add a player to the game
|
||||||
|
|
||||||
|
:param name: Name of the player
|
||||||
|
:param color: Color of the player
|
||||||
|
:returns: Player : p
|
||||||
|
|
||||||
@param string name :
|
|
||||||
@param string color :
|
|
||||||
@return Player :
|
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
p = Player(name, color)
|
||||||
|
self.list_of_players.append(p)
|
||||||
|
return p
|
||||||
|
|
||||||
def remove_player(self, color):
|
def remove_player(self, color):
|
||||||
|
""" Remove player from game
|
||||||
|
|
||||||
|
:param color: Color of the player to be removed
|
||||||
|
:returns: True
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
found = False
|
||||||
|
for p in self.list_of_players:
|
||||||
|
if p.color == color:
|
||||||
|
self.list_of_players.remove(p)
|
||||||
|
found = True
|
||||||
|
print("Player with color {} removed".format(color))
|
||||||
|
else:
|
||||||
|
pass # still not found
|
||||||
|
if found == False:
|
||||||
|
print("No player with color {} available for extractin.".format(color))
|
||||||
|
|
||||||
|
return True
|
||||||
@param string color :
|
|
||||||
@return :
|
|
||||||
@author
|
|
||||||
"""
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,17 +1,18 @@
|
|||||||
|
|
||||||
class GameView(object):
|
class GameView(object):
|
||||||
|
|
||||||
"""
|
""":version:
|
||||||
:version:
|
|
||||||
:author:
|
:author:
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def display_board(self):
|
def display_board(self):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -19,8 +20,8 @@ class GameView(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
|
from Field import *
|
||||||
|
|
||||||
|
class House():
|
||||||
|
|
||||||
|
""":version: 0.1
|
||||||
|
:author: Martin Putzlocher
|
||||||
|
|
||||||
class House(object):
|
|
||||||
|
|
||||||
"""
|
|
||||||
:version:
|
|
||||||
:author:
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
""" ATTRIBUTES
|
""" ATTRIBUTES
|
||||||
@ -14,5 +16,20 @@ class House(object):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def __init__(self, board:Board=None, color:str="black"):
|
||||||
|
self.board = board
|
||||||
|
self.color = color
|
||||||
|
self._list_of_housefields = list()
|
||||||
|
|
||||||
|
if board is None:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
self.init_house()
|
||||||
|
|
||||||
|
def set_board(self, board:Board=None):
|
||||||
|
self.board = board
|
||||||
|
return True
|
||||||
|
|
||||||
|
def init_house(self):
|
||||||
|
for i in range(4):
|
||||||
|
f = Field(board=self.board)
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
from GameController import *
|
from GameController import *
|
||||||
from House import *
|
from House import *
|
||||||
|
|
||||||
class Player(object):
|
class Player():
|
||||||
|
""" Player
|
||||||
"""
|
|
||||||
:version:
|
:version:
|
||||||
:author:
|
:author:
|
||||||
"""
|
"""
|
||||||
@ -20,12 +19,18 @@ class Player(object):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def __init__(self, name:str="Nobody", color:str="black"):
|
||||||
|
self.name = name
|
||||||
|
self.color = color
|
||||||
|
self.house = House()
|
||||||
|
self.set_of_stones = list()
|
||||||
|
|
||||||
def take_turn(self):
|
def take_turn(self):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -33,8 +38,8 @@ class Player(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -42,8 +47,8 @@ class Player(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -51,8 +56,8 @@ class Player(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -2,9 +2,10 @@ from Field import *
|
|||||||
|
|
||||||
class Position(object):
|
class Position(object):
|
||||||
|
|
||||||
"""
|
""":version:
|
||||||
:version:
|
|
||||||
:author:
|
:author:
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
""" ATTRIBUTES
|
""" ATTRIBUTES
|
||||||
@ -23,18 +24,18 @@ class Position(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def change_pos(self, num):
|
def change_pos(self, num):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
:param int: num :
|
||||||
|
:param num:
|
||||||
|
:returns: author
|
||||||
|
|
||||||
@param int num :
|
|
||||||
@return :
|
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -3,9 +3,10 @@ from Player import *
|
|||||||
|
|
||||||
class Stone(object):
|
class Stone(object):
|
||||||
|
|
||||||
"""
|
""":version:
|
||||||
:version:
|
|
||||||
:author:
|
:author:
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
""" ATTRIBUTES
|
""" ATTRIBUTES
|
||||||
@ -20,18 +21,18 @@ class Stone(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@return :
|
:returns: author
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def set_position(self, position):
|
def set_position(self, position):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
:param Position: position :
|
||||||
|
:param position:
|
||||||
|
:returns: author
|
||||||
|
|
||||||
@param Position position :
|
|
||||||
@return :
|
|
||||||
@author
|
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
5
maedn/maedn.py
Normal file
5
maedn/maedn.py
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
from GameController import *
|
||||||
|
|
||||||
|
g = GameController()
|
||||||
|
|
||||||
|
print("Game ends here.")
|
Loading…
Reference in New Issue
Block a user