Midas Temat założony przez niniejszego użytkownika |
[C++] Problem z switch » 2013-10-22 00:10:08 Kod #include "stdafx.h" #include <iostream> #include <conio.h> #include <Windows.h> #include "Konsola_1.cpp" #include <locale>
using namespace std;
void polskie_litery() { locale locpl( "Polish_Poland" ); locale::global( locpl ); cout.imbue( locpl ); cin.imbue( locpl ); }
int rysowanie() { char klawisz; char znak; int x, y, x1, y1, bok; x = 10; y = 10; bok = 0; cout << "Podaj n" << endl; cin >> bok; cout << "Podaj znak ascii" << endl; cin >> znak; HideCursor(); do { system( "cls" ); x1 = x; y1 = y; gotoxy( x1, y1 ); for( int i = 1; i <= bok; i++ ) cout << znak; for( int i = 1; i <= bok; i++ ) { gotoxy( x1++, y1++ ); cout << znak; } for( int i = 1; i <= bok; i++ ) { x1 = x++; y1 = y + bok - 1; gotoxy( x1, y1 ); cout << znak; } klawisz = _getch(); switch( klawisz ) { case 'q': { bok = bok + 2; x--; y--; break; } case 'e': { bok = bok - 2; x++; y++; break; } case 'a': { x--; break; } case 'd': { x++; break; } case 'w': { y--; break; } case 's': { y++; break; } default: { break; } } } while( klawisz != bok ); return 0; }
void nazwa() { cout << "Naciśnij Enter" << endl; HideCursor(); _getch(); system( "cls" ); }
int main() { polskie_litery(); nazwa(); rysowanie(); HideCursor(); _getch(); return 0; } Konsola_1 ustawia kursor na osi współrzędnych x , y. Nie wiem dlaczego, ale nie działa mi switch, program wczytuje każdą liczbę z klawiatury i wtedy przesuwa figure tylko w prawo. Poza tym powiększanie i pomniejszanie działa w ten sposób że figura powiększa się, ale ucieka w prawo. Nie wiem co powoduje taki wynik. |
|
walus1305 |
» 2013-10-22 19:55:05 mi sie sypie na petli sprobuje poprawic Poprawione Switch działa #include <iostream> #include <conio.h> #include <Windows.h> #include <locale> #include <stdlib.h> using namespace std;
void polskie_litery() { locale locpl( "Polish_Poland" ); locale::global( locpl ); cout.imbue( locpl ); cin.imbue( locpl ); }
void gotoxy( int x, int y ) { COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), c ); }
void rysowanie( char & znak, int & bok ) { cout << "Podaj n" << endl; cin >> bok; cout << "Podaj znak ascii" << endl; cin >> znak; }
int main() { char klawisz; char znak; int x, y, x1, y1, bok; x = 10; y = 10; polskie_litery(); rysowanie( znak, bok ); do { system( "cls" ); x1 = x; y1 = y; gotoxy( x1, y1 ); for( int i = 1; i <= bok; i++ ) { cout << znak; } for( int i = 1; i <= bok; i++ ) { gotoxy( x1++, y1++ ); cout << znak; } for( int i = 1; i <= bok; i++ ) { x1 = x; y1 = y + bok - 1; gotoxy( x1, y1 ); cout << znak; } klawisz = getch(); switch( klawisz ) { case 'q': { bok = bok + 2; x--; y--; break; } case 'e': { bok = bok - 2; x++; y++; break; } case 'a': { x--; break; } case 'd': { x++; break; } case 'w': { y--; break; } case 's': { y++; break; } case 27: { break; } } } while( klawisz != 27 ); return 0; }
|
|
Midas Temat założony przez niniejszego użytkownika |
» 2013-10-22 23:42:14 jeżeli ma rysować prawidłową figurę, to nie działa wtedy switch.
|
|
walus1305 |
» 2013-10-22 23:43:48 jutro nad tym usiade tylko mi napisz jak ta figura ma wygladac |
|
Midas Temat założony przez niniejszego użytkownika |
» 2013-10-22 23:56:08 Powinno wyglądać tak. #include "stdafx.h" #include <iostream> #include <conio.h> #include <Windows.h> #include <locale> #include <stdlib.h> using namespace std;
void polskie_litery() { locale locpl( "Polish_Poland" ); locale::global( locpl ); cout.imbue( locpl ); cin.imbue( locpl ); }
void gotoxy( int x, int y ) { COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), c ); }
void rysowanie( char & znak, int & bok ) { cout << "Podaj n" << endl; cin >> bok; cout << "Podaj znak ascii" << endl; cin >> znak; }
int main() { char klawisz; char znak; int x, y, x1, y1, bok; x = 10; y = 10; polskie_litery(); rysowanie( znak, bok ); do { system( "cls" ); x1 = x; y1 = y; gotoxy( x1, y1 ); for( int i = 1; i <= bok; i++ ) { cout << znak; } for( int i = 1; i <= bok; i++ ) { gotoxy( x1++, y1++ ); cout << znak; } for( int i = 1; i <= bok; i++ ) { x1 = x++; y1 = y + bok - 1; gotoxy( x1, y1 ); cout << znak; } klawisz = _getch(); } while( klawisz != 27 ); return 0; }
|
|
walus1305 |
» 2013-10-23 10:03:04 Napisane na szybko przy porannej kawie działa przesuwanie i powiększanie #include <iostream> #include <conio.h> #include <Windows.h> #include <locale> #include <stdlib.h> using namespace std;
void polskie_litery() { locale locpl( "Polish_Poland" ); locale::global( locpl ); cout.imbue( locpl ); cin.imbue( locpl ); }
void gotoxy( int x, int y ) { COORD c; c.X = x; c.Y = y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), c ); }
void rysowanie( char & znak, int & bok ) { cout << "Podaj n" << endl; cin >> bok; cout << "Podaj znak ascii" << endl; cin >> znak; }
int main() { char klawisz; char znak; int x, y, x1, y1, bok, X, Y; x = 10; y = 10; X = 0; Y = 0; polskie_litery(); rysowanie( znak, bok ); do { system( "cls" ); x1 = x; y1 = y; gotoxy( x1 + X, y1 + Y ); for( int i = 1; i <= bok; i++ ) { cout << znak; } for( int i = 1; i <= bok; i++ ) { gotoxy(( x1++ ) + X,( y1++ ) + Y ); cout << znak; } gotoxy( 10 + X,(( bok - 1 ) + 10 ) + Y ); for( int i = 1; i <= bok; i++ ) { cout << znak; } klawisz = getch(); switch( klawisz ) { case 'q': { bok = bok + 2; break; } case 'e': { bok = bok - 2; break; } case 'a': { X--; break; } case 'd': { X++; break; } case 'w': { Y--; break; } case 's': { Y++; break; } case 27: { break; } } } while( klawisz != 27 ); return 0; }
|
|
Midas Temat założony przez niniejszego użytkownika |
» 2013-10-23 11:42:58 Dzięki wielkie za pomoc ! Zamykam temat. |
|
« 1 » |