Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include "cards.h"
- #include <locale>
- #include <vector>
- using namespace std;
- int main(int argv, char** argc){
- if(argv < 3){
- cout << "Please provide 2 file names" << endl;
- return 1;
- }
- ifstream cardFile1 (argc[1]);
- ifstream cardFile2 (argc[2]);
- string line;
- if (cardFile1.fail() || cardFile2.fail() ){
- cout << "Could not open file " << argc[2];
- return 1;
- }
- PlayerBST alice, bob;
- //Read each file
- while (getline (cardFile1, line) && (line.length() > 0)){
- char c = line[0];
- char faceCard;
- vector<int> valueOfFaceCard;
- int index = 0;
- faceCard = line[2];
- switch (faceCard) {
- case 'j':
- valueOfFaceCard.push_back(11);
- break;
- case 'q':
- valueOfFaceCard.push_back(12);
- break;
- case 'k':
- valueOfFaceCard.push_back(13);
- break;
- case 'a':
- valueOfFaceCard.push_back(2);
- break;
- default:
- index--;
- break;
- }
- index++;
- int n = atoi((line.substr(2,2)).c_str());
- alice.insert(new CardNode(c, n));
- }
- cardFile1.close();
- while (getline (cardFile2, line) && (line.length() > 0)){
- char c = line[0];
- char faceCard;
- vector<int> valueOfFaceCard;
- int index = 0;
- faceCard = line[2];
- switch (faceCard) {
- case 'j':
- valueOfFaceCard.push_back(11);
- break;
- case 'q':
- valueOfFaceCard.push_back(12);
- break;
- case 'k':
- valueOfFaceCard.push_back(13);
- break;
- case 'a':
- valueOfFaceCard.push_back(2);
- break;
- default:
- index--;
- break;
- }
- index++;
- int n = atoi((line.substr(2,2)).c_str());
- bob.insert(new CardNode(c, n));
- }
- cardFile2.close();
- CardNode *root;
- CardNode *pre, *suc;
- CardNode *a = alice.root;
- CardNode *b = bob.root;
- bool game = false;
- int counter = 0;
- while (!game){
- if(counter % 2 == 0){
- bool found = false;
- a = alice.root;
- while (!root){
- b = bob.root;
- while (a != NULL && b != NULL){
- alice.min(alice.root);
- if (*a == *b){
- cout << "Bob picked matching card " << b->suit << b->value << endl;
- alice.find(b);
- // this doesn't work
- //alice.successor(alice.card, alice.root);
- CardNode *atemp = a;
- CardNode *btemp = b;
- alice.remove(atemp);
- bob.remove(btemp);
- found = true;
- }
- }
- }
- }else{
- // ignore all of this
- /*bool found = false;
- b = bob.root;
- while (!root){
- a = alice.root;
- while (a != NULL && b != NULL){
- bob.min(bob.root);
- if (*a == *b){
- cout << "Bob picked matching card " << b->suit << b->value << endl;
- CardNode *atemp = a;
- CardNode *btemp = b;
- alice.remove(atemp);
- bob.remove(btemp);
- found = true;
- }
- if (!found)
- a = a->left;
- }
- if (!found)
- b = b->right;
- }
- if (!found){
- game = true;
- }*/
- counter++;
- }
- cout << endl << "Alice's cards:" << endl;
- alice.printInOrder();
- cout << endl << "Bob's cards:" << endl;
- bob.printInOrder();
- cout << endl;
- return 0;
- }
- }
- //alice.predecessor(new PlayerBST::CardNode('h', 9), alice.root);
- /*char c = line[0];
- //int n, i;
- //char suit;
- int cvalue;
- char n = '$';
- //int n = atoi((line.substr(2,2)).c_str());
- while (!cardFile2.eof()){
- if (isalpha(line.substr(2,1)).c_str){
- switch (line) {
- case 'j':
- cvalue = 11;
- break;
- case 'q':
- cvalue = 12;
- break;
- case 'k':
- cvalue = 13;
- break;
- case 'a':
- cvalue = 2;
- break;
- }
- return cvalue;
- }else{
- int cvalue = atoi((line.substr(2,2)).c_str());
- }
- }
- //bob.insert(new CardNode(c, n));
- }
- cardFile2.close();*/
- /*char alpha;
- int digit;
- struct charType{ char alpha, int digit };
- charType charType(char c){
- if(isdigit(c)){
- return digit;
- }
- if(isalpha(c)){
- return alpha;
- }
- }*/
- /*alice.insert(new PlayerBST::CardNode('h', 9));
- alice.insert(new PlayerBST::CardNode('c', 10));
- alice.insert(new PlayerBST::CardNode('s', 3));
- alice.insert(new PlayerBST::CardNode('c', 2));
- alice.insert(new PlayerBST::CardNode('h', 10));
- alice.insert(new PlayerBST::CardNode('d', 3));
- //cout << "ROOT IS: " << alice.root->suit << alice.root->value << endl;
- alice.printInOrder();
- cout << endl;*/
- // Driver program to test above function
- //alice.predecessor(new PlayerBST::CardNode('h', 9), alice.root);
- //alice.min(alice.root);
- //alice.find(new PlayerBST::CardNode('h', 9));
- //alice.find(new PlayerBST::CardNode('d', 9));
- // this currently does not work
- /*if (pre != NULL)
- cout << "Predecessor is " << alice.root->suit << " " << alice.root->value << endl;
- else
- cout << "No Predecessor" << endl;
- alice.successor(new PlayerBST::CardNode('h', 9), alice.root);
- if (suc != NULL)
- cout << "Successor is " << alice.root->suit << " " << alice.root->value << endl;
- else
- cout << "No Successor" << endl;
- printf("\nDelete c10 \n");
- alice.remove(new PlayerBST::CardNode('c', 10));
- alice.printInOrder();
- cout << endl;
- */
- //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement