DzieckoBezZycia Temat założony przez niniejszego użytkownika |
Program sam sie wylacza po okolo 16 sekundach » 2012-09-19 18:49:05 Prosze zobaczyc: #include <iostream> #include <conio.h> #include <windows.h> #include <time.h>
using namespace std;
int score_pc = 0, score_player = 0, ktopierwszy;
int map[ 6 ][ 6 ] { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 1, 2, 1, 2, 0, 0, 1, 0, 1, 0, 0, 2, 1, 2, 1, 2, 0, 0, 1, 0, 1, 0 };
class Game { public: void start() { cout << "Siema XD\n"; getch(); } void ruch_gracza2() { char ruch2 = getch(); switch( ruch2 ) { case 'q': if( map[ 1 ][ 1 ] != 3 ) map[ 1 ][ 1 ] = 4; break; case 'w': if( map[ 1 ][ 3 ] != 3 ) map[ 1 ][ 3 ] = 4; break; case 'e': if( map[ 1 ][ 5 ] != 3 ) map[ 1 ][ 5 ] = 4; break; case 'a': if( map[ 3 ][ 1 ] != 3 ) map[ 3 ][ 1 ] = 4; break; case 's': if( map[ 3 ][ 3 ] != 3 ) map[ 3 ][ 3 ] = 4; break; case 'd': if( map[ 3 ][ 5 ] != 3 ) map[ 3 ][ 5 ] = 4; break; case 'z': if( map[ 5 ][ 1 ] != 3 ) map[ 5 ][ 1 ] = 4; break; case 'x': if( map[ 5 ][ 3 ] != 3 ) map[ 5 ][ 3 ] = 4; break; case 'c': if( map[ 5 ][ 5 ] != 3 ) map[ 5 ][ 5 ] = 4; break; } } void reset_map() { map[ 1 ][ 1 ] = 0; map[ 1 ][ 3 ] = 0; map[ 1 ][ 5 ] = 0; map[ 3 ][ 1 ] = 0; map[ 3 ][ 3 ] = 0; map[ 3 ][ 5 ] = 0; map[ 5 ][ 1 ] = 0; map[ 5 ][ 3 ] = 0; map[ 5 ][ 5 ] = 0; } void win() { score_player++; reset_map(); } void noob() { score_pc++; reset_map(); } void wygrana_kompa() { if( map[ 1 ][ 1 ] == 4 && map[ 1 ][ 3 ] == 4 && map[ 1 ][ 5 ] == 4 ) noob(); if( map[ 3 ][ 1 ] == 4 && map[ 3 ][ 3 ] == 4 && map[ 3 ][ 5 ] == 4 ) noob(); if( map[ 5 ][ 1 ] == 4 && map[ 5 ][ 3 ] == 4 && map[ 5 ][ 5 ] == 4 ) noob(); if( map[ 1 ][ 1 ] == 4 && map[ 3 ][ 1 ] == 4 && map[ 5 ][ 1 ] == 4 ) noob(); if( map[ 1 ][ 3 ] == 4 && map[ 3 ][ 3 ] == 4 && map[ 5 ][ 3 ] == 4 ) noob(); if( map[ 1 ][ 5 ] == 4 && map[ 3 ][ 5 ] == 4 && map[ 5 ][ 5 ] == 4 ) noob(); if( map[ 1 ][ 1 ] == 4 && map[ 3 ][ 3 ] == 4 && map[ 5 ][ 5 ] == 4 ) noob(); if( map[ 5 ][ 1 ] == 4 && map[ 3 ][ 3 ] == 4 && map[ 1 ][ 5 ] == 4 ) noob(); } void wygrana_gracza() { if( map[ 1 ][ 1 ] == 3 && map[ 1 ][ 3 ] == 3 && map[ 1 ][ 5 ] == 3 ) win(); if( map[ 3 ][ 1 ] == 3 && map[ 3 ][ 3 ] == 3 && map[ 3 ][ 5 ] == 3 ) win(); if( map[ 5 ][ 1 ] == 3 && map[ 5 ][ 3 ] == 3 && map[ 5 ][ 5 ] == 3 ) win(); if( map[ 1 ][ 1 ] == 3 && map[ 3 ][ 1 ] == 3 && map[ 5 ][ 1 ] == 3 ) win(); if( map[ 1 ][ 3 ] == 3 && map[ 3 ][ 3 ] == 3 && map[ 5 ][ 3 ] == 3 ) win(); if( map[ 1 ][ 5 ] == 3 && map[ 3 ][ 5 ] == 3 && map[ 5 ][ 5 ] == 3 ) win(); if( map[ 1 ][ 1 ] == 3 && map[ 3 ][ 3 ] == 3 && map[ 5 ][ 5 ] == 3 ) win(); if( map[ 5 ][ 1 ] == 3 && map[ 3 ][ 3 ] == 3 && map[ 1 ][ 5 ] == 3 ) win(); } void ruch_gracza() { char ruch = getch(); switch( ruch ) { case '7': if( map[ 1 ][ 1 ] != 4 ) map[ 1 ][ 1 ] = 3; break; case '8': if( map[ 1 ][ 3 ] != 4 ) map[ 1 ][ 3 ] = 3; break; case '9': if( map[ 1 ][ 5 ] != 4 ) map[ 1 ][ 5 ] = 3; break; case '4': if( map[ 3 ][ 1 ] != 4 ) map[ 3 ][ 1 ] = 3; break; case '5': if( map[ 3 ][ 3 ] != 4 ) map[ 3 ][ 3 ] = 3; break; case '6': if( map[ 3 ][ 5 ] != 4 ) map[ 3 ][ 5 ] = 3; break; case '1': if( map[ 5 ][ 1 ] != 4 ) map[ 5 ][ 1 ] = 3; break; case '2': if( map[ 5 ][ 3 ] != 4 ) map[ 5 ][ 3 ] = 3; break; case '3': if( map[ 5 ][ 5 ] != 4 ) map[ 5 ][ 5 ] = 3; break; } } void draw_map() { for( int i = 0; i < 6; i++ ) { for( int j = 0; j < 6; j++ ) { switch( map[ i ][ j ] ) { case 0: cout << " "; break; case 1: cout << "|"; break; case 2: cout << "-"; break; case 3: cout << "X"; break; case 4: cout << "0"; break; } } cout << endl; } } void czy_wygrana() { wygrana_kompa(); wygrana_gracza(); } };
int main() { Game g; g.start(); system( "cls" ); srand( time( 0 ) ); ktopierwszy = rand() % 50; cout << "ZACZYNA:"; system( "cls" ); if( ktopierwszy == 1 || ktopierwszy == 0 ) { for(;; ) { cout << "\n " << score_player << ":" << score_pc; cout << endl; g.draw_map(); g.ruch_gracza2(); g.czy_wygrana(); system( "cls" ); cout << "\n " << score_player << ":" << score_pc; cout << endl; g.draw_map(); g.ruch_gracza(); g.czy_wygrana(); system( "cls" ); } } if( ktopierwszy == 2 ) { for(;; ) { cout << "\n " << score_player << ":" << score_pc; cout << endl; g.draw_map(); g.ruch_gracza(); g.czy_wygrana(); system( "cls" ); cout << "\n " << score_player << ":" << score_pc; cout << endl; g.draw_map(); g.ruch_gracza2(); g.czy_wygrana(); system( "cls" ); } } return 0; }
|
|
Mrovqa |
» 2012-09-19 19:00:52 Debuguj. Myślisz, że chciałoby się komuś sprawdzać tyle kodu? |
|
poldek |
» 2012-09-19 19:06:17 srand( time( 0 ) ); ktopierwszy = rand() % 50;
i if( ktopierwszy == 1 || ktopierwszy == 0 ) { for(;; ) { [...] } }
if( ktopierwszy == 2 ) { for(;; ) { [...] } }
W ogole rozumiesz co piszesz ? Od razu po uruchomieniu program mi sie zamyka ... zgadni dlaczego... Jak cos znajde to ci napisze. Btw. rozdziel ten kod na kilka plikow i pisz czytelniej ledwo sie moge z tego odczytac. Powinienes sobie sam znalesc takie bledy w programie, to twoj program :) |
|
DzieckoBezZycia Temat założony przez niniejszego użytkownika |
» 2012-09-19 21:32:59 To z ktopierwszy znalazlem juz. Wiem, ale pomyslalem, ze moze to byc cos z brakiem konstruktorow czy cos takiego. Czy w tym moze byc problem? |
|
DejaVu |
» 2012-09-19 22:35:10 Czy w tym moze byc problem?
|
Wydawało mi się, że programowanie polega na samodzielnym rozwiązywaniu problemów, a nie pytaniu co i rusz na forum 'gdzie jest błąd'. Od dłuższego czasu zadajesz pytania w stylu "znajdźcie mi błąd bo coś nie działa". Większość problemów wynika z braku znajomości podstaw programowania - weź sobie to do serca i zacznij pracować nad tym. Jeżeli pytasz nas 'gdzie jest błąd' to jest to równoważne z tym, że nie rozumiesz co piszesz, a zatem zlepiasz kod z innych zamiast go tworzyć na podstawie zdobytej wiedzy. |
|
bingo009 |
» 2012-09-20 21:46:22 Wez ta klase wpakuj do innego pliku i nie pisz odrazu cial funkcji w klasie. Przepraszam za brak polskich znakow, ale nie mam ich w telefonie. |
|
GoldWolf |
» 2012-09-21 08:23:18 PoldekCię naprowadził błąd jest tutaj ktopierwszy = rand() % 50; Nie znając podstaw i tak tego nie ruszysz. Mam inne pytanie bo u mnie jest błąd już na początku: error C2470: 'map' : looks like a function definition, but there is no parameter list; skipping apparent body |
int map[ 6 ][ 6 ] { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 1, 2, 1, 2, 0, 0, 1, 0, 1, 0, 0, 2, 1, 2, 1, 2, 0, 0, 1, 0, 1, 0 }; Dla mnie tutaj jest błąd, ale nie wiem inne kompilatory to puszczają, albo ja o czymś nie wiem? Używam - Microsoft Visual Studio 2010 Version 10.0.30319.1 (Installed Version: VC Express). |
|
DzieckoBezZycia Temat założony przez niniejszego użytkownika |
» 2012-09-21 19:10:53 Jak juz mowilem zauwazylem to wczesniej, ale nie to jest przyczyna wylaczenia po 16 sekundach. Sprobuje zrobic petle opozniajaca, ale teraz mam powazniejszy problem.
PS: Cos musi byc u cb, bo moj kompilator uznaje to za poprawne (uzywam Code-Blocks)
Dodanie opozniacza jednak nie zalatwilo sprawy... Bede jeszcze myslal. |
|
« 1 » 2 |