Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* You can put any private test cases into this file. It will *not* be part of
- * the submission. */
- #include "gttt.hpp"
- #include <cassert>
- #include <iostream>
- #include <map>
- /**
- void print(gttt& x) {
- std::cout << '{' << ' ';
- std::vector<std::vector<std::vector<int>>> y = x.get_grid();
- for (size_t i = 0; i < y.size(); i++) {
- std::cout << '{' << ' ';
- for (size_t j = 0; j < y.at(i).size(); j++) {
- std::cout << '{' << ' ';
- for (size_t k = 0; k < y.at(i).at(j).size(); k++) {
- std::cout << y.at(i).at(j).at(k) << ' ';
- }
- std::cout << '}';
- }
- std::cout << '}' << ',' << '\n';
- }
- std::cout << '}' << '\n';
- }
- */
- int main()
- {
- gttt* y = new gttt(2, 3);
- /**x->play(1, 0, 0);
- assert(x->owner(1, 0 ,0) == 0);
- x->play(-1, -1, 0);
- assert(x->owner(-1, -1, 0) == 1);
- x->play(1000, -6, 1);
- assert(x->owner(1000, -6, 1) == 0);
- print(*x);
- */
- std::cout << "Start: \n players 2, to_win 3 \n Is (0,0,0) empty? : -> ";
- std::cout << y->empty(0, 0, 0) << '\n';
- std::cout << "Player 0 turn: (0,0,0) \n";
- y->play(0, 0, 0);
- std::cout << "Is (0,0,0) empty? : -> ";
- std::cout << y->empty(0, 0, 0) << '\n';
- std::cout << "Owner of (0,0,0) is : " << y->owner(0, 0, 0) << '\n';
- std::cout << "Player 1 tries to play on (0,0,0) : \n";
- y->play(0, 0, 0);
- std::cout << "Owner of (0,0,0) is : " << y->owner(0, 0, 0) << '\n';
- std::cout << "Player 1 turn : (1,1,1) \n";
- y->play(1, 1, 1);
- std::cout << "Owner of (1,1,1) is : " << y->owner(1, 1, 1) << '\n';
- std::cout << "Player 0 turn : (2,2,2) \n";
- y->play(2, 2, 2);
- std::cout << "Owner of (2,2,2) is : " << y->owner(2, 2, 2) << '\n';
- delete(y);
- std::cout << "========================================= \nEnding basic tests \n========================================= \n \n ";
- gttt* x = new gttt(3, 5);
- std::cout << "Start: \n Players : 3 to_win : 5 \n";
- 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";
- x->play(0,0,2); //Player 0
- x->play(0,0,0); //Player 1
- x->play(500,500,500); //Player 2
- x->play(2,0,2); //Player 0
- x->play(1,0,0); //Player 1
- x->play(600,600,600); //Player 2
- x->play(3,0,2); //Player 0
- std::cout << "before 3rd turn? -> : " << x->finished() << '\n';
- x->play(0,0,1); //Player 1
- std::cout << "after 3rd turn? -> : " << x->finished() << '\n';
- x->play(700,700,700); //Player 2
- x->play(4,0,2); //Player 0
- x->play(1,0,1); //Player 1
- x->play(800,800,800); //Player 2
- std::cout << "Owner of (700,700,700) is : " << x->owner(700,700,700) << '\n';
- std::cout << "Is game finished ? -> : " << x->finished() << '\n';
- std::cout << "Putting winning mark of player 0 to postition : (1,0,2) \n";
- x->play(1,0,2); //Player 0
- std::cout << "Is game finished ? -> : " << x->finished() << '\n';
- std::cout << "The winner of the game is : " << x->winner() << '\n';
- delete(x);
- std::cout << "========================================= \nStarting may_win() TESTS \n========================================= \n \n ";
- gttt* z = new gttt(2, 5);
- std::cout << "1st TEST -> X X - X X \n TO_WIN = 5; may_win should be true;;;" << '\n';
- z->play(0,1,0);
- z->play(0,4,0);
- z->play(1,1,0);
- z->play(1,4,0);
- z->play(3,1,0);
- z->play(2,4,0);
- std::cout << "Result of may_win() for X (before his last turn) -> " << z->may_win() << '\n';
- z->play(4,1,0);
- std::cout << "Result of may_win() for O (before last turn) -> " << z->may_win() << '\n';
- z->play(3,4,0);
- std::cout << "Result of may_win() for X -> " << z->may_win() << '\n';
- std::cout << "2nd TEST -> - X X X X - \n TO_WIN = 5; may_win should be true for X;;;" << '\n';
- gttt* second = new gttt(2, 5);
- second->play(1,1,0);
- second->play(0,0,0);
- second->play(2,1,0);
- second->play(0,2,0);
- second->play(3,1,0);
- second->play(0,3,0);
- std::cout << "Result of may_win() for X (before his last turn) -> " << second->may_win() << '\n';
- second->play(4,1,0);
- std::cout << "Result of may_win() for O (before last turn) -> " << second->may_win() << '\n';
- second->play(0,4,0);
- std::cout << "Result of may_win() for X -> " << second->may_win() << '\n';
- std::cout << "3rd TEST -> X - X X X \n TO_WIN = 5; may_win should be true for X;;;\n";
- gttt* third = new gttt(2, 5);
- third->play(0,1,0);
- third->play(1,0,0);
- third->play(2,1,0);
- third->play(1,2,0);
- third->play(3,1,0);
- third->play(1,3,0);
- std::cout << "Result of may_win() for X (before his last turn) -> " << third->may_win() << '\n';
- third->play(4,1,0);
- std::cout << "Result of may_win() for O (before last turn) -> " << third->may_win() << '\n';
- third->play(1,4,0);
- std::cout << "Result of may_win() for X -> " << third->may_win() << '\n';
- std::cout << "4th TEST -> X X O X X \n TO_WIN = 5; may_win should be false for X;;;" << '\n';
- gttt* fourth = new gttt(2, 5);
- fourth->play(0,1,0);
- fourth->play(2,0,0);
- fourth->play(1,1,0);
- fourth->play(2,1,0);
- fourth->play(3,1,0);
- fourth->play(2,2,0);
- std::cout << "Result of may_win() for X (before his last turn) -> " << fourth->may_win() << '\n';
- fourth->play(4,1,0);
- std::cout << "Result of may_win() for O (before last turn) -> " << fourth->may_win() << '\n';
- fourth->play(2,3,0);
- std::cout << "Result of may_win() for X -> " << fourth->may_win() << '\n';
- delete(z);
- delete(second);
- delete(third);
- delete(fourth);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement