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. #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"; } }
|
|
Gabes |
» 2015-12-06 12:30:37 Wyświetlasz coś; |
|
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. --------- |* *|* *| |* *|* *| |* *|* *| --------- |
|
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?
|
|
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 |
|
Gibas11 |
» 2015-12-06 18:42:21 Nie wiem jak z liczbami ale dobrze myślisz - zagnieżdżone pętle sprawdzą się dobrze. |
|
« 1 » |