Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z napisaniem tablicy

Ostatnio zmodyfikowano 2013-11-23 14:48
Autor Wiadomość
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
P-97099
Mitu
» 2013-11-23 00:39:58
Można, musisz napisać odpowiednią funkcję do drukowania tych tablic w określonej kolejności, np.

C/C++
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;
};
P-97101
docentpp
» 2013-11-23 01:00:58
C/C++
int t1[ 3 ][ 3 ], t2[ 3 ][ 3 ], t3[ 3 ][ 3 ], t4[ 3 ][ 3 ];

for( int i = 0; i < 3; i++ ) //nadanie wartosci
for( int j = 0; j < 3; j++ ) // poczatkowych
{ // zeby sprawdzic
    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;
}
P-97102
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
C/C++
#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++ ) //nadanie wartosci
    for( int j = 0; j < 3; j++ ) // poczatkowych
    { // zeby sprawdzic
        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
P-97126
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.
P-97130
operation_argo
Temat założony przez niniejszego użytkownika
» 2013-11-23 14:18:19
Zmodyfikowałem kod do takiej formy..
C/C++
#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++ ) //nadanie wartosci
    for( int j = 0; j < 3; j++ ) // poczatkowych
    { // zeby sprawdzic
        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();
}
P-97131
pekfos
» 2013-11-23 14:22:18
Zmodyfikowałem kod do takiej formy..
i?
P-97133
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.
P-97134
« 1 » 2
  Strona 1 z 2 Następna strona