Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.78 KB | None | 0 0
  1.  
  2. /* You can put any private test cases into this file. It will *not* be part of
  3.  * the submission. */
  4.  
  5. #include "gttt.hpp"
  6. #include <cassert>
  7. #include <iostream>
  8. #include <map>
  9. /**
  10. void print(gttt& x) {
  11.     std::cout << '{' << ' ';
  12.     std::vector<std::vector<std::vector<int>>> y = x.get_grid();
  13.     for (size_t i = 0; i < y.size(); i++) {
  14.     std::cout << '{' << ' ';
  15.         for (size_t j = 0; j < y.at(i).size(); j++) {
  16.         std::cout << '{' << ' ';
  17.         for (size_t k = 0; k < y.at(i).at(j).size(); k++) {
  18.         std::cout << y.at(i).at(j).at(k) << ' ';
  19.         }
  20.         std::cout << '}';
  21.     }
  22.     std::cout << '}' << ',' << '\n';
  23.     }
  24.     std::cout << '}' << '\n';
  25. }
  26. */
  27.  
  28. int main()
  29. {
  30.     gttt* y = new gttt(2, 3);
  31.    
  32. /**x->play(1, 0, 0);
  33.     assert(x->owner(1, 0 ,0) == 0);
  34.     x->play(-1, -1, 0);
  35.     assert(x->owner(-1, -1, 0) == 1);
  36.     x->play(1000, -6, 1);
  37.     assert(x->owner(1000, -6, 1) == 0);
  38.     print(*x);
  39. */
  40.     std::cout << "Start: \n players 2,  to_win 3 \n Is (0,0,0) empty? : -> ";
  41.     std::cout << y->empty(0, 0, 0) << '\n';
  42.     std::cout << "Player 0 turn: (0,0,0) \n";
  43.     y->play(0, 0, 0);
  44.     std::cout << "Is (0,0,0) empty? : -> ";
  45.     std::cout << y->empty(0, 0, 0) << '\n';
  46.     std::cout << "Owner of (0,0,0) is : " << y->owner(0, 0, 0) << '\n';
  47.     std::cout << "Player 1 tries to play on (0,0,0) : \n";
  48.     y->play(0, 0, 0);
  49.     std::cout << "Owner of (0,0,0) is : " << y->owner(0, 0, 0) << '\n';
  50.     std::cout << "Player 1 turn : (1,1,1) \n";
  51.     y->play(1, 1, 1);
  52.     std::cout << "Owner of (1,1,1) is : " << y->owner(1, 1, 1) << '\n';
  53.     std::cout << "Player 0 turn : (2,2,2) \n";
  54.     y->play(2, 2, 2);
  55.     std::cout << "Owner of (2,2,2) is : " << y->owner(2, 2, 2) << '\n';
  56.     delete(y);
  57.  
  58.  
  59.     std::cout << "========================================= \nEnding basic tests \n========================================= \n \n ";
  60.     gttt* x = new gttt(3, 5);
  61.  
  62.     std::cout << "Start: \n Players : 3     to_win : 5 \n";
  63.     std::cout << "Setting Player 0's positions at : (0,0,2), (2,0,2), (3,0,2), (4,0,2) \n and Player 1's positions at : (0,0,0), (1,0,0), (0,0,1), (1,0,1) \n and Player 2's postitions at (500,500,500), (600,600,600), (700,700,700), (800,800,800) \n";
  64.    
  65.     x->play(0,0,2); //Player 0
  66.     x->play(0,0,0); //Player 1
  67.     x->play(500,500,500);    //Player 2
  68.     x->play(2,0,2); //Player 0
  69.     x->play(1,0,0); //Player 1
  70.     x->play(600,600,600);    //Player 2
  71.     x->play(3,0,2); //Player 0
  72.     std::cout << "before 3rd turn? -> : " << x->finished() << '\n';
  73.     x->play(0,0,1); //Player 1
  74.     std::cout << "after 3rd turn? -> : " << x->finished() << '\n';
  75.     x->play(700,700,700);    //Player 2
  76.     x->play(4,0,2); //Player 0
  77.     x->play(1,0,1); //Player 1
  78.     x->play(800,800,800);    //Player 2
  79.  
  80.     std::cout << "Owner of (700,700,700) is : " << x->owner(700,700,700) << '\n';
  81.     std::cout << "Is game finished ?  -> : " << x->finished() << '\n';
  82.  
  83.     std::cout << "Putting winning mark of player 0 to postition : (1,0,2) \n";
  84.  
  85.     x->play(1,0,2); //Player 0
  86.  
  87.     std::cout << "Is game finished ? -> : " << x->finished() << '\n';
  88.     std::cout << "The winner of the game is : " << x->winner() << '\n';
  89.  
  90.     delete(x);
  91.  
  92.  
  93.  
  94.     std::cout << "========================================= \nStarting may_win() TESTS \n========================================= \n \n ";
  95.  
  96.     gttt* z = new gttt(2, 5);
  97.  
  98.     std::cout << "1st TEST -> X X - X X  \n TO_WIN = 5;  may_win should be true;;;" << '\n';
  99.     z->play(0,1,0);
  100.     z->play(0,4,0);
  101.     z->play(1,1,0);
  102.     z->play(1,4,0);
  103.     z->play(3,1,0);
  104.     z->play(2,4,0);
  105.     std::cout << "Result of may_win() for X (before his last turn) -> " << z->may_win() << '\n';
  106.     z->play(4,1,0);
  107.     std::cout << "Result of may_win() for O (before last turn) -> " << z->may_win() << '\n';
  108.     z->play(3,4,0);
  109.     std::cout << "Result of may_win() for X -> " << z->may_win() << '\n';
  110.    
  111.     std::cout << "2nd TEST -> - X X X X - \n TO_WIN = 5; may_win should be true for X;;;" << '\n';
  112.     gttt* second = new gttt(2, 5);
  113.  
  114.     second->play(1,1,0);
  115.     second->play(0,0,0);
  116.     second->play(2,1,0);
  117.     second->play(0,2,0);
  118.     second->play(3,1,0);
  119.     second->play(0,3,0);
  120.     std::cout << "Result of may_win() for X (before his last turn) -> " << second->may_win() << '\n';
  121.     second->play(4,1,0);
  122.     std::cout << "Result of may_win() for O (before last turn) -> " << second->may_win() << '\n';
  123.     second->play(0,4,0);
  124.     std::cout << "Result of may_win() for X -> " << second->may_win() << '\n';
  125.  
  126.     std::cout << "3rd TEST -> X - X X X \n TO_WIN = 5; may_win should be true for X;;;\n";
  127.     gttt* third = new gttt(2, 5);
  128.    
  129.  
  130.     third->play(0,1,0);
  131.     third->play(1,0,0);
  132.     third->play(2,1,0);
  133.     third->play(1,2,0);
  134.     third->play(3,1,0);
  135.     third->play(1,3,0);
  136.     std::cout << "Result of may_win() for X (before his last turn) -> " << third->may_win() << '\n';
  137.     third->play(4,1,0);
  138.     std::cout << "Result of may_win() for O (before last turn) -> " << third->may_win() << '\n';
  139.     third->play(1,4,0);
  140.     std::cout << "Result of may_win() for X -> " << third->may_win() << '\n';
  141.  
  142.     std::cout << "4th TEST -> X X O X X \n TO_WIN = 5; may_win should be false for X;;;" << '\n';
  143.     gttt* fourth = new gttt(2, 5);
  144.  
  145.  
  146.     fourth->play(0,1,0);
  147.     fourth->play(2,0,0);
  148.     fourth->play(1,1,0);
  149.     fourth->play(2,1,0);
  150.     fourth->play(3,1,0);
  151.     fourth->play(2,2,0);
  152.     std::cout << "Result of may_win() for X (before his last turn) -> " << fourth->may_win() << '\n';
  153.     fourth->play(4,1,0);
  154.     std::cout << "Result of may_win() for O (before last turn) -> " << fourth->may_win() << '\n';
  155.     fourth->play(2,3,0);
  156.     std::cout << "Result of may_win() for X -> " << fourth->may_win() << '\n';
  157.  
  158.     delete(z);
  159.     delete(second);
  160.     delete(third);
  161.     delete(fourth);
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement