Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include "cards.h"
  5. #include <locale>
  6. #include <vector>
  7.  
  8. using namespace std;
  9.  
  10. int main(int argv, char** argc){
  11. if(argv < 3){
  12. cout << "Please provide 2 file names" << endl;
  13. return 1;
  14. }
  15.  
  16. ifstream cardFile1 (argc[1]);
  17. ifstream cardFile2 (argc[2]);
  18. string line;
  19.  
  20. if (cardFile1.fail() || cardFile2.fail() ){
  21. cout << "Could not open file " << argc[2];
  22. return 1;
  23. }
  24.  
  25. PlayerBST alice, bob;
  26.  
  27. //Read each file
  28. while (getline (cardFile1, line) && (line.length() > 0)){
  29. char c = line[0];
  30. char faceCard;
  31. vector<int> valueOfFaceCard;
  32. int index = 0;
  33. faceCard = line[2];
  34. switch (faceCard) {
  35. case 'j':
  36. valueOfFaceCard.push_back(11);
  37. break;
  38. case 'q':
  39. valueOfFaceCard.push_back(12);
  40. break;
  41. case 'k':
  42. valueOfFaceCard.push_back(13);
  43. break;
  44. case 'a':
  45. valueOfFaceCard.push_back(2);
  46. break;
  47. default:
  48. index--;
  49. break;
  50. }
  51. index++;
  52. int n = atoi((line.substr(2,2)).c_str());
  53. alice.insert(new CardNode(c, n));
  54. }
  55.  
  56. cardFile1.close();
  57.  
  58. while (getline (cardFile2, line) && (line.length() > 0)){
  59. char c = line[0];
  60. char faceCard;
  61. vector<int> valueOfFaceCard;
  62. int index = 0;
  63. faceCard = line[2];
  64. switch (faceCard) {
  65. case 'j':
  66. valueOfFaceCard.push_back(11);
  67. break;
  68. case 'q':
  69. valueOfFaceCard.push_back(12);
  70. break;
  71. case 'k':
  72. valueOfFaceCard.push_back(13);
  73. break;
  74. case 'a':
  75. valueOfFaceCard.push_back(2);
  76. break;
  77. default:
  78. index--;
  79. break;
  80. }
  81. index++;
  82. int n = atoi((line.substr(2,2)).c_str());
  83. bob.insert(new CardNode(c, n));
  84. }
  85. cardFile2.close();
  86.  
  87. CardNode *root;
  88. CardNode *pre, *suc;
  89.  
  90. CardNode *a = alice.root;
  91. CardNode *b = bob.root;
  92.  
  93. bool game = false;
  94. int counter = 0;
  95. while (!game){
  96. if(counter % 2 == 0){
  97. bool found = false;
  98. a = alice.root;
  99. while (!root){
  100. b = bob.root;
  101. while (a != NULL && b != NULL){
  102. alice.min(alice.root);
  103. if (*a == *b){
  104. cout << "Bob picked matching card " << b->suit << b->value << endl;
  105. alice.find(b);
  106. // this doesn't work
  107. //alice.successor(alice.card, alice.root);
  108. CardNode *atemp = a;
  109. CardNode *btemp = b;
  110. alice.remove(atemp);
  111. bob.remove(btemp);
  112. found = true;
  113. }
  114. }
  115. }
  116. }else{
  117. // ignore all of this
  118. /*bool found = false;
  119. b = bob.root;
  120. while (!root){
  121. a = alice.root;
  122. while (a != NULL && b != NULL){
  123. bob.min(bob.root);
  124. if (*a == *b){
  125. cout << "Bob picked matching card " << b->suit << b->value << endl;
  126. CardNode *atemp = a;
  127. CardNode *btemp = b;
  128. alice.remove(atemp);
  129. bob.remove(btemp);
  130. found = true;
  131. }
  132. if (!found)
  133. a = a->left;
  134. }
  135. if (!found)
  136. b = b->right;
  137. }
  138. if (!found){
  139. game = true;
  140. }*/
  141. counter++;
  142. }
  143. cout << endl << "Alice's cards:" << endl;
  144. alice.printInOrder();
  145. cout << endl << "Bob's cards:" << endl;
  146. bob.printInOrder();
  147. cout << endl;
  148. return 0;
  149. }
  150. }
  151.  
  152.  
  153. //alice.predecessor(new PlayerBST::CardNode('h', 9), alice.root);
  154.  
  155.  
  156. /*char c = line[0];
  157. //int n, i;
  158. //char suit;
  159. int cvalue;
  160. char n = '$';
  161.  
  162. //int n = atoi((line.substr(2,2)).c_str());
  163. while (!cardFile2.eof()){
  164. if (isalpha(line.substr(2,1)).c_str){
  165. switch (line) {
  166. case 'j':
  167. cvalue = 11;
  168. break;
  169. case 'q':
  170. cvalue = 12;
  171. break;
  172. case 'k':
  173. cvalue = 13;
  174. break;
  175. case 'a':
  176. cvalue = 2;
  177. break;
  178. }
  179. return cvalue;
  180. }else{
  181. int cvalue = atoi((line.substr(2,2)).c_str());
  182. }
  183. }
  184. //bob.insert(new CardNode(c, n));
  185. }
  186. cardFile2.close();*/
  187.  
  188.  
  189. /*char alpha;
  190. int digit;
  191. struct charType{ char alpha, int digit };
  192. charType charType(char c){
  193. if(isdigit(c)){
  194. return digit;
  195. }
  196. if(isalpha(c)){
  197. return alpha;
  198. }
  199. }*/
  200.  
  201.  
  202. /*alice.insert(new PlayerBST::CardNode('h', 9));
  203. alice.insert(new PlayerBST::CardNode('c', 10));
  204. alice.insert(new PlayerBST::CardNode('s', 3));
  205. alice.insert(new PlayerBST::CardNode('c', 2));
  206. alice.insert(new PlayerBST::CardNode('h', 10));
  207. alice.insert(new PlayerBST::CardNode('d', 3));
  208. //cout << "ROOT IS: " << alice.root->suit << alice.root->value << endl;
  209. alice.printInOrder();
  210. cout << endl;*/
  211.  
  212. // Driver program to test above function
  213. //alice.predecessor(new PlayerBST::CardNode('h', 9), alice.root);
  214. //alice.min(alice.root);
  215. //alice.find(new PlayerBST::CardNode('h', 9));
  216. //alice.find(new PlayerBST::CardNode('d', 9));
  217.  
  218.  
  219.  
  220. // this currently does not work
  221. /*if (pre != NULL)
  222. cout << "Predecessor is " << alice.root->suit << " " << alice.root->value << endl;
  223. else
  224. cout << "No Predecessor" << endl;
  225. alice.successor(new PlayerBST::CardNode('h', 9), alice.root);
  226. if (suc != NULL)
  227. cout << "Successor is " << alice.root->suit << " " << alice.root->value << endl;
  228. else
  229. cout << "No Successor" << endl;
  230.  
  231. printf("\nDelete c10 \n");
  232. alice.remove(new PlayerBST::CardNode('c', 10));
  233. alice.printInOrder();
  234. cout << endl;
  235. */
  236. //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement