Суть самой игры заключается в следующем:
- Игрок на экране видит табло, которое разбито на 16 клеток. В пятнадцати из них расположены неповторяющиеся цифры, в случайном порядке от 1 до 15 и одна пустая.
Алгоритм передвижения основан на передвижении пустого куба. То есть мы не обращаем внимание на фишки, а перемещаем пустой куб туда, куда нужно поставить фишку. Волновой алгоритм обхода препятствий с применением регулярных последовательностей действий. Основные моменты на которые следует обратить внимание это: пустой куб не двигается на те позиции на которые его нельзя перемещать.
Цель: развитие логических умений пользователя.
Входные данные:
- Кнопка начала игры.
- Кнопка музыки.
- Начальная позиция кубов.
- Изначальное количество времени.
- Изначальное количество ходов.
Выходные данные:
- Расположение кубов.
- Прошедшее время.
- Музыка.
Требования для запуска:
- Минимальная версия Visual Studio 2010
При покупке Вы получаете исходный код проекта с ексешником ,а так же, полностью готовая к защите, пояснительную записку(теория).
Исходный код:
void Scene::on_motion(int x, int y)
{
switch (button) {
case 0:
angleX += x - mouseX;
angleY += y - mouseY;
mouseX = x;
mouseY = y;
break;
/*case 2:
distZ += y - mouseY;
mouseY = y;
break;*/ //если нужно будет отдалять
}
}
void Scene::on_mouse(int _button, int state, int x, int y)
{
if (state == 1) { // 0 - нажали на кнопку, 1 - отпустили
button = -1; // если никакая кнопка не нажата
return;
}
switch (button = _button) {
case 0: mouseX = x; mouseY = y; break;
//case 2: distZ = -15;break;- шаг отдаления
}
}
// void Scene::on_keyboard(unsigned char key,int a,int b)
//{
// switch(key)
// case 27:{ exit(0); break; }
//}
void Scene::on_size(int w, int h)
{
width = w;
height = h;
if (height == 0) height = 1; // Предотвращение деления на ноль, если окно слишком мало
// (Вы не можете сделать окно нулевой высоты).
}
Телеграм
-