🐸 Игра "Лягушки", написанная в процессе изучения технологии Windows Forms и работы с изображениями.
Цель игры — расположить лягушек, которые смотрят влево, в левую часть, а остальных - в правую часть за минимальное количество перепрыгиваний.
Прыгать можно на листок, если он находится рядом или через 1 лягушку
Пример геймплея игры:
bandicam.2025-04-26.22-32-20-730.mp4
-
Проект реализован на платформе Windows Forms.
-
Для работы с изображениями используется компонент PictureBox.
Структура каталога решения:
Для обработки нажатия левой кнопкой мыши по изображению (кроме изображения пустой кувшинки) написан обработчик собыия PictureBox_Click, который внутри содержит метод Swap, реализующий "прыжок" лягушки, и метод CheckWinning, проверяющий, выполняется ли условие победы:
private void PictureBox_Click(object sender, EventArgs e)
{
Swap((PictureBox)sender);
CheckWinning();
}
private void Swap(PictureBox clickedPicture)
{
var distance = Math.Abs(clickedPicture.Location.X - emptyPictureBox.Location.X) / emptyPictureBox.Size.Width;
if (distance > 2)
{
MessageBox.Show("Невозможный ход!");
return;
}
(emptyPictureBox.Location, clickedPicture.Location) = (clickedPicture.Location, emptyPictureBox.Location);
countMoves++;
countMovesLabel.Text = countMoves.ToString();
}
private void CheckWinning()
{
if(Iswin())
{
if (countMoves == minimumMoves)
{
MessageBox.Show("Поздравляю! Вы выиграли!", "Конец Игры");
}
else
{
var result = MessageBox.Show("Вы справились не за оптимальное количество ходов. Хотите начать заново?", "Конец Игры", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
Application.Restart();
}
}
}
}
