From 33150ba9d8598e230925beeaaf33bec24baf3398 Mon Sep 17 00:00:00 2001 From: PolishPigeon Date: Wed, 22 Dec 2021 22:15:02 +0100 Subject: [PATCH] Penguins Restoration Project 1%: Making it work under Linux --- EPFU/src/a.out | Bin 0 -> 34152 bytes EPFU/src/checkmove.c | 4 +++ EPFU/src/command_line_parameters.c | 6 ++--- EPFU/src/generate.c | 4 +-- EPFU/src/main.c | 17 +++++++++---- EPFU/src/printing.c | 38 ++++++++++++++++++++++++++++- EPFU/src/userinteraction.c | 10 ++++++++ 7 files changed, 67 insertions(+), 12 deletions(-) create mode 100755 EPFU/src/a.out diff --git a/EPFU/src/a.out b/EPFU/src/a.out new file mode 100755 index 0000000000000000000000000000000000000000..fea9187b6e2cad772cd0e98e88a5a1ea3b1e64d5 GIT binary patch literal 34152 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 file_type == 0) // First file is input board file { printf("It is an input board file!\n"); - char line[255]; Game -> file_type = Game -> file_type + 1; printf("%s", Game -> command_line[command_number]); Game -> input_board_command_number = command_number; @@ -85,7 +84,6 @@ int checkParameterType(GameState *Game, int command_number) }else if(Game -> file_type == 1) // Second file is output board file { printf("It is an output board file!\n"); - char line[255]; if(!strcmp(Game -> command_line[Game -> input_board_command_number], Game -> command_line[command_number])) // If the input and board file are the same // then we open it in r+ mode { diff --git a/EPFU/src/generate.c b/EPFU/src/generate.c index 9f3f32f9..5a0bfe49 100644 --- a/EPFU/src/generate.c +++ b/EPFU/src/generate.c @@ -39,9 +39,9 @@ Field** randomizeFields(GameState Game) return Game.board; } -char** generateCommandLine(GameState Game, int argc, char *argv[]) +char** generateCommandLine(GameState Game, int argc) { - int i, j; + int i; Game.command_line = (char **)malloc(argc * sizeof(char*)); for(i = 0; i < argc; i++) { diff --git a/EPFU/src/main.c b/EPFU/src/main.c index 978644fb..7da9dea4 100644 --- a/EPFU/src/main.c +++ b/EPFU/src/main.c @@ -9,9 +9,11 @@ #include "movement.c" #include "command_line_parameters.c" #include "game_struct.h" // Header file for file where we store all our structures -#include -//#define INTERACTIVE -#define AUTOMATIC +#ifdef _WIN32 +#include "windows.h" +#endif +#define INTERACTIVE +//#define AUTOMATIC int interactive_mode(GameState Game) { @@ -68,7 +70,12 @@ int interactive_mode(GameState Game) }else printf("It's a tie!\n"); return 0; } -int main(int argc, char *argv[]) +int main( + #ifdef AUTOMATIC + int argc, + char *argv[] + #endif + ) { GameState Game; #ifdef AUTOMATIC @@ -77,7 +84,7 @@ int main(int argc, char *argv[]) if(argc != 1) { // Creating a Game variable that will hold informations needed to run the program - Game.command_line = generateCommandLine(Game, argc, argv); // Generates 2D dynamic array of strings + Game.command_line = generateCommandLine(Game, argc); // Generates 2D dynamic array of strings handlingParameters(argc, argv, Game); // Stores all commands inside Game.command_line array Game.file_type = 0; // We use this variable to check if the file we open is inputboardfile or outputboardfile Game.phase = 0; // We use this variable to check if current game phase is placement (1) or movement(2) diff --git a/EPFU/src/printing.c b/EPFU/src/printing.c index 3e588445..94186eb1 100644 --- a/EPFU/src/printing.c +++ b/EPFU/src/printing.c @@ -1,8 +1,11 @@ #include "game_struct.h" -#include +#ifdef _WIN32 +#include "windows.h" +#endif int printBoard(GameState Game) { + #ifdef _WIN32 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO consoleInfo; WORD saved_attributes; @@ -46,6 +49,39 @@ int printBoard(GameState Game) printf("\n"); } printf("\n"); + #else + system("clear || cls"); + printf("\nCurrent board status:\n"); + printf(" "); + + for (int i = 0; i < Game.board_width; i++) + { + printf("%d ", i); // Here we print the number of columns + } + printf("\n"); + for(int i = 0; i < Game.board_height; i++) + { + printf("%d ", i); // Here we print the number of rows + for(int j = 0; j < Game.board_width; j++) + { + if ((Game.board[i][j].fish_no == 0) && (Game.board[i][j].player_no == 0)) + { + printf("~ "); // If there are no penguins and fish on the field we print the 'wave' + } + else if(Game.board[i][j].fish_no == 0) + { + printf("P%d ",Game.board[i][j].player_no); + } + else + { + printf("F%d ",Game.board[i][j].fish_no); + } + } + printf("\n"); + } + printf("\n"); + + #endif ScoreBoard(Game); return 0; } diff --git a/EPFU/src/userinteraction.c b/EPFU/src/userinteraction.c index fc1553c3..66303f69 100644 --- a/EPFU/src/userinteraction.c +++ b/EPFU/src/userinteraction.c @@ -1,5 +1,9 @@ #include "game_struct.h" + +#ifdef _WIN32 #include "windows.h" +#endif + void welcome() { printf("Hey there! Lets play ''HEY THAT'S MY FISH'' \n"); @@ -18,6 +22,7 @@ END */ int ScoreBoard(GameState Game) { + #ifdef _WIN32 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO consoleInfo; WORD saved_attributes; @@ -32,6 +37,11 @@ int ScoreBoard(GameState Game) SetConsoleTextAttribute(hConsole, 6); printf("Player number 2 score: %d\n\n", Game.player_data[1].score); SetConsoleTextAttribute(hConsole, saved_attributes); + #else + printf("Player number 1 score: %d\n", Game.player_data[0].score); + printf("Player number 2 score: %d\n\n", Game.player_data[1].score); + + #endif return 1; }