#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
char ch = 'a';
int x = 10;
int y = 10;
cout << "Для выхода нажмите ENTER"<< endl;
while ( ch != ' \r ')
{
cout << " \nВАШИ КОРДИНАТЫ" << x << " . " << y;
cout << " \nВЫБЕРИТЕ НАПРАВЛЕНИЕ ( n, s, e, w ) ";
ch = getche();
if ( ch == ' n ' )
y--;
else
if ( ch == ' s ' )
y++;
else
if ( ch == ' e ')
x--;
else
if ( ch == ' w ')
x++;
}
cin.get();
}
Другие языки программирования и технологии
Пацаны помогите найти логическую ошибку в C++
// Для перемещения используйте клавиши стрелок
#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;
enum DIRECTION {
LEFT = 75,
UP = 72,
RIGHT = 77,
DOWN = 80
};
COORD move(COORD, unsigned char, unsigned char, SHORT, SHORT);
int main() {
COORD coord;
coord.X = 0;
coord.Y = 0;
const SHORT limit_x = 79;
const SHORT limit_y = 24;
CONSOLE_CURSOR_INFO cursor = { 1, false };
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor);
unsigned char marker = 0xDB;
cout << marker;
unsigned char direction;
while (true) {
if (_getch() == 0xE0) {
direction = _getch();
coord = move(coord, direction, marker, limit_x, limit_y);
}
}
return 0;
}
COORD move(COORD coord, unsigned char direction, unsigned char marker, SHORT limit_x, SHORT limit_y) {
bool attemp = true;
switch (direction) {
case LEFT:
if (coord.X) --coord.X;
else attemp = false;
break;
case RIGHT:
if (coord.X < limit_x) ++coord.X;
else attemp = false;
break;
case DOWN:
if (coord.Y < limit_y) ++coord.Y;
else attemp = false;
break;
case UP:
if (coord.Y) --coord.Y;
else attemp = false;
break;
default:
attemp = false;
break;
}
if (attemp) {
system("cls");
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
cout << marker;
}
return coord;
}
#include <iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;
enum DIRECTION {
LEFT = 75,
UP = 72,
RIGHT = 77,
DOWN = 80
};
COORD move(COORD, unsigned char, unsigned char, SHORT, SHORT);
int main() {
COORD coord;
coord.X = 0;
coord.Y = 0;
const SHORT limit_x = 79;
const SHORT limit_y = 24;
CONSOLE_CURSOR_INFO cursor = { 1, false };
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor);
unsigned char marker = 0xDB;
cout << marker;
unsigned char direction;
while (true) {
if (_getch() == 0xE0) {
direction = _getch();
coord = move(coord, direction, marker, limit_x, limit_y);
}
}
return 0;
}
COORD move(COORD coord, unsigned char direction, unsigned char marker, SHORT limit_x, SHORT limit_y) {
bool attemp = true;
switch (direction) {
case LEFT:
if (coord.X) --coord.X;
else attemp = false;
break;
case RIGHT:
if (coord.X < limit_x) ++coord.X;
else attemp = false;
break;
case DOWN:
if (coord.Y < limit_y) ++coord.Y;
else attemp = false;
break;
case UP:
if (coord.Y) --coord.Y;
else attemp = false;
break;
default:
attemp = false;
break;
}
if (attemp) {
system("cls");
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
cout << marker;
}
return coord;
}
зачем нужно cin.get(); ?
шестая в первом ряду четвертого ряда с лева третья
Короче, пацан, расклад такой:
ch = getche();
гетчё - это не по понятиям, по понятиям - естьчё?, а особо ровные пацаны используют getch(char);
И чтобы не выглядеть беспредельщиком в глазах правильных сидельцев, а также показать своё знание понятий - на малявах следует изображать switch(char){case:...}, вместо кодлы if`ов.
ch = getche();
гетчё - это не по понятиям, по понятиям - естьчё?, а особо ровные пацаны используют getch(char);
И чтобы не выглядеть беспредельщиком в глазах правильных сидельцев, а также показать своё знание понятий - на малявах следует изображать switch(char){case:...}, вместо кодлы if`ов.
Петя Кристев
getch тоже не особо по понятиям ISO =)
Похожие вопросы
- Помогите с исправить ошибку, массивы, c++builder
- помогите найти синтаксическую ошибку
- программирование C++. Помогите найти ошибку
- Помогите найти ошибку в программе. C++
- Помогите найти ошибку Delphi легкая программка
- c++ помогите найти ошибку
- Помогите найти ошибку в коде
- Владеющие паскалем! SOS! Найдите пожалуйста ошибку!((( думаю уже долго, ошибку найти не могу(((Помогите пожалуйста!!!
- Помогите найти ошибку в задачи,Паскаль...
- Помогите найти ошибку qbasic
_getch(); с режимом ожидания закрытия консоли? ))