Rysowanie domu w konsoli
Ostatnio zmodyfikowano 2013-11-23 17:17
lewica2 Temat założony przez niniejszego użytkownika |
Rysowanie domu w konsoli » 2013-11-16 17:09:23 Witam, mam problem który polega na narysowaniu figury znakami kodu ASCII. Figurą jest "domek"- tz. prostokąt bez górnej krawędzi i daszek. Tyle o ile z narysowaniem prostokąta nie mam problemu to mam problem z dachem. Macie jakieś propozycje? Na razie mam taką wersję:
#include "stdafx.h" #include <iostream> #include "conio.h"
using namespace std;
void Prostokat();
int main()
{ Prostokat(); _getch(); return 0; }
void Prostokat()
{ int i, j; for( i = 1; i <= 20; i++ ) cout << "*"; cout << endl; for( i = 1; i <= 8; i++ ) { cout << "*"; for( j = 1; j <= 18; j++ ) cout << " "; cout << "*\n"; } for( i = 1; i <= 20; i++ ) cout << "*"; cout << endl; }
|
|
RazzorFlame |
» 2013-11-16 18:16:33 Spróbuj wyświetlić najpierw trójkąt a potem dwa połączone trójkąty (tyle że drugi odwrócony poziomo) bez środkowej ściany. Do tego wyświetlania użyłbym raczej funkcji do modyfikowania określonej pozycji w oknie konsoli. Znajdziesz takie funkcje w windows.h |
|
Matej |
» 2013-11-16 18:21:43 Sposobów może być mnóstwo, ja napisałbym coś w tym stylu: void Roof( int width ) { char space = ' '; int s; for( int i = width; i >= 0; --i ) { for( int j = 0; j <= i; ++j ) { cout << space; } cout << "*"; int s =( width - i ) * 2; for( int k = 0; k <= s; ++k ) { cout << space; } cout << "*" << endl; } }
Domek też określałbym w parametrach jakie ma mieć wymiary. |
|
lewica2 Temat założony przez niniejszego użytkownika |
» 2013-11-16 19:54:41 A czy moglibyście to w całej postaci? Zaczynam dopiero zabawę w C++ i chciałbym zobaczyć jak to powinno wyglądać Będę bardzo wdzięczny \Nie ukrywam że mam problem kompilacji tego co zostało napisane. Jak to należy wpisać do visuala? |
|
pekfos |
» 2013-11-16 20:08:32 A czy moglibyście to w całej postaci? Zaczynam dopiero zabawę w C++ i chciałbym zobaczyć jak to powinno wyglądać |
Nie. Kurs C++ |
|
lewica2 Temat założony przez niniejszego użytkownika |
» 2013-11-16 20:30:54 A czy oprócz tych bibliotek które mam już w kompilatorze wymagane są jeszcze jakieś?
|
|
pekfos |
» 2013-11-16 20:56:56 Nie. |
|
lewica2 Temat założony przez niniejszego użytkownika |
» 2013-11-16 23:19:37 Kurdę... Poddaje się... dzięki za pomoc Udało mi się COŚ wykreować, jednak pojawił się inny problem- chciałbym aby dach zaczynał się na 1 znaku a nie na 2 i aby jego szerokość była równa szerokości prostokąta. Przyjmuje wcześniej ze szerokość prostokąta ma być nieparzysta i jest to zmienna a, jednak po kompilacji dach zaczyna się 2 znakami #include "stdafx.h" #include <iostream> #include <conio.h> #include <Windows.h> #include <locale>
#define WYSOKOSC_KONSOLI 25 #define SZEROKOSC_KONSOLI 80
using namespace std;
void polskie_litery() { locale locpl( "Polish_Poland" ); locale::global( locpl ); cout.imbue( locpl ); cin.imbue( locpl ); }
void Prostokat(); const int Esq = 27; int main() { polskie_litery(); std::cout << "Witam w programie nr 57 \nNapisz program rysowania znakami ASCII figury." "Sam program powinien umożliwić:\n-wybór znaku kodu początkowego,\n-wszytanie wymiarów " "początkowych figury,\n-przesuwanie figury kursorami,\n-powiększanie oraz zmniejszanie figury za" "pomocą '+' oraz '-',\n-ogranicenie przesuwania figury oraz jej rozmiarów.\n\n \n\n\n"; int a, b; cout << "Podaj szerokość: [A]: "; cin >> a; if( a % 2 == 0 ) { do { cout << "\nLiczba " << a << " jest parzysta!" << endl; cout << "Wprowadź liczbę nieparzystą!" << endl; cout << "Podaj szerokość [A]: "; cin >> a; } while( a % 2 == 0 ); } cout << "Podaj wysokość [B]: "; cin >> b; system( "cls" ); cout << "Wybrałeś następujące wartości: " << endl; cout << "Szerokość: " << a << endl; cout << "Wysokość: " << b << endl; system( "PAUSE" ); system( "cls" ); int kod; while( true ) { cout << "Podaj kod znaku ASCII od 0 do 127: "; cin >> kod; if( kod < 0 || kod > 127 ) cout << "Bledna wartosc.\n\n"; else break; } { system( "PAUSE" ); system( "cls" ); } { int i, j; for( int i = a; i >= 0; --i ) { for( int j = 0; j <= i; ++j ) { cout << " "; } cout <<( char ) kod; int s =( a - i ) * 2; for( int k = 0; k <= s; ++k ) { cout << " "; } cout <<( char ) kod << endl; } for( i = 1; i <= b - 2; i++ ) { cout <<( char ) kod; for( j = 1; j <= a - 2; j++ ) cout << " "; cout <<( char ) kod; cout << endl; } { for( i = 1; i <= a; i++ ) cout <<( char ) kod; cout << endl; } } _getch(); return 0; }
|
|
« 1 » 2 |