Advertisement
rekinos

Untitled

Jul 7th, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <unistd.h>
  4. #include <cstdlib>
  5. #include <string>
  6. #include <sstream>
  7. #include <cstdio>
  8. #include <conio.h>
  9. #include <fstream>
  10. #include <sys/stat.h>
  11. #include <stdio.h>
  12. #include <ctime>
  13. #include <time.h>
  14.  
  15.  
  16. using namespace std;
  17.  
  18. void console (int x, int y){
  19. HANDLE okno = GetStdHandle(STD_OUTPUT_HANDLE);
  20.  
  21. COORD size;
  22. size.X = x;
  23. size.Y = x;
  24.  
  25. SetConsoleScreenBufferSize(okno, size);
  26.  
  27. }
  28.  
  29. int wstep () {
  30. MessageBoxA (NULL, "Warcaby by Arkadiusz Wróbel! \nUpewnij siê czy masz w³¹czony capslock", "Warcaby", MB_ICONEXCLAMATION ) ;
  31. char data;
  32. SetConsoleTitleA( "Warcaby by Arkadiusz Wróbel" ) ;
  33. cout << "Witaj w grze warcaby!" << endl;
  34. cout << endl;
  35. cout << endl;
  36. cout << " MENU GLOWNE: " << endl;
  37. cout << " WCISNIJ KLAWISZ 1 ABY URUCHOMIC GRE MULTIPLAYER " <<endl;
  38. cout << " WCISNIJ KLAWISZ 2 ABY URUCHOMIC GRE SINGLE " <<endl;
  39. cout << " WCISNIJ KLAWISZ 3 ABY WYLACZYC GRE " <<endl;
  40. data = getch();
  41. return data;
  42. }
  43.  
  44. string nazwa (){
  45. string gracz;
  46. cin >> gracz;
  47. return gracz;
  48. }
  49.  
  50. void czysc(){
  51. HANDLE hOut;
  52. hOut = GetStdHandle(STD_OUTPUT_HANDLE);
  53. cout << "CLEANED" << endl << endl;
  54. }
  55.  
  56. void clear() {
  57. system("cls");
  58. }
  59.  
  60. string explode ( const string & str, const char ch, const unsigned int v)
  61. {
  62. string ret = "";
  63. for( size_t i = 0, tmp = 0; i < str.size(); ++i ) {
  64. if( str[ i ] == ch ) {
  65. if( tmp > v ) break;
  66. else ++tmp;
  67.  
  68. }
  69. else if ( tmp == v ) ret += str[ i ];
  70. }
  71. return ret;
  72. }
  73.  
  74. void biale_tlo(){
  75. HANDLE hOut; // Uchwyt kolorow
  76. hOut = GetStdHandle( STD_OUTPUT_HANDLE ); //Przypisujemy do zmiennej
  77. SetConsoleTextAttribute( hOut, BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE );
  78.  
  79. }
  80.  
  81. void brazowe_tlo(){
  82. HANDLE hOut; // Uchwyt kolorow
  83. hOut = GetStdHandle ( STD_OUTPUT_HANDLE ); //Przypisujemy do zmiennej
  84. SetConsoleTextAttribute( hOut, BACKGROUND_GREEN | BACKGROUND_RED );
  85.  
  86. }
  87. void biala_szachownica( string text, bool newline){
  88. HANDLE hOut; // Uchwyt kolorow
  89. hOut = GetStdHandle ( STD_OUTPUT_HANDLE ); //Przypisujemy do zmiennej
  90. SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
  91. if(newline == true) {
  92. cout << text << endl;
  93.  
  94. }else {
  95. cout << text;
  96. }
  97. }
  98. void generuj_kolor(int nr, bool biale){
  99. if(biale != true) {
  100. nr++;
  101. }
  102. if(nr % 2 == 0){
  103. brazowe_tlo();
  104. }else{
  105. biale_tlo;
  106. }
  107.  
  108. }
  109.  
  110. void generuj_linie (bool zamiana, int tab[], int licznik) {
  111. char alfabet[8] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'h'};
  112. cout << " ";
  113. // FOR POCZTKOWY !!!!!
  114. for (int up = 1; up <=8; up++) {
  115. // Zaczynamy dla nieparzytych = bialemu
  116. biala_szachownica ("", false );
  117. generuj_kolor (up, zamiana);
  118. cout << " ";
  119.  
  120.  
  121. }
  122. // przeskakujemy nizej
  123. biala_szachownica("", true);
  124. // Tutaj wyœwietlamy pionka if jest
  125. cout << alfabet[licznik] << " ";
  126. for (int center = 1; center <= 8; center++){
  127. if(tab[center-1] == 1) {
  128. biala_szachownica("", false);
  129. generuj_kolor (center, zamiana);
  130. cout << " w ";
  131. }else if(tab[center-1] == 2) {
  132. biala_szachownica("", false);
  133. generuj_kolor(center, zamiana);
  134. cout <<" B ";
  135.  
  136. }
  137. else if(tab[center-1] == 3) {
  138. biala_szachownica ("", false);
  139. generuj_kolor(center, zamiana);
  140. cout <<" W_W ";
  141.  
  142. } else if(tab[center-1] == 4) {
  143. biala_szachownica ("", false);
  144. generuj_kolor(center, zamiana);
  145. cout <<" B-B ";
  146.  
  147. }else{
  148. biala_szachownica("", false);
  149. generuj_kolor(center , zamiana);
  150. cout << " ";
  151. for(int line=1; line<=8; line++){
  152. biala_szachownica("", false);
  153. generuj_kolor(line, zamiana);
  154. cout <<" ";
  155. }
  156. biala_szachownica("", true);
  157.  
  158. }
  159. }
  160. }
  161. void tworzenie_plikow(string const_prog){
  162. string data[8] = {"line_0.txt", "line_1.txt", "line_2.txt", "line_3.txt", "line_4.txt", "line_5.txt", "line_6.txt", "line_7.txt"} ;
  163. string co = "copy" + const_prog + "\\data\\";
  164. string gdzie = " " + const_prog + "\\temp_data\\temp_" ;
  165.  
  166. system("mkdir temp_data");
  167.  
  168.  
  169. for(int x = 0; x <= 7; x++){
  170.  
  171. string temp = co + data[x] + gdzie + data[x];
  172. char* buf = new char [temp.size()+1];
  173. strcpy(buf, temp.c_str());
  174. system(buf);
  175. }
  176.  
  177. }
  178. void plansza(string const_prog){
  179. string data[8] = {"line_0.txt", "line_1.txt", "line_2.txt", "line_3.txt", "line_4.txt", "line_5.txt", "line_6.txt", "line_7.txt"} ;
  180. string gdzie = " " + const_prog + "\\temp_data\\temp_" ;
  181. string temps[8];
  182.  
  183. for(int i = 0; 1 <=7; i++){
  184. string temp = gdzie + data[i];
  185. char* buf = new char[temp.size()+1];
  186. strcpy(buf,temp.c_str());
  187.  
  188. char temp_line[25];
  189. FILE *zw;
  190. zw=fopen(buf,"r");
  191. fgets(temp_line,25,zw); //czytanie pliku.
  192. temps[i] = temp_line;
  193. fclose(zw);
  194. }
  195. int tab[8];
  196. for(int x = 0; x <= 7; x++){
  197. for(int y = 0; y <= 7; y++){
  198. if(explode (temps[x], ' ', y ) != "0" ){
  199. if(explode (temps[x], ' ', y) == "W-1"){
  200. tab[y] = 1;
  201.  
  202. }else if(explode (temps[x], ' ', y) == "B-1"){
  203. tab[y] = 2;
  204.  
  205. }else if(explode (temps[x], ' ', y) == "W-2"){
  206. tab[y] = 3;
  207.  
  208. }else if(explode (temps[x], ' ', y) == "B-2"){
  209. tab[y] = 4;
  210. }
  211.  
  212. }else{
  213. tab[y] = 0;
  214. }
  215. }
  216. if((x+2) % 2 == 0){
  217. generuj_linie (true, tab, x);
  218.  
  219. }else {
  220. generuj_linie(false, tab, x);
  221. }
  222. }
  223.  
  224. }
  225. string czytaj_ruch(int z ) {
  226. if(z == 1) {
  227. cout << "Wybierz pionka: np. HS: ";
  228.  
  229. }else{
  230. cout << "Wskaz gdzie ma isc: ";
  231. }
  232.  
  233. char alfabet[8] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'};
  234. char liczby[8] = {'1', '2', '3', '4', '5', '6', '7', '8'};
  235. string temp_move;
  236. int error = 0;
  237.  
  238.  
  239.  
  240.  
  241. while (error ==0){
  242. cin >> temp_move;
  243.  
  244. char* buf = new char[temp_move.size()];
  245. strcpy(buf,temp_move.c_str());
  246.  
  247. for(int i=0; i <=7; i++){
  248. for(int x=0; x<=7; x++){
  249. if(alfabet[i] == buf[0] && liczby[x] == buf [1]){
  250. cout << "Wybrales: " << temp_move << endl;
  251. return temp_move;
  252. }
  253. }
  254.  
  255. }
  256. cout << "Bledne dane " << endl;
  257.  
  258. }
  259.  
  260. }
  261.  
  262.  
  263. bool veryfikuj(string moves[], string const_prog, int kto){
  264.  
  265. char alfabet2[8] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'};
  266. char liczby2[8] = {'1', '2', '3', '4', '5', '6', '7', '8'};
  267. string data2[8] = {"line_0.txt", "line_1.txt", "line_2.txt", "line_3.txt", "line_4.txt", "line_5.txt", "line_6.txt", "line_7.txt"} ;
  268. string mozliwe_ruchy[4];
  269. string dane = const_prog + "\\temp_data\\temp_" ;
  270. int jaki_plik;
  271. int jaka_liczba;
  272. int errors=0;
  273.  
  274.  
  275. string plik [8];
  276.  
  277. char* movin = new char[moves[0].size()+1];
  278. strcpy (movin, moves[0].c_str());
  279.  
  280. char* movout = new char[moves[1].size()+1];
  281. strcpy(movout, moves[1].c_str());
  282.  
  283.  
  284. for(int x=0; x<=7; x++){
  285.  
  286. if(alfabet2[x] == movin[0]){
  287. jaki_plik = x;
  288.  
  289. }
  290. }
  291. for(int i=0; i<=7; i++){
  292.  
  293. if(liczby2[i] == movin[1]){
  294. jaka_liczba = i;
  295.  
  296. }
  297. }
  298. for(int n = 0; n<=7; n++) {
  299.  
  300. string temp = dane +data2[n];
  301. char* buf = new char[temp.size()+1];
  302. strcpy(buf,temp.c_str());
  303.  
  304. char temp_line[25];
  305. FILE *zw;
  306. zw=fopen(buf,"r");
  307. fgets(temp_line,25,zw);
  308. plik[n] = temp_line;
  309. fclose(zw);
  310. }
  311.  
  312. if(kto == 1){
  313. if(explode(plik[jaki_plik], ' ', jaka_liczba) == "W-1"){
  314. string litera(1, alfabet2[jaki_plik+1]);
  315. string liczA(1, liczby2[jaka_liczba+1]);
  316. string liczB(1, liczby2[jaka_liczba-1]);
  317. mozliwe_ruchy[0] = litera + liczA;
  318. mozliwe_ruchy[1] = litera + liczB;
  319. mozliwe_ruchy[2] = "";
  320. mozliwe_ruchy[3] = "";
  321. }else{
  322. string literaA(1, alfabet2[jaki_plik+1]);
  323. string literaB(1, alfabet2[jaki_plik-1]);
  324. string liczA(1, liczby2[jaka_liczba+1]);
  325. string liczB(1, liczby2[jaka_liczba-1]);
  326. mozliwe_ruchy[0] = literaA + liczA;
  327. mozliwe_ruchy[1] = literaA + liczB;
  328. mozliwe_ruchy[2] = literaB + liczB;
  329. mozliwe_ruchy[3] = literaB + liczA;
  330. }
  331.  
  332.  
  333.  
  334. }else{
  335.  
  336. if(explode(plik[jaki_plik], ' ', jaka_liczba) == "B-1"){
  337. string litera(1, alfabet2[jaki_plik-1]);
  338. string liczA(1, liczby2[jaka_liczba+1]);
  339. string liczB(1, liczby2[jaka_liczba-1]);
  340. mozliwe_ruchy[0] = litera + liczA;
  341. mozliwe_ruchy[1] = litera + liczB;
  342. mozliwe_ruchy[2] = "";
  343. mozliwe_ruchy[3] = "";
  344. }else{
  345. string literaA(1, alfabet2[jaki_plik+1]);
  346. string literaB(1, alfabet2[jaki_plik-1]);
  347. string liczA(1, liczby2[jaka_liczba+1]);
  348. string liczB(1, liczby2[jaka_liczba-1]);
  349. mozliwe_ruchy[0] = literaA + liczA;
  350. mozliwe_ruchy[1] = literaA + liczB;
  351. mozliwe_ruchy[2] = literaB + liczB;
  352. mozliwe_ruchy[3] = literaA + liczA;
  353. }
  354. }
  355.  
  356. if(explode(plik[jaki_plik], ' ', jaka_liczba) !="0"){
  357.  
  358. if(kto == 1 && explode(plik[jaki_plik], ' ', jaka_liczba) !="W-1"){
  359. if(kto == 1 && explode(plik[jaki_plik], ' ', jaka_liczba) != "W-2"){
  360. return false;
  361. }
  362. }
  363.  
  364. if(kto == 0 && explode(plik[jaki_plik], ' ', jaka_liczba) != "B-1"){
  365. if(kto == 0 && explode(plik[jaki_plik], ' ', jaka_liczba) != "B-2"){
  366. return false;
  367. }
  368. }
  369. }else{
  370. return false;
  371. }
  372.  
  373. for(int x=0; x<=7; x++){
  374.  
  375. if(alfabet2[x] == movout[0]){
  376. jaki_plik = x;
  377. }
  378. }
  379. for(int i=0; i<=7; i++){
  380. if(liczby2[i] == movout[i]){
  381. jaka_liczba = i;
  382. }
  383. }
  384.  
  385. //SPRAWDZAMY DRUGI RUCH
  386.  
  387. for(int a=0; a<=3; a++){
  388.  
  389. if(moves[1] == mozliwe_ruchy[a]){
  390. errors++;
  391. }
  392. }
  393. if(errors == 0){
  394. return false;
  395. }
  396.  
  397. string tmp = explode(plik[jaki_plik],' ', jaka_liczba);
  398.  
  399. if(tmp !="0"){
  400. if(kto == 1 && tmp == "W-1" || kto == 1 && tmp == "W-2" ){
  401. return false;
  402. }
  403. if(kto == 0 && tmp == "B-1" || kto == 0 && tmp == "B-2"){
  404. return false;
  405. }
  406. }
  407.  
  408. return true;
  409.  
  410.  
  411.  
  412.  
  413. }
  414.  
  415. int rusz(int kiery, string moves[], string const_prog){
  416.  
  417. string plik[8];
  418. char alfabet2[8] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'};
  419. char liczby2[8] = {'1', '2', '3', '4', '5', '6', '7', '8'};
  420. string data2[8] = { "line_0.txt", "line_1.txt", "line_2.txt", "line_3.txt", "line_4.txt", "line_5.txt", "line_6.txt", "line_7.txt"};
  421. string dane = const_prog + "\\temp_data\\temp_";
  422. int jaki_plik, jaka_liczba;
  423.  
  424. char* movin = new char[moves[0].size()+1];
  425. strcpy(movin,moves[0].c_str());
  426.  
  427. char* movout = new char[moves[1].size()+1];
  428. strcpy(movout,moves[1].c_str());
  429.  
  430. for(int n = 0; n<=7; n++){
  431.  
  432. string temp = dane + data2[n];
  433. char* buf = new char[temp.size()+1];
  434. strcpy(buf,temp.c_str());
  435.  
  436. char temp_line[25];
  437. FILE *zw;
  438. zw=fopen(buf, "r");
  439. fgets(temp_line,25,zw);
  440. plik[n] = temp_line;
  441. fclose(zw);
  442.  
  443. }
  444.  
  445. for(int x=0; x<=7; x++){
  446.  
  447. if(alfabet2[x] == movin[0]){
  448. jaki_plik = x;
  449. }
  450. if(liczby2[x] == movin[1]){
  451. jaka_liczba = x;
  452. }
  453. }
  454.  
  455. string zmiana, dopis;
  456. string co_przenies = explode(plik[jaki_plik], ' ',jaka_liczba);
  457. for(int p=0; p<=7; p++){
  458. if(p == jaka_liczba){
  459. zmiana = zmiana + "0 ";
  460. }else{
  461. zmiana = zmiana + explode(plik[jaki_plik], ' ', p) + " ";
  462. }
  463. }
  464.  
  465. char* zapis = new char[zmiana.size()+1];
  466. strcpy(zapis,zmiana.c_str());
  467.  
  468. string temp2 = dane + data2[jaki_plik];
  469. char* bef = new char[temp2.size()+1];
  470. strcpy(bef,temp2.c_str());
  471.  
  472. ofstream NowyPlik;
  473. NowyPlik.open(bef);
  474. NowyPlik << zmiana;
  475. NowyPlik.close();
  476.  
  477. for(int x=0; x<=7; x++){
  478. if(alfabet2[x] == movout[0]){
  479. jaki_plik = x;
  480. {
  481. if(liczby2[x] == movout[1]){
  482. jaka_liczba = x;
  483. }
  484. }
  485.  
  486.  
  487. // jesli dojdzie do konca planszy
  488. if(kiery == 1 && alfabet2[jaki_plik] == 'H' && co_przenies == "W-1"){
  489. co_przenies = "W-2";
  490. }
  491. if(kiery == 1 && alfabet2[jaki_plik] == 'H' && co_przenies == "B-1"){
  492. co_przenies = "B-2";
  493. }
  494.  
  495. // end jesli dojdzie do konca planszy
  496.  
  497. for(int c=0; c<=7; c++){
  498. if(c == jaka_liczba){
  499. dopis = dopis + co_przenies + " ";
  500. }else{
  501. dopis = dopis + explode(plik[jaki_plik], ' ', c) + " ";
  502. }
  503. }
  504.  
  505. char* dop = new char[dopis.size()+1];
  506. strcpy(dop,dopis.c_str());
  507.  
  508. string temp3 = dane + data2[jaki_plik];
  509. char*beff = new char[temp3.size()+1];
  510. strcpy(beff,temp3.c_str());
  511.  
  512. ofstream NowyPlika;
  513. NowyPlika.open(beff);
  514. NowyPlika << dopis;
  515. NowyPlika.close();
  516.  
  517.  
  518. if(kiery == 1 ){
  519. return 0;
  520. }else{
  521. return 1;
  522. }
  523.  
  524.  
  525.  
  526. }
  527.  
  528. bool end_it(string const_prog, string gracz[], int kto);
  529.  
  530. string plik[8];
  531. string data2[8] = { "line_0.txt", "line_1.txt", "line_2.txt", "line_3.txt", "line_4.txt", "line_5.txt", "line_6.txt","line_7txt"};
  532. string dane = const_prog + "\\temp_data\\temp_";
  533. int ile_W = 0;
  534. int ile_B = 0;
  535.  
  536. for(int n = 0; n<=7; n++){
  537.  
  538. string temp = dane + data2[n];
  539. char* buf = new char[temp.size()+1];
  540. strcpy(buf,temp.c_str());
  541.  
  542.  
  543. char temp_line[25];
  544. FILE *zw;
  545. zw=fopen(buf,"r");
  546. fgets(temp_line,25,zw);
  547. plik[n] = temp_line;
  548. fclose(zw);
  549.  
  550. }
  551.  
  552. for(int i=0; i<=7;i++){
  553. for(int x=0; x<=7; x++){
  554.  
  555. if(explode(plik[i], ' ', x) != "0"){
  556. if(explode(plik[i], ' ', x) == "W-1" || explode(plik[i], ' ', x) == "W-2"){
  557. ile_W++;
  558. }
  559. if (explode(plik[i], ' ', x) == "B-1" || explode(plik[1], ' ', x) == "B-2"){
  560. ile_B++;
  561. }
  562. }
  563. }
  564. }
  565.  
  566. if(ile_W == 0 || ile_B == 0){
  567. MessageBoxA( NULL, "Gra skonczona! \nDzieki za gre", "Warcaby", MB_ICONEXCLAMATION );
  568. clear();
  569. return true;
  570. }
  571. return false;
  572.  
  573.  
  574. }
  575.  
  576. bool gra();
  577. tworzenie_plikow("D:\\Warcaby");
  578. bool game_over = false;
  579. string move[2];
  580. string gracze[2];
  581. int player_move = 1;
  582. time_t start, koniec;
  583. double roznica;
  584.  
  585.  
  586. clear();
  587. cout << "Podaj nick bialego" << endl;
  588. gracze[1] = nazwa();
  589. cout << "Podaj nick czarnego" << endl;
  590. gracze[0] = nazwa();
  591. clear();
  592.  
  593. time( & start );
  594. while(game_over == false){
  595.  
  596. clear();
  597. cout << "---------------------------------------------" << endl;
  598. cout << " Teraz ruszaja: " << endl;
  599.  
  600. if(player_move == 1){
  601. cout << " " << gracze [1] << " Biale (W)" << endl;
  602. }else{
  603. cout << " " << gracze [0] << " Czarne (B)" << endl;
  604. }
  605. cout << "----------------------------------------------" << endl;
  606.  
  607. plansza("D:\\Warcaby");
  608. moves[0] = czytaj_ruch(1);
  609. moves[1] = czytaj_ruch(0);
  610.  
  611. if(veryfikuj(moves, "D:\\Warcaby", player_move) == false){
  612. cout << "NIE MOZESZ TAK RUSZYC" << endl;
  613. }else{
  614. cout << "Twoj ruch: " << moves[0] << " ---> " << moves[1] << endl;
  615. int tmp_move = player_move;
  616. player_move = rusz(tmp_move, moves, "D:\\Warcaby");
  617. }
  618.  
  619. system("pause");
  620. game_over = ("D:\\Warcaby", gracze, player_move);
  621.  
  622. }
  623. time( & koniec );
  624. roznica = difftime( koniec, start );
  625. cout << "Poprzednia gra trwala: " << roznica << "sek" << endl;
  626.  
  627.  
  628.  
  629.  
  630. return false;
  631. }
  632.  
  633.  
  634. bool single(){
  635. tworzenie_plikow("D:\\Warcaby");
  636. bool game_over = false;
  637. string moves[2];
  638. string gracze[1];
  639. int player_move = 1;
  640.  
  641. clear();
  642. cout << "Podaj twoj nick:" << endl;
  643. gracze[0] = nazwa();
  644. clear();
  645.  
  646.  
  647. while(game_over == false){
  648. game_over = ("D:\\Warcaby", gracze, player_move);
  649. clear();
  650. cout << "----------------------------------------------" << endl;
  651. cout << " Teraz ruszaja: " << endl;
  652.  
  653. if(player_move == 1){
  654. cout << " " << gracze[0] << "Biale (W)" << endl;
  655. }else{
  656. cout << " Komputer: Czarne (B)" << endl;
  657. }
  658. cout << "----------------------------------------------" << endl;
  659.  
  660. plansza("D:\\Warcaby");
  661.  
  662. if(player_move == 1){
  663. moves[0] = czytaj_ruch(1);
  664. moves[1] = czytaj_ruch(0);
  665.  
  666. if(veryfikuj(moves, "D:\\Warcaby", player_move) == false){
  667. cout << "NIE MOZESZ TAK RUSZYC" << endl;
  668.  
  669. }else{
  670. cout << "Twoj ruch: " << moves[0] << " ---> " << endl;
  671. int tmp_move = player_move;
  672. player_move = rusz(tmp_move, moves, "D:\\Warcaby");
  673. }
  674. }else{
  675. int bot_rand[2];
  676.  
  677. char alf[8] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'};
  678. char lb[8] = {'1', '2', '3', '4', '5', '6', '7', '8'};
  679. string data2[8] = { "line_0.txt", "line_1.txt", "line_2.txt", "line_3.txt", "line_4.txt", "line_5.txt", "line_6.txt", "line_7.txt"};
  680. string mozliwe_ruchy[4];
  681. string dane = "D:\\Warcaby\\temp_data\\temp_";
  682. string plik[8];
  683. string wysli[2];
  684. bool find = false;
  685.  
  686. while(find == false){
  687.  
  688. for(int i=0;i<=2;i++){
  689. if (i>=0){
  690. bot_rand[i] = rand()%8;
  691. }
  692. }
  693.  
  694. string lit(1, alf[bot_rand[0]]);
  695. string cyf(1,lb[bot_rand[1]]);
  696. string moves = lit + cyf;
  697.  
  698. char* movin = new char[moves.size()+1];
  699. strcpy(movin,moves.c_str());
  700.  
  701. for(int n = 0; n<=7; n++){
  702.  
  703. string temp = dane + data2[n];
  704. char* buf = new char (temp.size()+1);
  705. strcpy(buf,temp.c_str());
  706.  
  707. char temp_line[25];
  708. FILE *zw;
  709. zw=fopen(buf,"r");
  710. fgets(temp_line,25,zw);
  711. plik[n] = temp_line;
  712. fclose(zw);
  713. }
  714.  
  715. if(explode(plik[bot_rand[0]], ' ', bot_rand[1]) == "B-1"){
  716.  
  717. string litera(1, alf[bot_rand[0]-1]);
  718. string liczA(1, lb[bot_rand[1]+1]);
  719. string liczB(1, lb[bot_rand[1]-1]);
  720. mozliwe_ruchy[0] = litera + liczA;
  721. mozliwe_ruchy[1] = litera + liczB;
  722. mozliwe_ruchy[2] = "";
  723. mozliwe_ruchy[3] = "";
  724.  
  725. }else if(explode(plik[bot_rand[0]], ' ', bot_rand[1]) == "B-2"){
  726.  
  727. string literaA(1, alf[bot_rand[0]+1]);
  728. string literaB(1, alf[bot_rand[0]-1]);
  729. string liczA(1, lb[bot_rand[1]+1]);
  730. string liczB(1, lb[bot_rand[1]-1]);
  731. mozliwe_ruchy[0] = literaA + liczA;
  732. mozliwe_ruchy[1] = literaA + liczB;
  733. mozliwe_ruchy[2] = literaB + liczB;
  734. mozliwe_ruchy[3] = literaB + liczA;
  735. }
  736.  
  737. for(int c=0; c<=3; c++){
  738. wysli[0] = moves;
  739. wysli[1] = mozliwe_ruchy[c];
  740.  
  741. char* mov = new char[wysli[1].size()+1];
  742. strcpy(mov,wysli[1].c_str());
  743.  
  744. for(int i=0; i <=7; i++){
  745. for(int x=0; x<=7; x++){
  746. if(alf[i] == mov[0] && lb[x] == mov[1]){
  747. if(veryfikuj(wysli, "D:\\Warcaby", 0) != false){
  748.  
  749. cout << "Ruch kompa: " << moves << "---> " << mozliwe_ruchy[c] << endl;
  750. int tmp_move = player_move;
  751. player_move = rusz(tmp_move, wysli, "D:\\Warcaby");
  752. find = true;
  753. c=3;
  754.  
  755. }
  756. }
  757. }
  758. }
  759.  
  760.  
  761. }
  762. }
  763.  
  764. system("pause");
  765.  
  766. }
  767. }
  768. return false;
  769. }
  770.  
  771.  
  772. // ROZGRYWKA
  773. int main(){
  774.  
  775. srand( time ( NULL ) );
  776. bool exit = false;
  777. console(80, 25);
  778.  
  779. while(exit == false){
  780. switch (wstep()){
  781. case '1':
  782. clear();
  783. cout << "Powodzenia!" << endl;
  784. cout << "Gra zaraz sie rozpocznie!" << endl;
  785. cout << "Ladowanie: ";
  786. for(int x = 0 ; x <= 25; x++){
  787.  
  788. Sleep(70);
  789. cout << ">" << flush;
  790. }
  791. system("cls");
  792.  
  793.  
  794.  
  795. break;
  796. case '2':
  797. clear();
  798.  
  799. cout << "Nie wygrasz z komputerem!" << endl;
  800. cout << "Ladowanie: ";
  801. for(int x = 0; x <= 25; x++){
  802.  
  803. Sleep(110);
  804. cout << ">" << flush;
  805. }
  806.  
  807. exit = single();
  808.  
  809. break;
  810. case '3':
  811. system("cls");
  812. cout << "Zapraszamy ponownie!" << endl;
  813. exit = true;
  814. system("pause");
  815. break;
  816. default:
  817.  
  818. system("cls");
  819. cout << "Wykryto niepoprawny znak !!!!" << endl;
  820. cout << endl;
  821. system("pause");
  822. system("cls");
  823.  
  824. break;
  825. }
  826.  
  827.  
  828.  
  829. }
  830.  
  831. return 0;
  832. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement