diff --git a/SQCSim-srv/server.cpp b/SQCSim-srv/server.cpp index c47591a..9d3178b 100644 --- a/SQCSim-srv/server.cpp +++ b/SQCSim-srv/server.cpp @@ -74,18 +74,35 @@ int Server::Ready() { do { Log("Entrez la duree de la partie: ", false, false); std::cin.getline(m_buf.ptr, BUFFER_LENGTH); - m_game.countdown = std::stoi(m_buf.ptr); + try { + m_game.countdown = std::stoi(m_buf.ptr); + } catch(const std::exception& e) { + Log(e.what(), true, false); + m_game.countdown = 0; + } } while (m_game.countdown < 1); do { Log("Entrez le seed de la partie: ", false, false); std::cin.getline(m_buf.ptr, BUFFER_LENGTH); - m_game.seed = std::stoi(m_buf.ptr); + try { + m_game.seed = std::stoi(m_buf.ptr); + } catch(const std::exception& e) { + Log(e.what(), true, false); + m_game.seed = 0; + } } while (m_game.seed < 1); do { Log("Entrez le nombre de joueurs: ", false, false); std::cin.getline(m_buf.ptr, BUFFER_LENGTH); - nbrjoueurs = std::stoi(m_buf.ptr); - } while (nbrjoueurs > 0 && nbrjoueurs >= MAX_CONNECTIONS); + try { + nbrjoueurs = std::stoi(m_buf.ptr); + } catch(const std::exception& e) { + Log(e.what(), true, false); + nbrjoueurs = 0; + } + if (nbrjoueurs <= 0 || nbrjoueurs > MAX_CONNECTIONS) + Log("Nombre de joueurs invalide.", true, false); + } while (nbrjoueurs <= 0 || nbrjoueurs > MAX_CONNECTIONS); m_game.gameType = 1;