operation_argo Temat założony przez niniejszego użytkownika |
Problem z napisaniem tablicy » 2013-11-23 00:21:23 Witam, muszę napisać pewną grę, podobną do kółka i krzyżyk.Z tym, że mam jeden podstawowy problem.Kółko i krzyżyk jest wymiaru 3x3, a ja muszę zrobić planszę 6x6, dodatkowo jest to podzielone na 4 ćwiartki po 6 pól.Przechodząc do sedna, chodzi mi o to czy można zrobić 4 oddzielne tablice dwuwymiarowe(to dlatego, że będę później obracał te ćwiartki) które jako wydrukowane, będą wyglądały tak:
tab4 tab1 [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] ----------------- [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] tab3 tab2 |
|
Mitu |
» 2013-11-23 00:39:58 Można, musisz napisać odpowiednią funkcję do drukowania tych tablic w określonej kolejności, np. char tab[ 4 ][ 3 ][ 3 ]; ... for( int z = 0; z < 2; z++ ) { for( int y = 0; y < 3; y++ ) { for( int x = 0; x < 3; x++ ) { cout << tab[ z * 2 ][ x ][ y ]; } cout << " "; for( int x = 0; x < 3; x++ ) { cout << tab[ z * 2 + 1 ][ x ][ y ]; } cout << endl; } cout << endl; };
|
|
docentpp |
» 2013-11-23 01:00:58 int t1[ 3 ][ 3 ], t2[ 3 ][ 3 ], t3[ 3 ][ 3 ], t4[ 3 ][ 3 ];
for( int i = 0; i < 3; i++ ) for( int j = 0; j < 3; j++ ) { t1[ i ][ j ] = 1; t2[ i ][ j ] = 2; t3[ i ][ j ] = 3; t4[ i ][ j ] = 4; }
for( int i = 0; i < 3; i++ ) { for( int j = 0; j < 3; j++ ) cout << t4[ i ][ j ]; for( int j = 0; j < 3; j++ ) cout << t1[ i ][ j ]; cout << endl; }
for( int i = 0; i < 3; i++ ) { for( int j = 0; j < 3; j++ ) cout << t3[ i ][ j ]; for( int j = 0; j < 3; j++ ) cout << t2[ i ][ j ]; cout << endl; }
|
|
operation_argo Temat założony przez niniejszego użytkownika |
» 2013-11-23 13:20:16 Wydaję mi się, że sposób pokazany przez docentpp jest przystępniejszy, potem łatwiej będzie mi się odwołać do konkretnego elementu tablicy, co jest chyba jedną z ważniejszych spraw.Zmodyfikowałem troszkę ten kod #include<iostream> #include<iomanip> using namespace std;
int main() { char t1[ 3 ][ 3 ], t2[ 3 ][ 3 ], t3[ 3 ][ 3 ], t4[ 3 ][ 3 ]; for( int i = 0; i < 3; i++ ) for( int j = 0; j < 3; j++ ) { t1[ i ][ j ] = 'x'; t2[ i ][ j ] = 'o'; t3[ i ][ j ] = 'x'; t4[ i ][ j ] = 'o'; } for( int i = 0; i < 3; i++ ) { for( int j = 0; j < 3; j++ ) cout << t4[ i ][ j ] << "|"; for( int j = 0; j < 3; j++ ) cout << "|" << t1[ i ][ j ]; cout << endl; } cout << "------------" << endl; for( int i = 0; i < 3; i++ ) { for( int j = 0; j < 3; j++ ) cout << t3[ i ][ j ] << "|"; for( int j = 0; j < 3; j++ ) cout << "|" << t2[ i ][ j ]; cout << endl; } }
Teraz myślałem nad tym,żeby otrzymać coś takiego: tab4 tab1 6[] [] [] [] [] [] 5[] [] [] [] [] [] 4[] [] [] [] [] [] ------------------------ 3[] [] [] [] [] [] 2[] [] [] [] [] [] 1[] [] [] [] [] [] A B C D E F tab3 tab2 Chciałbym, żeby użytkownik przy wpisywaniu pola podawał formułę np A 6 co będzie wskazywało na konkretne pole. Nie wiem za bardzo jak wyświetlić te liczby wierszy, a potem do każdej kolumny przyporządkować litery od A-F. Myślałem tutaj o zastosowaniu struktury, ale nie wiem czy to będzie najprostszy sposób do późniejszego odwołania |
|
pekfos |
» 2013-11-23 14:12:40 Myślałem tutaj o zastosowaniu struktury, ale nie wiem czy to będzie najprostszy sposób do późniejszego odwołania |
Po co tu struktura? Wystarczy, że sprawdzisz, czy są to poprawne dane i odejmiesz odpowiednią wartość. Znak to też liczba. |
|
operation_argo Temat założony przez niniejszego użytkownika |
» 2013-11-23 14:18:19 Zmodyfikowałem kod do takiej formy.. #include<iostream> #include<iomanip> using namespace std;
void lp() { for( int i = 6; i > 0; i-- ) cout << i << endl; } void pasek() { cout << " --------------" << endl; } void cwiartka() { cout << " cw.4 cw.1 " << endl; } void litery() { cout << " A B C D E F" << endl; }
void cwiartka2() { cout << " cw.3 cw.2 " << endl; }
int main() { char t1[ 3 ][ 3 ], t2[ 3 ][ 3 ], t3[ 3 ][ 3 ], t4[ 3 ][ 3 ]; for( int i = 0; i < 3; i++ ) for( int j = 0; j < 3; j++ ) { t1[ i ][ j ] = 'x'; t2[ i ][ j ] = 'o'; t3[ i ][ j ] = 'y'; t4[ i ][ j ] = 'z'; } cwiartka(); int lp = 6; for( int i = 0; i < 3; i++ ) { cout << lp << " |"; for( int j = 0; j < 3; j++ ) cout << t4[ i ][ j ] << "|"; for( int j = 0; j < 3; j++ ) cout << "|" << t1[ i ][ j ]; lp--; cout << "|" << endl; } pasek(); for( int i = 0; i < 3; i++ ) { cout << lp << " |"; for( int j = 0; j < 3; j++ ) cout << t3[ i ][ j ] << "|"; for( int j = 0; j < 3; j++ ) cout << "|" << t2[ i ][ j ]; lp--; cout << "|" << endl; } litery(); cwiartka2(); }
|
|
pekfos |
» 2013-11-23 14:22:18 Zmodyfikowałem kod do takiej formy.. |
i? |
|
operation_argo Temat założony przez niniejszego użytkownika |
» 2013-11-23 14:23:48 Nie wiem za bardzo co napisać, żeby użytkownik mógł wprowadzić literę x, do jakiejkolwiek komórki. |
|
« 1 » 2 |