Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
- #include <cstdlib>
- #define CLEAR_COMMAND "cls"
- #else
- #define CLEAR_COMMAND "clear"
- #endif
- #define RIGHE 3
- #define COLONNE 5
- void stampa_griglia(int** matrice, int righe, int colonne, int turno);
- int main(){
- srand(time(NULL));
- int r1x, r1y, r2x, r2y;
- int x, y;
- int turni = 0;
- int sommergibili_trovati = 0;
- std::string coordinate;
- int** griglia = (int**) malloc(RIGHE * sizeof(int*));
- for (int i = 0; i < RIGHE; i++) griglia[i] = (int*) std::calloc(COLONNE, sizeof(int));
- do{
- r1x = rand() % RIGHE;
- r2x = rand() % RIGHE;
- r1y = rand() % COLONNE;
- r2y = rand() % COLONNE;
- }while(r1x == r2x && r1y == r2y);
- griglia[r1x][r1y] = 1;
- griglia[r2x][r2y] = 1;
- while (sommergibili_trovati != 2){
- stampa_griglia(griglia, RIGHE, COLONNE, turni + 1);
- std::cout << "Coordinate su dove sganciare la prossima bomba (formato: a1): ";
- std::cin >> coordinate;
- x = coordinate[1] - '0';
- y = coordinate[0] - 'a';
- while(!(y >= 0 && y - 'a' < COLONNE) || !(x >= 0 && x <= RIGHE) || coordinate.length() != 2){
- std::cout << "[ERRORE] Reinserire coordinate su dove sganciare la prossima bomba (formato: a1): ";
- std::cin >> coordinate;
- x = coordinate[1] - '0';
- y = coordinate[0] - 'a';
- }
- x = abs(x - RIGHE);
- if (griglia[x][y] == 2){
- std::cout << "[ERRORE] Posizione gia' inserita!\n";
- std::cin.ignore();
- getchar();
- }
- else{
- if (griglia[x][y] == 1){
- griglia[x][y] = 3;
- std::cout << "\n\nComplimenti hai trovato il " << ++sommergibili_trovati << "* sommergibile!";
- std::cin.ignore();
- getchar();
- }
- else griglia[x][y] = 2;
- turni++;
- }
- }
- stampa_griglia(griglia, RIGHE, COLONNE, turni);
- std::cout << "\n[HAI VINTO] Numero turni giocati: " << turni << "\n";
- std::cout << "\n\nPress enter to continue...";
- std::cin.ignore();
- getchar();
- return EXIT_SUCCESS;
- }
- void stampa_griglia(int** matrice, int righe, int colonne, int turno){
- system(CLEAR_COMMAND);
- std::cout << ">> Turno #" << turno << "\n";
- std::cout << std::string(COLONNE * 2 + 4, '-') << "\n";
- for(int i = 0; i < righe; i++){
- std::cout << righe - i << "| ";
- for(int j = 0; j < colonne; j++){
- std::cout << ((matrice[i][j] == 1) ? 0 : matrice[i][j]) << " ";
- }
- std::cout << "|\n";
- }
- std::cout << std::string(COLONNE * 2 + 4, '-') << "\n ";
- for (int i = 0; i < COLONNE; i++) std::cout << (char) ('a' + i) << " ";
- std::cout << "\n\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement