Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <map>
- #include <iterator>
- #include <vector>
- #include <algorithm>
- //#include <cstdlib>
- #include <ctime>
- using namespace std;
- class Domino {
- public:
- vector<string> shuffle(vector<string> a, vector<string> b, vector<string> c);
- void goesFirst();
- void winner();
- };
- class Player : public Domino {
- public:
- vector <string> playerDom;
- void menu(int);
- void printDom(vector<string> playerDom);
- void addBoneyard();
- void head();
- void tail();
- void pass();
- };
- vector<string> Domino::shuffle(vector<string> a, vector<string> b,
- vector<string> c) {
- typedef map<int, string> boneyard;
- boneyard m;
- m[1] = "[0|1]";
- m[2] = "[0|2]";
- m[3] = "[0|3]";
- m[4] = "[0|4]";
- m[5] = "[0|5]";
- m[6] = "[0|6]";
- m[7] = "[1|2]";
- m[8] = "[1|3]";
- m[9] = "[1|4]";
- m[10] = "[1|5]";
- m[11] = "[1|6]";
- m[12] = "[2|3]";
- m[13] = "[2|4]";
- m[14] = "[2|5]";
- m[15] = "[2|6]";
- m[16] = "[3|4]";
- m[17] = "[3|5]";
- m[18] = "[3|6]";
- m[19] = "[4|5]";
- m[20] = "[4|6]";
- m[21] = "[5|6]";
- m[22] = "[0|0]";
- m[23] = "[1|1]";
- m[24] = "[2|2]";
- m[25] = "[3|3]";
- m[26] = "[4|4]";
- m[27] = "[5|5]";
- m[28] = "[6|6]";
- vector <string> bone;
- for (boneyard::iterator it = m.begin(); it != m.end(); it++) {
- bone.push_back(it->second);
- }
- random_shuffle(bone.begin(), bone.end());
- int n = 6, i = 0;
- vector<string>playerDom(bone.begin(), bone.begin() + n);
- for (i = 0; i < playerDom.size(); i++) {
- cout << playerDom[i];
- }
- cout << endl;
- a = playerDom;
- vector<string>compDom(bone.end() - n, bone.end());
- for (i = 0; i < compDom.size(); i++) {
- cout << compDom[i];
- }
- cout << endl;
- b = compDom;
- bone.erase(bone.begin(), bone.begin() + n);
- bone.erase(bone.end() - n, bone.end());
- for (i = 0; i < bone.size(); i++) {
- cout << bone[i];
- cout << endl;
- }
- c = bone;
- return a, b, c;
- }
- void Domino::goesFirst() {
- string AI;
- bool status = true;
- /*for (int i = 0; status && i < 6; i++) {
- if (AI[i] = '0,0') {
- //idk how to figure out WHICH player will go first, comparing their numbers to figure out
- //who has the HIGHER number. Ex. AI has '4,4' but player has '6,6', therefore player goes first
- }
- else if (AI[i] = '1,1') {
- //USE A BINARY SEARCH?
- }
- else if (AI[i] = '2,2') {
- //SUBSTRING USED TO FLIP DOMINOES TO MATCH NUMBERS
- }
- else if (AI[i] = '3,3') {// [ 2 | 3 ]
- //
- }
- else if (AI[i] = '4,4') {
- //
- }
- else if (AI[i] = '5,5') {
- //
- }
- else if (AI[i] = '6,6') {
- //
- }
- }
- // compare computer and player1 dominoes to find who goes first
- // whoever has the heaviest of (6,6), (5,5), (4,4), (3,3), (2,2), (1,1)
- // goes first*/
- return;
- }
- void Player::printDom(vector<string> a) {
- //a = shuffle(a);
- for (int i = 0; i < a.size(); i++) {
- cout << a[i];
- }
- return;
- }
- void Player::addBoneyard() {//BONEYARD MUST BE SHUFFLED FIRST
- // get the first domino in the boneyard and add it
- // if there are no more dominoes in the boneyard then
- the turn passes
- return;
- }
- void Domino::winner() {
- int counter = 0;
- // counts elements in array to determine winner
- for (int index = 0; index <= 6; index++) {//idk what to add in to count each players pieces
- counter++; //it should look similar to the pass function
- }
- return;
- }
- void Player::head() {
- // place domino on the left, first in the array
- //ADD ELEMENT TO FRONT OF VECTOR USE INSERT
- return;
- }
- void Player::tail() {
- // place domino on the right, last in the array
- //ADD ELEMENT TO END OF VECTOR USE PUSH_BACK
- return;
- }
- void Player::pass() {
- //somehow figure out how to continue the game
- // passes turn, also passes if the boneyard is empty
- return;
- }
- int printMenu(int choice) {
- cout << "Domino Menu" << endl << endl;
- cout << "1. Print your dominoes" << endl;
- cout << "2. Add a domino to the head of the train" << endl;
- cout << "3. Add a domino to the tail of the train" << endl;
- cout << "4. Pick a domino from the boneyard" << endl;
- cout << "5. Pass your turn (only if bone yard is empty)" << endl;
- cout << "6. Print this menu" << endl;
- cout << "7. Quit" << endl << endl;
- cout << "Please enter a choice: ";
- cin >> choice;
- return choice;
- }
- void Player::menu(int choice) {
- choice = printMenu(choice);
- if (choice == 1) {
- //printDom(i);
- }
- else if (choice == 2) {
- head();
- }
- else if (choice == 3) {
- tail();
- }
- else if (choice == 4) {
- addBoneyard();
- }
- else if (choice == 5) {
- pass();
- }
- else if (choice == 6) {
- printMenu(choice);
- }
- else if (choice == 7) {
- exit(0);
- }
- return;
- }
- int main()
- {
- Domino play;
- Player play1;
- play1.menu(0);
- return 0;
- }
Add Comment
Please, Sign In to add comment