Форум программистов, компьютерный форум CyberForum.ru

игра лабиринт - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Данные в поток http://www.cyberforum.ru/cpp-beginners/thread21494.html
Ув. профи ,не подскажите ли , Как данные находящиеся в (LPCVOID)pdib и размером dwSize запихнуть в поток, для последующего чтения. Заранее благодарю. Добавлено через 23 часа 49 минут 33 секунды нашел то что надо под VC++6, а надо бы под MVS2005 разница в том что в MVS нету библиотеки strstrea.h,кто подскажет как мона обойтись без нее.
C++ Помогите с тестом по С++ Помогите с тестом по С++, плиз как можно быстрей- очень надо. Ответьте на вопросы где минусы, и вообще супер если ещё будет объяснение. Заранее благодарен))) http://www.cyberforum.ru/cpp-beginners/thread21485.html
C++ template
#include <iostream> #include <string> template <class T, class S> void foo(const T& a, const S& b) { std::cout<<"a:"<<sizeof(a)<<std::endl; std::cout<<"b:"<<sizeof(b)<<std::endl; } int main()
map C++
#include<iostream> #include<map> int main() { std::map<int, int> fib; fib = 1; fib = 1; fib = 2; std::cout << "Map size: " << fib.size() << std::endl; fib; std::cout << "Fib size: " << fib.size() << std::endl;
C++ Мне необходимо отсортировать записи http://www.cyberforum.ru/cpp-beginners/thread21468.html
Помогите разобраться с ошибкой. Мне необходимо отсортировать записи по полю "kenteken" После использования стандартной функции QSORT ничего не сортируется :( А при использовании указателей вообще получаются нулевые значения. #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX 20
C++ Вопрос о динамическом выделении памяти для строки Как можно реализовать динамическое выделение для строки, т.е. например у меян есть указатель - char *c. Мне необходимо ввести строку с клавиатуры, выделить для нее память через указатель с и занести ее в эту память. Как это можно реализовать? подробнее

Показать сообщение отдельно
beregok
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 9

игра лабиринт - C++

23.01.2009, 10:41. Просмотров 3779. Ответов 1
Метки (Все метки)

Есть код игры
Смайлик движется по лабиринту с помощью нажатия клавиш, есть два смайлика врага (один движется по вертикали, второй по горизонтали),
необходимо ещё добавить смайлик, который движется на смайлик игрока
помогите с алгоритмом смайлика движущегося на смайлик игрока!

Добавлено через 33 секунды
вот что у меня получилось
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
int i,j;
int lives = 3;//счетчик жизней
DIR dir1 = LEFT;
DIR dir2 = LEFT;
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {25,10};// Координаты смайла
COORD coord1 = {40,15};// Координаты 1-го врага
COORD coord2 = {15,8};//Координаты 2-го врага
COORD coord3 = {20,7};
COORD coordLives = {0,22};// Координаты вывода счетчика жизней
 
//Отрисовка лабиринта>>>
for(i=0;i<Y;i++)
{
for(j=0;j<X;j++)
{
switch(a[i][j])
{
case 1:cout << (char)177;break;
case 2:cout << (char)36;break;
case 3:cout << (char)3;break;
case 0:cout << ' ';break;
}
}
cout << '\n';
}
//Отрисовка лабиринта<<<
 
while(true)
{
Sleep(50);//Задержка движения
 
//Движение 1-го врага>>>
SetConsoleCursorPosition(console,coord1);
cout << ' ' << flush;//Стираем
if(dir1 == LEFT)
{
if(a[coord1.Y][coord1.X-1]!=1)coord1.X--;
else dir1 = RIGHT;
}
else
{
if(a[coord1.Y][coord1.X+1]!=1)coord1.X++;
else dir1 = LEFT;
}
 
SetConsoleCursorPosition(console,coord1);
SetConsoleTextAttribute(console, FOREGROUND_RED|FOREGROUND_INTENSITY);//Цвет врага - красный
cout << (char)2 << flush;//Рисуем
SetConsoleTextAttribute(console, FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED);//Возвращаем белый цвет
if(coord.X == coord1.X && coord.Y == coord1.Y)
{
lives--;
}
//Движение 2-го врага>>>
SetConsoleCursorPosition(console,coord2);
cout << ' ' << flush;//Стираем
if(dir2 == LEFT)
{
if(a[coord2.Y-1][coord2.X]!=1)coord2.Y--;
else dir2 = RIGHT;
}
else
{
if(a[coord2.Y+1][coord2.X]!=1)coord2.Y++;
else dir2 = LEFT;
}
 
SetConsoleCursorPosition(console,coord2);
SetConsoleTextAttribute(console, FOREGROUND_BLUE|FOREGROUND_INTENSITY);//Цвет врага - красный
cout << (char)2 << flush;//Рисуем
SetConsoleTextAttribute(console, FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED);//Возвращаем белый цвет
if(coord.X == coord2.X && coord.Y == coord2.Y)
{
lives--;
}
//Движение 1-го врага<<<
 
if(_kbhit())//Если пользователь нажал клавишу
{
int code = _getch();//Получаем ее код
SetConsoleCursorPosition(console,coord);
cout << ' ' << flush;//Стираем смайл
switch(code)
{
case 'w': if(a[coord.Y-1][coord.X]!=1)coord.Y--;break;
case 's': if(a[coord.Y+1][coord.X]!=1)coord.Y++;break;
case 'a': if(a[coord.Y][coord.X-1]!=1)coord.X--;break;
case 'd': if(a[coord.Y][coord.X+1]!=1)coord.X++;break;
case 27: exit(1);
}
if(coord.X == coord1.X && coord.Y == coord1.Y)
{
lives--;
}
 
}
if(lives == 0)
{
system("cls");
COORD center={35,15};
SetConsoleCursorPosition(console,center);
cout << " G A M E O V E R!!!"<<flush;
_getch();
break;
}
SetConsoleCursorPosition(console,coordLives);
cout << "Lives: " << lives << flush;
SetConsoleTextAttribute(console, FOREGROUND_GREEN|FOREGROUND_INTENSITY);//Цвет смайла - зеленый
SetConsoleCursorPosition(console,coord);
cout << (char)1 << flush;//Выводим смайл
SetConsoleTextAttribute(console, FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED);//Возвращаем белый цвет
SetConsoleCursorPosition(console,coord3);
cout << (char)2 << flush;//Выводим смайл
SetConsoleTextAttribute(console, FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED);//Возвращаем белый цвет
}
}
 
[SIZE=1][COLOR=#666686]Добавлено через 54 секунды[/COLOR][/SIZE]
вот сам лабиринт
using namespace std;
const int Y = 20, X = 50;
enum DIR{UP, DOWN, LEFT, RIGHT};
void main()
{
int a[Y][X] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,0,1,0,1,0,0, 0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,1,0,1,1,0,1,0,1,1,1,0,0,0,1,0,1,1,0,1,0,1,0,1, 1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,1,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0, 0,1,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,1,1,0,1,0,0,0,0,0,0,1,1,1,0,0,1,1,0,1,0,1,0,0, 0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0, 0,0,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,0, 0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,1,0,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0, 0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1, 1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0,0,0, 0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1, 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,1,1,0,1,1,1,1,0,1,1,0,1,0,0,1,1,1,1,0,1,1,1,1, 0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,1,0,1,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,0,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} ;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru