Bimbol |
» 2013-07-20 14:53:29 Możesz spróbować z tym kodem: http://cpp0x.pl/forum/temat/?id=11705 |
|
damian19dk Temat założony przez niniejszego użytkownika |
» 2013-07-20 14:59:51 Spróbowałem skompilować kod, który podał Bimbol z Debug\Release i wszystko działa, ale mój kod widocznie musi być niepoprawny, gdyż nawet z Debug\Release pojawiają się błędy. Mea maxima culpa... |
|
pekfos |
» 2013-07-20 15:00:49 ale mój kod widocznie musi być niepoprawny |
Nie dołączyłeś <cstdlib> w GAME.cpp, uLiczbaZgodnychPol to stała, switch ma niepoprawną strukturę, itd.. |
|
|
damian19dk Temat założony przez niniejszego użytkownika |
» 2013-07-20 15:01:52 OK, dokonam paru poprawek i odezwę się, jak wyjdzie. //EDIT bool Ruch( unsigned uNumerPola ) { if( g_StanGry != GS_MOVE ) return false; if( !( uNumerPola >= 1 && uNumerPola <= 9 ) ) return false; unsigned uY =( uNumerPola - 1 ) / 3; unsigned uX =( uNumerPola - 1 ) % 3; if( g_Plansza[ uY ][ uX ] == FLD_EMPTY ) { g_Plansza[ uY ][ uX ] = static_cast < FIELD >( g_AktualnyGracz ); } else return false; int LINIE[][ 3 ][ 2 ] = { { { 0, 0 }, { 0, 1 }, { 0, 2 } }, { { 1, 0 }, { 1, 1 }, { 1, 2 } }, { { 2, 0 }, { 2, 1 }, { 2, 2 } }, { { 0, 0 }, { 1, 0 }, { 2, 0 } }, { { 0, 1 }, { 1, 1 }, { 2, 1 } }, { { 0, 2 }, { 1, 2 }, { 2, 2 } }, { { 0, 0 }, { 1, 1 }, { 2, 2 } }, { { 2, 0 }, { 1, 1 }, { 0, 2 } } }; FIELD Pole, ZgodnePole; int uLiczbaZgodnychPol; for( int i = 0; i < 8; ++i ) { Pole = ZgodnePole = FLD_EMPTY; uLiczbaZgodnychPol = 0; for( int j = 0; j < 3; ++j ) { Pole = g_Plansza[ LINIE[ i ][ j ][ 0 ][ LINIE[ i ][ j ][ 1 ] ] ]; if( Pole != ZgodnePole ) { ZgodnePole = Pole; uLiczbaZgodnychPol = 1; } else ++uLiczbaZgodnychPol; } if( uLiczbaZgodnychPol == 3 && ZgodnePole != FLD_EMPTY ) { g_StanGry = GS_WON; return true; } } int uLiczbaZapelnionychPol = 0; for( int i = 0; i < 3; ++i ) for( int j = 0; j < 3; ++j ) if( g_Plansza[ i ][ j ] != FLD_EMPTY ) ++uLiczbaZapelnionychPol; if( uLiczbaZapelnionychPol == 3 * 3 ) { g_StanGry = GS_DRAW; return true; } g_AktualnyGracz == SGN_CIRCLE ? SGN_CROSS: SGN_CIRCLE; return true; }
Pozostał mi jeszcze jeden problem związany z tym fragmentem funkcji. Dlatego wrzucam całą funkcję. Pole = g_Plansza[ LINIE[ i ][ j ][ 0 ][ LINIE[ i ][ j ][ 1 ] ] ];
D:\Projekty\C++\Gra\GAME.cpp:58:59: error: invalid types 'int[int]' for array subscript
|
|
pekfos |
» 2013-07-20 15:21:22 LINIE ma 3 wymiary, a nie 4, a g_Plansza ma 2 wymiary, a nie 1. Nawiasy się nie zgadzają. |
|
damian19dk Temat założony przez niniejszego użytkownika |
» 2013-07-20 15:30:25 Pole = g_Plansza[[ LINIE[ i ][ j ][ 0 ] ][ LINIE[ i ][ j ][ 1 ] ] ];
int LINIE[][ 3 ][ 2 ] = { { { 0, 0 }, { 0, 1 }, { 0, 2 } }, { { 1, 0 }, { 1, 1 }, { 1, 2 } }, { { 2, 0 }, { 2, 1 }, { 2, 2 } }, { { 0, 0 }, { 1, 0 }, { 2, 0 } }, { { 0, 1 }, { 1, 1 }, { 2, 1 } }, { { 0, 2 }, { 1, 2 }, { 2, 2 } }, { { 0, 0 }, { 1, 1 }, { 2, 2 } }, { { 2, 0 }, { 1, 1 }, { 0, 2 } } };
Nie wiem gdzie ująłem, że LINIE ma 4 wymiary... |
|
pekfos |
» 2013-07-20 15:37:09 Nie wiem gdzie ująłem, że LINIE ma 4 wymiary... |
Tu odwołałeś się do LINIE, jakby miała 4 wymiary Pole = g_Plansza[ LINIE[ i ][ j ][ 0 ][ ] ];
|
Pole = g_Plansza[[ LINIE[ i ][ j ][ 0 ] ][ LINIE[ i ][ j ][ 1 ] ] ];
|
Dalej źle, powinno być tak: Pole = g_Plansza[ LINIE[ i ][ j ][ 0 ] ][ LINIE[ i ][ j ][ 1 ] ];
|
|
damian19dk Temat założony przez niniejszego użytkownika |
» 2013-07-20 15:44:12 Naprawdę WIELKIE dzięki za pomoc, sam bym sobie na pewno nie poradził , wszystko działa(byc może jeszcze nie tak jak należy), ważne, że udało się w końcu skompilować.Sorry, że tak dużo pisze... Jeszcze raz stokrotne dzięki! |
|
1 « 2 » |