Kolko i krzyzyk, c++, rysowanie planszy
Ostatnio zmodyfikowano 2014-11-04 14:26
Memento96 Temat założony przez niniejszego użytkownika |
Kolko i krzyzyk, c++, rysowanie planszy » 2014-10-31 20:09:50 Witam, mam taki o to kod #include <iostream> #include <stdlib.h>
using namespace std;
void rysowanie( char plansza[] ); void ruchy( char plansza[], char & gracz ); bool wygrana( char plansza[], char gracz ); bool remis( char plansza[] ); int main()
{ char plansza[ 10 ]; char wybor, gracz, wybor1; cout << "Gra w kolko i krzyzyk \n\nChcesz zagrac? T/N: "; cin >> wybor1; if( wybor1 == 't' || wybor1 == 'T' ) { do { for( int i = 1; i <= 9; i++ ) plansza[ i ] = ' '; gracz = 'O'; while( !wygrana( plansza, 'O' ) && !wygrana( plansza, 'X' ) && !remis( plansza ) ) ruchy( plansza, gracz ); cout << "Chcesz zagrac jeszcze raz? T "; cin >> wybor; system( "cls" ); } while(( wybor == 't' ) ||( wybor == 'T' ) ); } else return 0; }
void rysowanie( char plansza[] )
{ cout << endl << endl; for( int j = 1, i = 0; j <= 9; j++, i++ ) { cout << plansza[ j ] << i; if( j % 3 ) cout << " |"; else if( j != 9 ) cout << "\n---+---+---\n"; else cout << endl; } cout << endl << endl; }
bool remis( char plansza[] )
{ for( int i = 1; i <= 9; i++ ) if( plansza[ i ] == ' ' ) return false; rysowanie( plansza ); cout << "\nRemis :c \n\n"; return true; }
bool wygrana( char plansza[], char gracz )
{ bool sprawdzanie; sprawdzanie = false; int i; for( i = 1; i <= 7; i += 3 ) sprawdzanie |=(( plansza[ i ] == gracz ) &&( plansza[ i + 1 ] == gracz ) &&( plansza[ i + 2 ] == gracz ) ); for( i = 1; i <= 3; i++ ) { sprawdzanie |=(( plansza[ i ] == gracz ) &&( plansza[ i + 3 ] == gracz ) &&( plansza[ i + 6 ] == gracz ) ); sprawdzanie |=(( plansza[ 1 ] == gracz ) &&( plansza[ 5 ] == gracz ) &&( plansza[ 9 ] == gracz ) ); sprawdzanie |=(( plansza[ 3 ] == gracz ) &&( plansza[ 5 ] == gracz ) &&( plansza[ 7 ] == gracz ) ); } if( sprawdzanie ) { rysowanie( plansza ); cout << " \n Gracz " << gracz << " Wygral! \n"; return true; } return false; }
void ruchy( char plansza[], char & gracz )
{ int ruch; rysowanie( plansza ); cout << "\nGracz: " << gracz << "\nTwoj ruch : \n"; cin >> ruch; cout << endl; if( cin.fail() ) { cin.clear(); cin.sync(); system( "cls" ); rysowanie( plansza ); cout << "Podaj inna pozycje mniejsza od 10, wieksza od 0 \n"; cout << "\nGracz: " << gracz << "\nTwoj ruch : \n"; cin >> ruch; } if(( ruch >= 1 ) &&( ruch < 10 ) &&( plansza[ ruch ] == ' ' ) &&( plansza[ ruch ] != ruch ) ) { plansza[ ruch ] = gracz; gracz =( gracz == 'O' ) ? 'X' : 'O'; system( "cls" ); } else { system( "cls" ); cout << "Podaj inna pozycje mniejsza od 10, wieksza od 0 \n"; } }
Tak wiem, system ssie, ale to i tak jest żeby jakoś wyglądało podczas działania ;P Mój problem jest taki chce żeby wyświetlało plansze tak jak to robi teraz (numeruje) ale chce żeby po ruchu zamieniało tą cyfrę na znak 'X' lub 'O' jednak nie mam pojęcia jak się za to zabrać, może coś poradzicie? |
|
Rashmistrz |
» 2014-10-31 22:28:44 C:\pomagam22.cpp||In function 'void rysowanie(char*)':| C:\pomagam22.cpp|33|error: 'j' was not declared in this scope| C:\pomagam22.cpp|39|error: 'cout' does not name a type| C:\pomagam22.cpp|40|error: expected declaration before '}' token| ||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 2 second(s)) ===|
Emmmm... Ja bym zrobił wypisywanie numerka gdy pole nie było jeszcze użyte. |
|
Memento96 Temat założony przez niniejszego użytkownika |
» 2014-11-01 19:40:36 Wtedy wyświetla całą planszę (od 1 do 9) i odrazu wypisuję remis, kod działa tylko na Win :) Ref. |
|
Memento96 Temat założony przez niniejszego użytkownika |
» 2014-11-04 10:25:05 Wie ktoś, coś? |
|
1aam2am1 |
» 2014-11-04 14:11:19 W rysowaniu cout << plansza[ j ] << i;
W tej linijce rysujesz całą planszę i dodatkowo numery. Więc co się dziwisz. Edit. if( plansza[ j ] != ' ' ) { cout << plansza[ j ]; } else { cout << i; }
|
|
Memento96 Temat założony przez niniejszego użytkownika |
» 2014-11-04 14:26:45 Teraz wyświetla liczby od 1 do 9 nad planszą i nic więcej, więc to nie to :) (nadal wyświetla remis.) |@edit dobra, działa ;3 |
|
« 1 » |