С++ Створити гру п'ятнашки, налаштувати інтерфейс( вигляд гри, початок гри, кінець, поле гри). В кінці гри вивести на екран час гри і кількість перестановок.
// Функція для виведення поля гри void displayPuzzle(int puzzle[][SIZE]) { for (int i = 0; i < SIZE; ++i) { for (int j = 0; j < SIZE; ++j) { cout << puzzle[i][j] << "\t"; } cout << endl; } cout << endl; }
// Функція для перевірки, чи вирішена гра bool isSolved(int puzzle[][SIZE]) { int count = 1; for (int i = 0; i < SIZE; ++i) { for (int j = 0; j < SIZE; ++j) { if (puzzle[i][j] != count && count != SIZE * SIZE) { return false; } count++; } } return true; }
// Функція для обміну значеннями двох клітинок void swapCells(int puzzle[][SIZE], int row1, int col1, int row2, int col2) { int temp = puzzle[row1][col1]; puzzle[row1][col1] = puzzle[row2][col2]; puzzle[row2][col2] = temp; }
// Функція для перемішування п'ятнашок void shufflePuzzle(int puzzle[][SIZE]) { srand(time(NULL)); for (int i = 0; i < SIZE; ++i) { for (int j = 0; j < SIZE; ++j) { int randRow = rand() % SIZE; int randCol = rand() % SIZE; swapCells(puzzle, i, j, randRow, randCol); } } }
// Функція для отримання введення користувача void getUserMove(int& row, int& col) { cout << "Введіть рядок та стовпчик клітинки, яку бажаєте перемістити (розділені пробілом): "; cin >> row >> col; }
// Головна функція гри int main() { int puzzle[SIZE][SIZE] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 0} };
int moves = 0; time_t startTime, endTime;
// Початок гри cout << "Гра \"П'ятнашки\"!" << endl; displayPuzzle(puzzle); startTime = time(NULL);
// Перемішування п'ятнашок shufflePuzzle(puzzle);
// Головний цикл гри while (!isSolved(puzzle)) { int row, col; displayPuzzle(puzzle);
#include
using namespace std;
const int SIZE = 4;
// Функція для виведення поля гри
void displayPuzzle(int puzzle[][SIZE]) {
for (int i = 0; i < SIZE; ++i) {
for (int j = 0; j < SIZE; ++j) {
cout << puzzle[i][j] << "\t";
}
cout << endl;
}
cout << endl;
}
// Функція для перевірки, чи вирішена гра
bool isSolved(int puzzle[][SIZE]) {
int count = 1;
for (int i = 0; i < SIZE; ++i) {
for (int j = 0; j < SIZE; ++j) {
if (puzzle[i][j] != count && count != SIZE * SIZE) {
return false;
}
count++;
}
}
return true;
}
// Функція для обміну значеннями двох клітинок
void swapCells(int puzzle[][SIZE], int row1, int col1, int row2, int col2) {
int temp = puzzle[row1][col1];
puzzle[row1][col1] = puzzle[row2][col2];
puzzle[row2][col2] = temp;
}
// Функція для перемішування п'ятнашок
void shufflePuzzle(int puzzle[][SIZE]) {
srand(time(NULL));
for (int i = 0; i < SIZE; ++i) {
for (int j = 0; j < SIZE; ++j) {
int randRow = rand() % SIZE;
int randCol = rand() % SIZE;
swapCells(puzzle, i, j, randRow, randCol);
}
}
}
// Функція для отримання введення користувача
void getUserMove(int& row, int& col) {
cout << "Введіть рядок та стовпчик клітинки, яку бажаєте перемістити (розділені пробілом): ";
cin >> row >> col;
}
// Головна функція гри
int main() {
int puzzle[SIZE][SIZE] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 0}
};
int moves = 0;
time_t startTime, endTime;
// Початок гри
cout << "Гра \"П'ятнашки\"!" << endl;
displayPuzzle(puzzle);
startTime = time(NULL);
// Перемішування п'ятнашок
shufflePuzzle(puzzle);
// Головний цикл гри
while (!isSolved(puzzle)) {
int row, col;
displayPuzzle(puzzle);