Skip to content

Commit 3f0bdce

Browse files
raphaelsackFabiKL
andcommitted
Fixed major bugs and style
Co-authored-by: Fabian <FabiKl@users.noreply.github.com>
1 parent 8e86170 commit 3f0bdce

File tree

4 files changed

+29
-21
lines changed

4 files changed

+29
-21
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Es existiert eine ältere Koop-Variante des Spiels ohne Netzwerkanbindung im [Re
3434

3535
```plain
3636
Server:
37-
server <port>
37+
server <port=42069>
3838
3939
Führt einen Server aus, der die Logik des Spiels hält.
4040
Der Server hört auf Port 42069 zu.

source/client/client_controller.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
#include "client_controller.hpp"
22
#include "../network/net_client.hpp"
33

4-
#ifdef _WIN32
5-
#define SHOW_PRESS_ANY_KEY system("pause");
6-
#else
7-
#define SHOW_PRESS_ANY_KEY system("read");
8-
#endif
4+
95

106
#define CLEAR_SCREEN "\033[2J\33[H"
117
// #define CLEAR_SCREEN ""
@@ -245,6 +241,11 @@ void client_controller::process_local_input(std::string &in, bool &exit_flag)
245241
this->view->show_message(e.what());
246242
}
247243
break;
244+
case menu_state::INSTRUCTIONS:
245+
this->current_menu_state = menu_state::MAIN_MENU;
246+
this->view->show_start_menu();
247+
this->ask_for_input();
248+
break;
248249
}
249250
}
250251

@@ -287,9 +288,8 @@ void client_controller::process_main_menu_input(std::string &in, bool &exit_flag
287288
ask_for_input();
288289
break;
289290
case 3:
291+
this->current_menu_state = menu_state::INSTRUCTIONS;
290292
this->view->show_instructions();
291-
SHOW_PRESS_ANY_KEY;
292-
this->view->show_start_menu();
293293
ask_for_input();
294294
break;
295295
case 4:

source/client/konsolen_view.cpp

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <windows.h>
99
#endif
1010

11+
#define HORIZONTAL_LINE_DIVIDER "--------------------------------------------------------------------------------"
1112
#define CLEAR_SCREEN "\033[2J\33[H"
1213
// #define CLEAR_SCREEN ""
1314
#define SIDEBAR_MARGIN " "
@@ -157,28 +158,34 @@ void konsolen_view::print_board(std::string message){
157158

158159
void konsolen_view::show_start_menu(){
159160
std::cout << CLEAR_SCREEN;
160-
std::cout << "==============================================\n";
161+
std::cout << HORIZONTAL_LINE_DIVIDER << "\n";
161162
std::cout << "Startmenü Mühle\n";
162-
std::cout << "==============================================\n";
163+
std::cout << HORIZONTAL_LINE_DIVIDER << "\n";
163164
std::cout << "1. Neues Spiel erstellen\n";
164165
std::cout << "2. Einem Spiel beitreten\n";
165166
std::cout << "3. Anleitung anzeigen\n";
166167
std::cout << "4. Spiel Beenden\n";
167-
std::cout << "==============================================" << std::endl;
168+
std::cout << HORIZONTAL_LINE_DIVIDER << std::endl;
168169
}
169170

170171
void konsolen_view::show_instructions(){
171172
std::cout << CLEAR_SCREEN;
172-
std::cout << "==============================================" << std::endl;
173+
std::cout << HORIZONTAL_LINE_DIVIDER << std::endl;
173174
std::cout << "Anleitung" << std::endl;
174-
std::cout << "==============================================" << std::endl;
175-
std::cout << "Ablauf Mühle:" << std::endl;
176-
std::cout << "Setzphase: Die Spieler setzen abwechselnd je einen Stein, insgesamt je neun, auf Kreuzungs- oder Eckpunkte des Brettes" << std::endl;
177-
std::cout << "Zugphase: Die Spielsteine werden gezogen, das heißt, pro Runde darf jeder Spieler einen Stein auf einen angrenzenden, freien Punkt bewegen. Kann ein Spieler keinen Stein bewegen, hat er verloren." << std::endl;
178-
std::cout << "Endphase: Sobald ein Spieler nur noch drei Steine hat, darf er mit seinen Steinen springen, das heißt, er darf nun pro Runde mit einem Stein an einen beliebigen freien Punkt springen. \nSobald ihm ein weiterer Stein abgenommen wird, hat er das Spiel verloren." << std::endl;
179-
std::cout << "Drei Steine einer Farbe, die in einer Geraden auf Feldern nebeneinander liegen, nennt man eine „Mühle“. \nWenn ein Spieler eine Mühle schließt, darf er einen beliebigen Stein des Gegners aus dem Spiel nehmen, sofern dieser Stein nicht ebenfalls Bestandteil einer Mühle ist. " << std::endl;
180-
std::cout << "==============================================\n" << std::endl;
181-
175+
std::cout << HORIZONTAL_LINE_DIVIDER << std::endl;
176+
std::cout << R"(
177+
1. Die Züge werden wie in Schach über eine Notation gelöst. Das Mühle-Feld lässt
178+
sich aufteilen in a-g Spalten und 1-7 Zeilen.
179+
2. Die Auswahl des Feldes erfolgt über die Angabe der Notation (z. B. `a7`).
180+
3. Das Spiel läuft wie folgt ab:
181+
- Setzphase: Die Spieler setzen abwechselnd je einen Stein, insgesamt je neun, auf Kreuzungs- oder Eckpunkte des Brettes
182+
- Zugphase: Die Spielsteine werden gezogen, das heißt, pro Runde darf jeder Spieler einen Stein auf einen angrenzenden, freien Punkt bewegen. Kann ein Spieler keinen Stein bewegen, hat er verloren.
183+
- Endphase: Sobald ein Spieler nur noch drei Steine hat, darf er mit seinen Steinen springen, das heißt, er darf nun pro Runde mit einem Stein an einen beliebigen freien Punkt springen. Sobald ihm ein weiterer Stein abgenommen wird, hat er das Spiel verloren.
184+
185+
Drei Steine einer Farbe, die in einer Geraden auf Feldern nebeneinander liegen, nennt man eine „Mühle“. Wenn ein Spieler eine Mühle schließt, darf er einen beliebigen Stein des Gegners aus dem Spiel nehmen, sofern dieser Stein nicht ebenfalls Bestandteil einer Mühle ist.
186+
)";
187+
std::cout << HORIZONTAL_LINE_DIVIDER << "\n" << std::endl;
188+
std::cout << "Um zurückzukehren drücken Sie eine beliebige Taste + ENTER." << std::endl;
182189
}
183190

184191
void konsolen_view::show_end_screen(bool won){

source/logic/helper_types.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ enum menu_state{
1212
MAIN_MENU,
1313
CREATE_GAME,
1414
JOIN_GAME,
15-
END_SCREEN
15+
END_SCREEN,
16+
INSTRUCTIONS
1617
};
1718

1819
enum game_state{

0 commit comments

Comments
 (0)