From dcd16e19e19d83aeedc56b32d94990a81ca7744d Mon Sep 17 00:00:00 2001
From: TheHresvelgian <sigrunhog@hotmail.com>
Date: Tue, 26 Apr 2022 23:34:49 +0200
Subject: [PATCH] Organizing code

---
 src/kode/Tournament.cpp | 49 ++++++++++++++++++++++++++++++++++++++++-
 src/kode/Tournament.h   |  6 +++--
 src/kode/checkmate.cpp  | 38 --------------------------------
 3 files changed, 52 insertions(+), 41 deletions(-)

diff --git a/src/kode/Tournament.cpp b/src/kode/Tournament.cpp
index 6d7fddc..6499644 100644
--- a/src/kode/Tournament.cpp
+++ b/src/kode/Tournament.cpp
@@ -15,15 +15,62 @@
 using namespace std;
 
 extern vector<Tournament *> gTournaments;
+extern vector<Player*> playerList;
+extern vector<Player*> sortedRankings;
 
 void Tournament::startNewTournament()
+{
+    char answer;
+    do {
+        cout << endl << "Are you certain you wish to start a new tournament?"
+        << "This will delete all existing tournament data, including the player list.";
+        answer = lesChar(" Y/N\n");
+        answer= tolower(answer);
+    }while (answer != 'y' && answer != 'n');
+    if (answer == 'n')
+    {
+        return;
+    }
+    playerList.clear();
+    sortedRankings.clear();
+    gTournaments.clear();
+
+    Tournament* newTournament;
+    newTournament = new Tournament;
+
+    newTournament->nrOfTables = lesInt("\nHow many tables should the tournament have?\n",1,1000);
+    newTournament->currentRound = 0;
+    newTournament->nrOfRounds = lesInt("\nHow many rounds should the tournament have?\n",1,20);
+    gTournaments.push_back(newTournament);
+}
+
+
+
+void Tournament::enterResults()
 {
 
 }
 
-void Tournament::nextRound()
+void Tournament::printTables()
 {
+    if(canStartRound() == false)
+    {
+        cout << endl << "There number of tables does not correspond to the amount of players,"
+             << " please add or remove players so that there is exactly two players per table." << endl;
+        return;
+    }
+}
 
+bool Tournament::canStartRound()
+{
+    if (playerList.size() == nrOfTables*2)
+    {
+        return true;
+    }
+    else
+    {
+        return false;
+    }
 }
 
 void Tournament::endTournament()
diff --git a/src/kode/Tournament.h b/src/kode/Tournament.h
index 3a54c7b..cc053c5 100644
--- a/src/kode/Tournament.h
+++ b/src/kode/Tournament.h
@@ -28,9 +28,11 @@ class Tournament
         vector<int>white;
         vector<int>black;
 
-        virtual void startNewTournament(); //-
-        virtual void nextRound(); //-
+        virtual void startNewTournament(); //+
+        virtual void enterResults(); //-
         virtual void endTournament(); //-
+        virtual void printTables(); //-
+        bool canStartRound();//
         void writeToFileTournament(ofstream &out); //-
         void readFromFileTournaments(ifstream &in); //-
 
diff --git a/src/kode/checkmate.cpp b/src/kode/checkmate.cpp
index 88b75e1..4c45c8b 100644
--- a/src/kode/checkmate.cpp
+++ b/src/kode/checkmate.cpp
@@ -213,35 +213,6 @@ void enterResults()
     }
 }
 
-
-
-/**
- * Create a new tournament, with black and white players and what table they're playing at
- *  @see writeTournament()
- *  @see fillTableArray()
- */
-void newTournament()
-{
-    if(gRounds == 0){
-     cout<<"Table: \tPlayer 1: \tPlayer 2:\n";
-     for(int i=0; i<gPlayers.size(); i+2){
-         cout<< i+1 <<"\t" <<gPlayers[i]->returnName() <<"\t" <<gPlayers[i+1]->returnName() <<"\n";
-     }
-     gRounds++;
-    }
-
-    else{
-    cout<<"Table: \tPlayer 1: \tPlayer 2:\n";
-    for(int i=0; i<gPlayers.size(); i++){
-        for(int j=1; j<gPlayers.size(); j++){
-           // gPlayers[i]->playedBefore[j];
-
-        }
-    }
-    gRounds++;
-    }
-}
-
 /**
  * edit info about a player
  *
@@ -317,12 +288,3 @@ void skrivMeny()
          << "\t6 - View results\n"
          << "\tQ - Quit\n\n";
 }
-
-/**
- * Asks user for number of tables
- *
- */
-void amntTables(){
-    cout<<"How many tables do you have?\n";
-    gTables = lesInt("Tables:",1,200);
-}
-- 
GitLab