Advertisement
SorinAlex

Tic Tac Toe in English

Feb 1st, 2014
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.21 KB | None | 0 0
  1. /* #include */
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5. #include <windows.h>
  6. #include <cstdlib>
  7. #include <ctime>
  8. #include <conio.h>
  9.  
  10. char gameboard[10],key;
  11. short score1,score2,gamemode;
  12. string name1,name2;
  13. HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
  14. CONSOLE_CURSOR_INFO CursorInfo;
  15. struct Color
  16. {
  17. Color(unsigned short c): cul(c) {}
  18. Color() {}
  19. unsigned short cul;
  20. };
  21.  
  22. ostream& operator<< (ostream& os,Color c)
  23. {
  24. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c.cul);
  25. return os;
  26. }
  27.  
  28. Color colarray[9];
  29. const Color NC=7;
  30. const Color RED=12;
  31. const Color GREEN=10;
  32. const Color GOLD=6;
  33. const Color GREENBK=10+(8<<4);
  34. const Color REDBK=12+(8<<4);
  35. void clearscreen()
  36. {
  37. COORD home;home.X=0;home.Y=0;DWORD Written;
  38. FillConsoleOutputCharacter(hOut,(TCHAR)' ',(80*300),home,&Written);
  39. FillConsoleOutputAttribute(hOut,7,(80*300),home,&Written);
  40. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),home);
  41. SetConsoleTextAttribute(hOut,7);
  42. }
  43. void wait()
  44. {
  45. INPUT_RECORD InputRecord;
  46. DWORD Writtten;
  47. HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE);
  48. while(true)
  49. {
  50. ReadConsoleInputA(hStdIn,&InputRecord,1,&Writtten);
  51. if(InputRecord.EventType==KEY_EVENT&&InputRecord.Event.KeyEvent.bKeyDown) break;
  52. }
  53. }
  54. void AiMove()
  55. {
  56. srand(time(0));
  57. do{
  58. key=rand()%9;
  59. }while(gameboard[key]=='X'||gameboard[key]=='0');
  60. key+=49;
  61. if(gameboard[0]=='0'&&gameboard[1]=='0'&&gameboard[2]=='3') key='3';
  62. if(gameboard[1]=='0'&&gameboard[2]=='0'&&gameboard[0]=='1') key='1';
  63. if(gameboard[0]=='0'&&gameboard[2]=='0'&&gameboard[1]=='2') key='2';
  64. if(gameboard[3]=='0'&&gameboard[4]=='0'&&gameboard[5]=='6') key='6';
  65. if(gameboard[4]=='0'&&gameboard[5]=='0'&&gameboard[3]=='4') key='4';
  66. if(gameboard[3]=='0'&&gameboard[5]=='0'&&gameboard[4]=='5') key='5';
  67. if(gameboard[6]=='0'&&gameboard[7]=='0'&&gameboard[8]=='9') key='9';
  68. if(gameboard[7]=='0'&&gameboard[8]=='0'&&gameboard[6]=='7') key='7';
  69. if(gameboard[0]=='0'&&gameboard[4]=='0'&&gameboard[8]=='9') key='9';
  70. if(gameboard[4]=='0'&&gameboard[8]=='0'&&gameboard[0]=='1') key='1';
  71. if(gameboard[0]=='0'&&gameboard[8]=='0'&&gameboard[4]=='5') key='5';
  72. if(gameboard[2]=='0'&&gameboard[4]=='0'&&gameboard[6]=='7') key='7';
  73. if(gameboard[4]=='0'&&gameboard[6]=='0'&&gameboard[2]=='3') key='3';
  74. if(gameboard[2]=='0'&&gameboard[6]=='0'&&gameboard[4]=='5') key='5';
  75. if(gameboard[0]=='0'&&gameboard[3]=='0'&&gameboard[6]=='7') key='7';
  76. if(gameboard[3]=='0'&&gameboard[6]=='0'&&gameboard[0]=='1') key='1';
  77. if(gameboard[0]=='0'&&gameboard[6]=='0'&&gameboard[3]=='4') key='4';
  78. if(gameboard[1]=='0'&&gameboard[4]=='0'&&gameboard[7]=='8') key='8';
  79. if(gameboard[4]=='0'&&gameboard[7]=='0'&&gameboard[1]=='2') key='2';
  80. if(gameboard[1]=='0'&&gameboard[7]=='0'&&gameboard[4]=='5') key='5';
  81. if(gameboard[2]=='0'&&gameboard[5]=='0'&&gameboard[8]=='9') key='9';
  82. if(gameboard[5]=='0'&&gameboard[8]=='0'&&gameboard[2]=='3') key='3';
  83. if(gameboard[2]=='0'&&gameboard[8]=='0'&&gameboard[5]=='6') key='6';
  84. if(gameboard[6]=='0'&&gameboard[8]=='0'&&gameboard[7]=='8') key='8';
  85. if(gameboard[0]=='0'&&gameboard[4]=='0'&&gameboard[8]=='9') key='9';
  86. ////// blocare
  87. if(gameboard[0]=='X'&&gameboard[1]=='X'&&gameboard[2]=='3') key='3';
  88. if(gameboard[1]=='X'&&gameboard[2]=='X'&&gameboard[0]=='1') key='1';
  89. if(gameboard[0]=='X'&&gameboard[2]=='X'&&gameboard[1]=='2') key='2';
  90. if(gameboard[3]=='X'&&gameboard[4]=='X'&&gameboard[5]=='6') key='6';
  91. if(gameboard[4]=='X'&&gameboard[5]=='X'&&gameboard[3]=='4') key='4';
  92. if(gameboard[3]=='X'&&gameboard[5]=='X'&&gameboard[4]=='5') key='5';
  93. if(gameboard[6]=='X'&&gameboard[7]=='X'&&gameboard[8]=='9') key='9';
  94. if(gameboard[7]=='X'&&gameboard[8]=='X'&&gameboard[6]=='7') key='7';
  95. if(gameboard[0]=='X'&&gameboard[4]=='X'&&gameboard[8]=='9') key='9';
  96. if(gameboard[4]=='X'&&gameboard[8]=='X'&&gameboard[0]=='1') key='1';
  97. if(gameboard[0]=='X'&&gameboard[8]=='X'&&gameboard[4]=='5') key='5';
  98. if(gameboard[2]=='X'&&gameboard[4]=='X'&&gameboard[6]=='7') key='7';
  99. if(gameboard[4]=='X'&&gameboard[6]=='X'&&gameboard[2]=='3') key='3';
  100. if(gameboard[2]=='X'&&gameboard[6]=='X'&&gameboard[4]=='5') key='5';
  101. if(gameboard[0]=='X'&&gameboard[3]=='X'&&gameboard[6]=='7') key='7';
  102. if(gameboard[3]=='X'&&gameboard[6]=='X'&&gameboard[0]=='1') key='1';
  103. if(gameboard[0]=='X'&&gameboard[6]=='X'&&gameboard[3]=='4') key='4';
  104. if(gameboard[1]=='X'&&gameboard[4]=='X'&&gameboard[7]=='8') key='8';
  105. if(gameboard[4]=='X'&&gameboard[7]=='X'&&gameboard[1]=='2') key='2';
  106. if(gameboard[1]=='X'&&gameboard[7]=='X'&&gameboard[4]=='5') key='5';
  107. if(gameboard[2]=='X'&&gameboard[5]=='X'&&gameboard[8]=='9') key='9';
  108. if(gameboard[5]=='X'&&gameboard[8]=='X'&&gameboard[2]=='3') key='3';
  109. if(gameboard[2]=='X'&&gameboard[8]=='X'&&gameboard[5]=='6') key='6';
  110. if(gameboard[6]=='X'&&gameboard[8]=='X'&&gameboard[7]=='8') key='8';
  111. if(gameboard[0]=='X'&&gameboard[4]=='X'&&gameboard[8]=='9') key='9';
  112. }
  113. void draw_gameboard()
  114. {
  115. cout
  116. <<name1<<" : "<<score1<<" "<<name2<<" : "<<score2<<endl<<endl
  117. <<" | | "<<endl
  118. <<" "<<colarray[0]<<gameboard[0]<<NC<<" | "<<colarray[1]<<gameboard[1]<<NC<<" | "<<colarray[2]<<gameboard[2]<<NC<<endl
  119. <<" | | "<<endl
  120. <<"-----|-----|-----"<<endl
  121. <<" | | "<<endl
  122. <<" "<<colarray[3]<<gameboard[3]<<NC<<" | "<<colarray[4]<<gameboard[4]<<NC<<" | "<<colarray[5]<<gameboard[5]<<NC<<endl
  123. <<" | | "<<endl
  124. <<"-----|-----|-----"<<endl
  125. <<" "<<colarray[6]<<gameboard[6]<<NC<<" | "<<colarray[7]<<gameboard[7]<<NC<<" | "<<colarray[8]<<gameboard[8]<<NC<<endl
  126. <<" | | "<<endl
  127. <<" | | "<<endl;
  128.  
  129. }
  130. short gamesover()
  131. {
  132. if(gameboard[0]==gameboard[1]&&gameboard[1]==gameboard[2]) {colarray[0].cul=13;colarray[1].cul=13;colarray[2].cul=13;return 1;}
  133. if(gameboard[3]==gameboard[4]&&gameboard[4]==gameboard[5]) {colarray[3].cul=13;colarray[4].cul=13;colarray[5].cul=13;return 1;}
  134. if(gameboard[6]==gameboard[7]&&gameboard[7]==gameboard[8]) {colarray[6].cul=13;colarray[7].cul=13;colarray[8].cul=13;return 1;}
  135. if(gameboard[0]==gameboard[3]&&gameboard[3]==gameboard[6]) {colarray[0].cul=13;colarray[3].cul=13;colarray[6].cul=13;return 1;}
  136. if(gameboard[1]==gameboard[4]&&gameboard[4]==gameboard[7]) {colarray[1].cul=13;colarray[4].cul=13;colarray[7].cul=13;return 1;}
  137. if(gameboard[2]==gameboard[5]&&gameboard[5]==gameboard[8]) {colarray[2].cul=13;colarray[5].cul=13;colarray[8].cul=13;return 1;}
  138. if(gameboard[0]==gameboard[4]&&gameboard[4]==gameboard[8]) {colarray[0].cul=13;colarray[4].cul=13;colarray[8].cul=13;return 1;}
  139. if(gameboard[2]==gameboard[4]&&gameboard[4]==gameboard[6]) {colarray[2].cul=13;colarray[4].cul=13;colarray[6].cul=13;return 1;}
  140. if(!(gameboard[0]=='1'||gameboard[1]=='2'||gameboard[2]=='3'||gameboard[3]=='4'))
  141. if(!(gameboard[4]=='5'||gameboard[5]=='6'||gameboard[6]=='7'||gameboard[7]=='8'||gameboard[8]=='9'))
  142. return -1;
  143. return 0;
  144. }
  145. void gotoxy_s(int x,int y,string text)
  146. {
  147. COORD CursorPos;
  148. CursorPos.X=x;CursorPos.Y=y;
  149. SetConsoleCursorPosition(hOut,CursorPos);
  150. cout<<text;
  151. }
  152. void gotoxy(short x,short y)
  153. {
  154. COORD CursorPos;
  155. CursorPos.X=x;CursorPos.Y=y;
  156. SetConsoleCursorPosition(hOut,CursorPos);
  157. }
  158. void clean()
  159. {
  160. gotoxy(0,0);
  161. for(int j=0;j<19;j++,cout<<" \n",Sleep(80));
  162. SetConsoleTextAttribute(hOut,7);
  163. gotoxy(0,0);
  164.  
  165. }
  166. #define menuselect() \
  167. for(j=0;j<5;j++)\
  168. {\
  169. gotoxy(24,MenuCords[j]);\
  170. SetConsoleTextAttribute(hOut,FOREGROUND_GREEN|FOREGROUND_INTENSITY);\
  171. cout<<' '<<MainMenu[j];\
  172. if(j==cursor)\
  173. {\
  174. gotoxy(24,MenuCords[j]);\
  175. SetConsoleTextAttribute(hOut,BACKGROUND_BLUE|BACKGROUND_RED|BACKGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY);\
  176. cout<<'>'<<MainMenu[cursor];\
  177. SetConsoleTextAttribute(hOut,FOREGROUND_GREEN|FOREGROUND_INTENSITY);\
  178. }\
  179. }\
  180. Sleep(80);\
  181. if(GetAsyncKeyState(VK_UP)) {if(cursor==0) cursor=4; else --cursor;}\
  182. if(GetAsyncKeyState(VK_DOWN)) {if(cursor==4) cursor=0; else ++cursor;}\
  183. if(_kbhit()) if(_getch()=='\r')\
  184. {\
  185. switch (cursor)\
  186. {\
  187. case 0: clean(); return 1; break;\
  188. case 1: clean(); return 2; break;\
  189. case 2: clean();\
  190. SetConsoleTextAttribute(hOut,FOREGROUND_BLUE|FOREGROUND_GREEN);\
  191. cout<<"###########################################"<<endl\
  192. <<"# #"<<endl\
  193. <<"# #"<<endl\
  194. <<"# #"<<endl\
  195. <<"# #"<<endl\
  196. <<"# #"<<endl\
  197. <<"# #"<<endl\
  198. <<"# #"<<endl\
  199. <<"# #"<<endl\
  200. <<"# #"<<endl\
  201. <<"# #"<<endl\
  202. <<"# #"<<endl\
  203. <<"# #"<<endl\
  204. <<"# #"<<endl\
  205. <<"# #"<<endl\
  206. <<"# #"<<endl\
  207. <<"# #"<<endl\
  208. <<"# #"<<endl\
  209. <<"###########################################"<<endl;\
  210. gotoxy(16,3);\
  211. cout<<GOLD<<"Instructions";\
  212. gotoxy(9,5);\
  213. cout<<"Keys 1,2,3,4,5,6,7,8,9 to";\
  214. gotoxy(4,8);\
  215. cout<<"select the square ,ENTER to confirm";\
  216. gotoxy(18,16);\
  217. cout<<"Press ENTER to continue";\
  218. while(_getch()!='\r'); goto MenuBeg; break;\
  219. case 3: clean();\
  220. SetConsoleTextAttribute(hOut,FOREGROUND_BLUE|FOREGROUND_GREEN);\
  221. cout<<"###########################################"<<endl\
  222. <<"# #"<<endl\
  223. <<"# #"<<endl\
  224. <<"# #"<<endl\
  225. <<"# #"<<endl\
  226. <<"# #"<<endl\
  227. <<"# #"<<endl\
  228. <<"# #"<<endl\
  229. <<"# #"<<endl\
  230. <<"# #"<<endl\
  231. <<"# #"<<endl\
  232. <<"# #"<<endl\
  233. <<"# #"<<endl\
  234. <<"# #"<<endl\
  235. <<"# #"<<endl\
  236. <<"# #"<<endl\
  237. <<"# #"<<endl\
  238. <<"# #"<<endl\
  239. <<"###########################################"<<endl;\
  240. gotoxy(18,3);\
  241. cout<<GOLD<<"Credits";\
  242. gotoxy(3,5);\
  243. cout<<"Programmer:Paraschiv Sorin(Sorin Alex)";\
  244. gotoxy(18,16);\
  245. cout<<"Press ENTER to continue";\
  246. while(_getch()!='\r'); goto MenuBeg; break;\
  247. case 4: return 3; break;\
  248. }\
  249. }
  250. short MainMenu()
  251. {
  252. GetConsoleCursorInfo(hOut,&CursorInfo);
  253. CursorInfo.bVisible=FALSE;
  254. SetConsoleCursorInfo(hOut,&CursorInfo);
  255. int len,y,i=0,border,j,cursor=0;
  256. string MainMenu[]={"Player vs Player","Vs Computer","Instructions","Credits","Quit"};
  257. short MenuCords[]={7,9,11,13,15};
  258. string holder=" ";
  259. string X[]=
  260. {" "
  261. ," "
  262. ," "
  263. ," "
  264. ," "
  265. ," "
  266. ,"X X"
  267. ," X X "
  268. ," X X "
  269. ," X "
  270. ," X X "
  271. ," X X "
  272. ,"X X"
  273. ," "
  274. ," "
  275. ," "
  276. ," "
  277. ," "
  278. };
  279. string Zero[]=
  280. {" "
  281. ," "
  282. ," "
  283. ," "
  284. ," "
  285. ," O "
  286. ," O O "
  287. ,"O O"
  288. ,"O O"
  289. ,"O O"
  290. ," O O "
  291. ," O "
  292. ," "
  293. ," "
  294. ," "
  295. ," "
  296. ," "
  297. ," "
  298. };
  299.  
  300. len=17;
  301. MenuBeg:
  302. gotoxy(0,0);
  303. SetConsoleTextAttribute(hOut,FOREGROUND_BLUE|FOREGROUND_GREEN);
  304. cout<<"######################";for(int border=0;border<20;++border,cout<<'\xcd');cout<<'\xbb'<<endl;
  305. cout<<"# # \xba"<<endl
  306. <<"# # \xba"<<endl
  307. <<"# # \xba"<<endl
  308. <<"# # \xba"<<endl
  309. <<"# # \xba"<<endl
  310. <<"# # \xba"<<endl
  311. <<"# # \xba"<<endl
  312. <<"# # \xba"<<endl
  313. <<"# # \xba"<<endl
  314. <<"# # \xba"<<endl
  315. <<"# # \xba"<<endl
  316. <<"# # \xba"<<endl
  317. <<"# # \xba"<<endl
  318. <<"# # \xba"<<endl
  319. <<"# # \xba"<<endl
  320. <<"# # \xba"<<endl
  321. <<"# # \xba"<<endl
  322. <<"######################";for(int border=0;border<20;++border,cout<<'\xcd');cout<<'\xbc'<<endl;
  323. gotoxy(26,4);
  324. cout<<RED<<"Tic Tac Toe";
  325. while(true){
  326. i++;
  327. for (y=0;y<len;y++)
  328. {
  329. SetConsoleTextAttribute(hOut,FOREGROUND_GREEN);
  330. gotoxy_s(2,1+y,X[y]);
  331. }
  332. for (y=0;y<len;y++)
  333. {
  334. SetConsoleTextAttribute(hOut,FOREGROUND_RED);
  335. gotoxy_s(13,1+y,Zero[y]);
  336. }
  337. holder = X[len];
  338. for (y=len;y>0;y--)
  339. {
  340. X[y]=X[y-1];
  341. }
  342. X[0]=holder;
  343. holder =Zero[0];
  344. for (y=0;y<len;y++)
  345. {
  346. Zero[y]=Zero[y+1];
  347. }
  348. Zero[len]=holder;
  349. menuselect();
  350. if(i==len+1)
  351. {
  352. i=0;
  353. menuselect();
  354. menuselect();
  355. menuselect();
  356. menuselect();
  357. menuselect();
  358. menuselect();
  359. menuselect();
  360. menuselect();
  361. menuselect();
  362. menuselect();
  363. menuselect();
  364. menuselect();
  365. menuselect();
  366. }
  367. }
  368. }
  369. int main()
  370. {
  371. SetConsoleTitleA((LPCSTR)"Tic Tac Toe");
  372. start:
  373. gamemode=MainMenu();
  374. CursorInfo.bVisible=TRUE;
  375. CursorInfo.dwSize=100;
  376. SetConsoleCursorInfo(hOut,&CursorInfo);
  377. clearscreen();
  378. score1=score2=0;
  379. if(gamemode==1)
  380. {
  381. cout<<"Player 1 name : ";cin>>name1;
  382. cout<<"Player 2 name : ";cin>>name2;
  383. }
  384. if(gamemode==2)
  385. {
  386. cout<<"Player name : ";cin>>name1;
  387. name2="Computer";
  388. }
  389. if(gamemode==3) return 0;
  390. short numarmiscari=1;int verif;
  391. char simbol,raspuns=' ';bool yesno=false;
  392. srand(time(0));
  393. inceput:
  394. verif=0;
  395. for(int i=0;i<10;i++) gameboard[i]=i+49;
  396. for(int i=0;i<10;i++) colarray[i].cul=8;
  397. while(verif==0)
  398. {
  399. clearscreen();
  400. simbol=(numarmiscari%2)?'X':'0';
  401. draw_gameboard();
  402. if(simbol=='X') cout<<"It's "<<name1<<" turn (X) "<<endl;
  403. if(simbol=='0') cout<<"It's "<<name2<<" turn (0) "<<endl;
  404. if(gamemode==1)
  405. cin>>key;
  406. if(gamemode==2)
  407. {
  408. if(simbol=='X')
  409. cin>>key;
  410. if(simbol=='0')
  411. {
  412. Sleep(rand()%400+200);
  413. AiMove();
  414. }
  415. }
  416. switch(key)
  417. {
  418. case '1':if(gameboard[0]=='1') {gameboard[0]=simbol;++numarmiscari;if(simbol=='X') colarray[0].cul=10;
  419. if(simbol=='0') colarray[0].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  420. case '2':if(gameboard[1]=='2') {gameboard[1]=simbol;++numarmiscari;if(simbol=='X') colarray[1].cul=10;
  421. if(simbol=='0') colarray[1].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  422. case '3':if(gameboard[2]=='3') {gameboard[2]=simbol;++numarmiscari;if(simbol=='X') colarray[2].cul=10;
  423. if(simbol=='0') colarray[2].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  424. case '4':if(gameboard[3]=='4') {gameboard[3]=simbol;++numarmiscari;if(simbol=='X') colarray[3].cul=10;
  425. if(simbol=='0') colarray[3].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  426. case '5':if(gameboard[4]=='5') {gameboard[4]=simbol;++numarmiscari;if(simbol=='X') colarray[4].cul=10;
  427. if(simbol=='0') colarray[4].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  428. case '6':if(gameboard[5]=='6') {gameboard[5]=simbol;++numarmiscari;if(simbol=='X') colarray[5].cul=10;
  429. if(simbol=='0') colarray[5].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  430. case '7':if(gameboard[6]=='7') {gameboard[6]=simbol;++numarmiscari;if(simbol=='X') colarray[6].cul=10;
  431. if(simbol=='0') colarray[6].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  432. case '8':if(gameboard[7]=='8') {gameboard[7]=simbol;++numarmiscari;if(simbol=='X') colarray[7].cul=10;
  433. if(simbol=='0') colarray[7].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  434. case '9':if(gameboard[8]=='9') {gameboard[8]=simbol;++numarmiscari;if(simbol=='X') colarray[8].cul=10;
  435. if(simbol=='0') colarray[8].cul=12;} else {clearscreen();draw_gameboard();cout<<RED<<"\nInvalid Move\n"<<NC;wait();}break;
  436. default:cout<<RED<<"\nInvalid Move\n"<<NC;wait();
  437. }
  438. verif=gamesover();
  439. if(verif==1)
  440. {
  441. clearscreen();draw_gameboard();
  442. if(simbol=='X')
  443. {cout<<endl<<name1<<" won !\n\n";++score1;}
  444. if(simbol=='0')
  445. {cout<<endl<<name2<<" won !\n\n";++score2;}
  446. CursorInfo.bVisible=FALSE;
  447. SetConsoleCursorInfo(hOut,&CursorInfo);
  448. cout<<"Do you wish to play again";
  449. gotoxy(26,16);cout<<GREEN<<"YES"<<NC<<'/'<<RED<<"NU";
  450. do{
  451. if(_kbhit()) raspuns=_getch();
  452. if(raspuns==75) {yesno=true;gotoxy(26,16);cout<<GREENBK<<"YES"<<NC<<'/'<<RED<<"NO";}
  453. if(raspuns==77) {yesno=false;gotoxy(26,16);cout<<GREEN<<"YES"<<NC<<'/'<<REDBK<<"NO";}
  454. Sleep(20);
  455. }while(raspuns!='\r');
  456. raspuns=0;
  457. if(yesno==true) goto inceput;
  458. if(yesno==false) goto start;
  459. }
  460. if(verif==-1)
  461. {
  462. clearscreen();draw_gameboard();
  463. cout<<GREEN<<"\nDraw !\n\n"<<NC;
  464. CursorInfo.bVisible=FALSE;
  465. SetConsoleCursorInfo(hOut,&CursorInfo);
  466. cout<<"Do you wish to play again";
  467. gotoxy(26,16);cout<<GREEN<<"YES"<<NC<<'/'<<RED<<"NO";
  468. do{
  469. if(_kbhit()) raspuns=_getch();
  470. if(raspuns==75) {yesno=true;gotoxy(26,16);cout<<GREENBK<<"YES"<<NC<<'/'<<RED<<"NO";}
  471. if(raspuns==77) {yesno=false;gotoxy(26,16);cout<<GREEN<<"YES"<<NC<<'/'<<REDBK<<"NO";}
  472. Sleep(20);
  473. }while(raspuns!='\r');
  474. raspuns=0;
  475. if(yesno==true) goto inceput;
  476. if(yesno==false) goto start;
  477. }
  478. }
  479. wait();
  480. return 0;
  481. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement