Есть ответ 👍

С++ Створити гру п'ятнашки, налаштувати інтерфейс( вигляд гри, початок гри, кінець, поле гри). В кінці гри вивести на екран час гри і кількість перестановок.

162
374
Посмотреть ответы 2

Ответы на вопрос:


#include
#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);
ilya482
4,7(73 оценок)

Const n=10; var a: array[1..n] of integer; i,k: integer; begin randomize; k: =0; for i: =1 to n do begin a[i]: =random(25); if a[i]> 12 then k: =k+1; end; for i: =1 to n do begin write(a[i]); write(' '); end; writeln(k); end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS