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

C++ Zmiana wyświetlania kostek domina

Ostatnio zmodyfikowano 2015-12-06 18:42
Autor Wiadomość
domin
Temat założony przez niniejszego użytkownika
C++ Zmiana wyświetlania kostek domina
» 2015-12-06 11:28:54
Nie wiem w jaki sposób zmienić mój kod tak aby wyświetlał kostki domina w jednej linii(zamiast pionowo mają być wyświetlane w poziomie), program powinien zostać napisany przy użyciu bibliotek standardowych.



C/C++
#include <iostream>
#include <iomanip>
#include <cstdlib>


using namespace std;



int tab[][ 2 ] =
{
    { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { 0, 4 }, { 0, 5 }, { 0, 6 },
    { 1, 1 }, { 1, 2 }, { 1, 3 }, { 1, 4 }, { 1, 5 }, { 1, 6 },
    { 2, 2 }, { 2, 3 }, { 2, 4 }, { 2, 5 }, { 2, 6 },
    { 3, 3 }, { 3, 4 }, { 3, 5 }, { 3, 6 },
    { 4, 4 }, { 4, 5 }, { 4, 6 },
    { 5, 5 }, { 5, 6 },
    { 6, 6 }
};

void kamien( int tab[][ 2 ] );

int main()
{
    srand( time( NULL ) );
    kamien( tab );
    return 0;
}

void kamien( int tab[][ 2 ] )
{
    for( int i = 0; i < 28; i++ )
    {
        cout << " --------\n";
       
        // ---------------------------------------------------------------------------------------------------------------------------------
       
        if(( tab[ i ][ 0 ] == 1 ) ||( tab[ i ][ 0 ] == 0 ) ) cout << "|   |";
        else if( tab[ i ][ 0 ] < 4 ) cout << "|  *|";
        else cout << "|* *|";
       
        if(( tab[ i ][ 1 ] == 1 ) ||( tab[ i ][ 1 ] == 0 ) ) cout << setw( 5 ) << "   |\n";
        else if( tab[ i ][ 1 ] < 4 ) cout << setw( 5 ) << "  *|\n";
        else cout << setw( 5 ) << "* *|\n";
       
        // ---------------------------------------------------------------------------------------------------------------------------------
       
        if( tab[ i ][ 0 ] == 6 ) cout << "|* *|";
        else if( tab[ i ][ 0 ] % 2 == 0 ) cout << "|   |";
        else cout << "| * |";
       
        if( tab[ i ][ 1 ] == 6 ) cout << setw( 5 ) << "* *|\n";
        else if( tab[ i ][ 1 ] % 2 == 0 ) cout << setw( 5 ) << "   |\n";
        else cout << setw( 5 ) << " * |\n";
       
        // ---------------------------------------------------------------------------------------------------------------------------------
       
        if(( tab[ i ][ 0 ] == 1 ) ||( tab[ i ][ 0 ] == 0 ) ) cout << "|   |";
        else if( tab[ i ][ 0 ] < 4 ) cout << "|*  |";
        else cout << "|* *|";
       
        if(( tab[ i ][ 1 ] == 1 ) ||( tab[ i ][ 1 ] == 0 ) ) cout << setw( 5 ) << "   |\n";
        else if( tab[ i ][ 1 ] < 4 ) cout << setw( 5 ) << "*  |\n";
        else cout << setw( 5 ) << "* *|\n";
       
        cout << " --------\n";
       
       
    }
}

P-141476
Gabes
» 2015-12-06 12:30:37
Wyświetlasz coś;
P-141479
domin
Temat założony przez niniejszego użytkownika
» 2015-12-06 13:04:34
program wyświetla wszystkie elementy tablicy, w postaci klocka, np.
---------
|* *|* *|
|* *|* *|
|* *|* *|
---------
P-141484
Gibas11
» 2015-12-06 14:18:42
Najprościej będzie wyświetlać po rządku charów z każdej kostki i dopiero potem przejść do następnej linii, zamiast rysować po całej kostce naraz.
Robisz to:
--------- *tu przejście do następnej linii - dalej \n*
|* *|* *| *\n*
|* *|* *| *\n*
|* *|* *| *\n*
--------- *\n*
--------- *\n*
|* *|* *| *\n*
|* *|* *| *\n*
|* *|* *| *\n*
--------- *\n*
--------- *\n*
|* *|* *| *\n*
|* *|* *| *\n*
|* *|* *| *\n*
--------- *\n*

A chcesz osiągnąć to:

--------- --------- ... *\n*
|* *|* *| |* *|* *| ... *\n*
|* *|* *| |* *|* *| ... *\n*
|* *|* *| |* *|* *| ... *\n*
--------- --------- ... *\n*

Trochę to zagmatwane - łapiesz o co mi chodzi?
P-141490
domin
Temat założony przez niniejszego użytkownika
» 2015-12-06 14:54:33
chyba rozumiem, tobie chodzi o to aby przejść całą pętle od początku do końca i porem dopiero wstawić znak końca linii. Czyli mógł bym zrobić pętle w pętli gdzie jedna by miała zakres 5 a druga 28
P-141494
Gibas11
» 2015-12-06 18:42:21
Nie wiem jak z liczbami ale dobrze myślisz - zagnieżdżone pętle sprawdzą się dobrze.
P-141514
« 1 »
  Strona 1 z 1