# Siedler of Catan 
Siedler of Catan is a multi-player-roleplay game, that lets you build roads, 
settlements and cites in the world of region of catan. You have to try to build 
as many roads, settlements and cities as you can to get points. It is also a 
strategic game where you have to choose wisely where to build your structures, 
to be able to dominate your friends.

#Rules
1. The minimum Player amount is 2 and the maximum Player amount is 4.
2. The minimum amount if win points is 3.
3. Each Player can build two roads and two settlements free of cost at the beginning of
the game. After the placement, each player gets resources from the field around the second settlement.
4. Every Player is being sorted into a faction. There cannot be two players in the
same faction.
5. A player cannot build two settlements or cities right next one another. 
There have to be at least two roads between them.
6. The cost for each structure is set and is nonnegotiable.
7. The player with the longest road (most roads connecting to one another), which is longer then 4
will be awarded two additional points.
8. If a player rolls a 7 on a dice throw, then the resources of every player that has
more than 7 resources will be halved. The resources that are being taken are chosen
at random.

For a more detailed version of the rules please look here: https://www.catan.de/sites/prod/files/2021-06/CATAN_DasSpiel_Spielregel.pdf

#Usermanual
First the program will ask how many players will be playing the game. The minimum 
amount of players is 2 and the maximum amount of players is 4. Each player will 
be appointed to a faction. In the next step, the program ask for the number of win points. The first player who reaches this number of win points, will win the game. Now every player can build a settlement and a road 
after every player has built a settlement and road, they can build a second 
settlement and road in reversed order. When the players build their second 
settlement they then receive the resources surrounding that specific settlement. 
Now that the setup is complete the player that placed the last settlement will 
begin. After the players have rolled the dice the resources connected to the 
number that the player rolled with the dice.

Now as for the commands a player has to put in while it's their turn:
#Build Settlement
``build settlement`` Builds a settlement 

When it's the players turn, they can build a new settlement by giving the command
build settlement. With that they will be asked where they want to build said settlement
and to enter the coordinates, then the program will check if those coordinates are available or not. Then the 
program will subtract the resources needed to build a settlement. If the player has 
insufficient resources the settlement will not be built and an error message will 
appear. The turn of the current player will continue until the player ends it.

#Build City
``build city`` Builds a city

During the players turn they can build a city on the same coordinates that they 
have already built a settlement on. To do that they have to enter the command 
build city. Then they have to add the coordinates that they want the city to be 
built at. If the coordinates are available and the settlement at that coordinate is 
of the same faction as the player then the city can be built there. The program 
will then check if the player has sufficient resources to build the city, then 
the program will subtract them of the players resources, otherwise the city won't 
be build and the player continues their turn until they end it. 

#Build Road 
``build road`` Builds a road

During the current players turn, the player can build a new road by giving the 
command build road. Then the player will be asked to give the coordinates for where 
they want to build the new road after entering the coordinates the program will 
check to see if they are valid coordinates and if they aren't occupied. 
If the coordinates are checked and there was no error message, then the program 
will check if the player has enough resources to build the road if they do the 
program will then subtract the amount of resources of the player. If they do not 
have enough resources the road will not be built and the player will receive 
an error message. The player continues their turn until they end it.

#Trade with Bank
``trade with bank`` Let's the player trade resources with the bank

The current player can trade resources with the bank by entering the command 
trade with bank. The player then can enter what and how many resources they want 
then they have to enter what resources they will give in return. The trade course 
for the resources is set to 1:4. That means the player will have to give 4 resources 
trade for one of their choosing from the bank. If they do not have enough resources 
to give the trade will not be completed and the player may continue their turn.

#Next Player
``next player`` Ends a players turn

When the current player has done all the building and trading they wanted and now 
want to end their turn they can end it by entering the command next player. By entering 
this command the player relinquishes their turn and the next player may start their 
turn.

#Quit
``quit`` Let's a player quit the game

If a player wants to quit the game they can enter the command quit while it's their 
turn to quit the game. 

#Coordinates

![Coordinates](doc/Coordinates_SiedlerBoard.PNG)


#Class Diagram

![Class Diagramm](doc/ClassDiagramm.png)