Wyświetla źle zmienną (zamiast 'x' to '88')
Ostatnio zmodyfikowano 2015-09-22 16:01
Crisu Temat założony przez niniejszego użytkownika |
Wyświetla źle zmienną (zamiast 'x' to '88') » 2015-09-20 15:08:19 Hej! na początek kod: #include <iostream> #include <cstdlib> #include <cstdio> using namespace std; int main() { int a, b, c, d, e, f, g, h, i; int p, q, spr = 1; string imie; const char z = 'X', y = 'O'; a = 1; b = 2; c = 3; d = 4; e = 5; f = 6; g = 7; h = 8; i = 9; { cout << "Kolko i krzyzyk\n"; cout << "Jak sie nazywasz??"; cin >> imie; cout << "Czesc, " << imie; do { system( "cls" ); if( a == z && b == z && c == z ) { cout << "Wygrałes!!\n"; spr = 2; } else if( d == z && e == z && f == z ) { cout << "Wygrałes!!\n"; spr = 2; } else if( g == z && h == z && i == z ) { cout << "Wygrałes!!\n"; spr = 2; } else if( a == z && d == z && g == z ) { cout << "Wygrałes!!\n"; spr = 2; } else if( b == z && e == z && h == z ) { cout << "Wygrałes!!\n"; spr = 2; } else if( c == z && f == z && i == z ) { cout << "Wygrałes!!\n"; spr = 2; } else if( a == z && e == z && i == z ) { cout << "Wygrałes!!\n"; spr = 2; } else if( c == z && e == z && g == z ) { cout << "Wygrałes!!\n"; spr = 2; } else if( a == y && b == y && c == y ) { cout << "Przegrales!!\n"; spr = 2; } else if( d == y && e == y && f == y ) { cout << "Przegrales!!\n"; spr = 2; } else if( g == y && h == y && i == y ) { cout << "Przegrales!!\n"; spr = 2; } else if( a == y && d == y && g == y ) { cout << "Przegrales!!\n"; spr = 2; } else if( b == y && e == y && h == y ) { cout << "Przegrales!!\n"; spr = 2; } else if( c == y && f == y && i == y ) { cout << "Przegrales!!\n"; spr = 2; } else if( a == y && e == y && i == y ) { cout << "Przegrales!!\n"; spr = 2; } else if( c == y && e == y && g == y ) { cout << "Przegrales!!\n"; spr = 2; } else { cout << "Czesc, " << imie; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; cout << "\n\nGdzie chcesz postawic krzyzyk??\n"; cin >> p; system( "cls" ); if( p == 1 ) { if( a == 1 ) { a = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else if( p == 2 ) { if( b == 2 ) { b = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else if( p == 3 ) { if( c == 3 ) { c = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else if( p == 4 ) { if( d == 4 ) { d = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else if( p == 5 ) { if( e == 5 ) { e = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else if( p == 6 ) { if( f == 6 ) { f = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else if( p == 7 ) { if( g == 7 ) { g = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else if( p == 8 ) { if( h == 8 ) { h = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else if( p == 9 ) { if( i == 9 ) { i = z; cout << "\n#####\n#" << a << b << c << "#\n#" << d << e << f << "#\n#" << g << h << i << "#\n#####\n"; } else { cout << "Wprowadz inny znak\n"; cin >> p; } } else { cout << "Wprowadz inny znak\n"; cin >> p; } } } while( spr == 1 ); system( "pause" ); return 0; } }
i taki problem: jak kompiluje i wprowadzam "p", to powinno mi podstawić pod wskazane p 'X', tymczasem wyświetla 88. I drugie pytanko:gdy da się dwa razy to samo miejsce lub znak z poza 1-9 to wyskakuje okno podaj inny znak i my wpisujemy, jednak program co bysmy nie wpisali spyta się poraz kolejny o wpisanie, a nie wstawi X tam gdzie podamy. Nie miało by to wiekszego znaczenia, ale gdy dokoncze program to miedzy "wstaw inny znak" a następną prośbą i wpisanie bedzie wstawienie znaku przez komputer, tak wiec gracz, który poda zle miejsce straci miejsce. Dziękuje |
|
notabigthreat |
» 2015-09-20 16:00:34 |
|
Crisu Temat założony przez niniejszego użytkownika |
» 2015-09-20 16:10:35 Czyli potem mam sprawdzać to tak?? if( a == 'X' && b == 'X' && c == 'X' ) { cout << "Wygrałes!!\n"; spr = 2; }
a co z drugą częścią?? |
|
notabigthreat |
» 2015-09-20 16:20:50 |
|
Crisu Temat założony przez niniejszego użytkownika |
» 2015-09-20 18:41:44 No dobra. Czyli muszę pod a podstawić z. Ktoś mi powie jak to zrobić, skoro to są dwa inne typy? Widziałem coś takiego: liczba na znak - char (liczba lub zmienna typu int) np char(66) -> B ale to działa gdy chcę podstawić konkretny znak, a ja potrzebuje tam zmiennej, no chyba że mogę porównać potem czy w miejscu zmiennej a pisze X (jeśli tak to powiedzcie jak). BTW, żeby program wylosował mi jakas liczbe z zakresu od 1 do 9 moge po prostu napisać: int p; p = 1 || p = 2 || p = 3( itd.)
?? |
|
wojownik266 |
» 2015-09-20 18:55:01 Żeby wylosować jakąś liczbe to wydaje mi się że powinieneś użyć tych funkcji: include < ctime >
srand( time( NULL ) ); rand() % 9;
|
|
Flozze |
Program » 2015-09-22 16:01:34 Jeśli można uznać to za właściwą poradę, to polecałbym Ci przeczytanie lekcji na temat instrukcji SWITCH i tablic jednowymiarowych i napisanie programu od nowa. Wydaje mi się, że to by było najprostsze i najlepsze rozwiązanie ;) |
|
« 1 » |