Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void cheat(string name, Node * (&undefeated)[20], int &players) {
- string loserName;
- int cheaterIndex;
- Node * current;
- Node * cheater;
- Node * exLoser;
- // find most recent opponent from cheater's tree
- for (int i = 0; i < players; i++) {
- if (undefeated[i]->name == name) {
- i = cheaterIndex;
- cheater = undefeated[i];
- }
- }
- // remove cheated game from cheater's tree
- while ((cheater->left->left != NULL) && (cheater->left->right != NULL)) {
- cheater = cheater->left;
- }
- loserName = cheater->right->name;
- // set new pointer to exloser
- exLoser = cheater->right;
- current = cheater->right;
- cheater->left = NULL;
- cheater->right = NULL;
- // modify game results in exloser's tree
- // set undefeated[i] to right node
- while ((current->left != NULL) && (current->right != NULL)) {
- current = current->left;
- }
- // create new node for winner on left and set name field
- current->left = new Node(loserName);
- current->right = undefeated[cheaterIndex];
- undefeated[cheaterIndex] = exLoser;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement