Untitled

 avatar
unknown
plain_text
2 years ago
5.5 kB
8
Indexable
#include <iostream>
#include "windows.h"
#include "random"
using namespace std;

int main()
{
	
	int q1;
	char q2;// переменные вопросов
	int f;// флаг для рандома и добавления чисел на поле
	// q1 - флаг начала игры или вывода правил
 	// q2 - вводится действие во время игры
	int a[4][4] = { 0,0,2,0,//0
					2,2,2,2,//1
					2,0,2,0,//2
					2,2,2,0 };//3
	//поле игры
	setlocale(LC_ALL, "Russian");
	cout << "Здравствуйте, это игра 2048, если вы хотите узнать правила то напишите - 1, если вы уже их знаете и хотите приступить к игре, то напишите - 2." << endl;
	cin >> q1;//вопрос о правилах
	if (q1 == 1) { // правила
		cout << "Создатель данной игры представляет вам поле, разделенное на 15 клеточек, после каждого хода на поле появляется цифра 2 или 4. Цель игры - это собрать на поле ячейку с цифрой 2048. Но что нужно делать, чтобы выиграть ?" << endl;
		cout << "Давайте представим, что в начале игры у нас на поле две заполненные ячейки, на каждой - цифра 2. Чтобы эти цифры сдвинуть, нужно нажать на кнопку по экрану вниз, вверх, влево или вправо.В зависимости от того, в какую сторону вы нажмете кнопку, туда и сдвинутся ячейки с цифрами.Если две ваши ячейки с номиналом 2 соприкоснутся и объединятся, то у вас получится одна ячейка с цифрой 4. Таким же образом соединяются и ячейки номиналом 4, образуя клетку с цифрой 8. Теперь вы видите, что ответ вопрос о том, как играть в '2048', не такой уж сложный." << endl;
		cout << "Если у вас получилось объединить ячейки так, чтобы получилась цифра 2048, -поздравляю, вы выиграли.А если на поле не осталось ни одной свободной клетки и невозможно объединить никакие из ячеек, то, к сожалению, вы проиграли." << endl;
		cout << "Если вы хотите приступить к игре, то напишите - 2." << endl;
		cin >> q1;// повторный вопрос
	}
	int i = 0, j = 0, ii = 0;//для циклов
	if (q1 == 2) {
		while (true) {
			system("cls");
			for (int i = 0; i < 4; i++) //вывод поля 
			{
				for (int j = 0; j < 4; j++)
					cout << a[i][j] << "    ";
				cout << endl;
				cout << endl;
			}
			cout << "Выберете функцию:" << endl << "w - Сдвиг вверх" << endl << "s - Сдвиг вниз" << endl << "d - Сдвиг вправо" << endl << "a - Сдвиг влево" << endl;

			cin >> q2;
			if (q2 == 'w') { // сдвиг вверх дебильный
				for (ii = 0; ii < 2; ii++)
				{
					for (i = 3; i > 0; i--)
					{
						for (j = 0; j < 4; j++)
						{
							if (a[i][j] == a[i - 1][j] && a[i][j] != 0) {
								a[i - 1][j] *= 2;
								a[i][j] = 0;
							}
							if (a[i][j] != 0 && a[i - 1][j] == 0) {
								a[i - 1][j] = a[i][j];
								a[i][j] = 0;
							}
						}
					}
				}
			}
			if (q2 == 's') { // сдвиг вниз легкатня
				for (ii = 0; ii < 2; ii++)
				{
					for (i = 0; i < 3; i++)
					{
						for (j = 0; j < 4; j++)
						{
							if (a[i][j] == a[i + 1][j] && a[i][j] != 0) {
								a[i + 1][j] *= 2;
								a[i][j] = 0;
							}
							if (a[i][j] != 0 && a[i + 1][j] == 0) {
								a[i + 1][j] = a[i][j];
								a[i][j] = 0;
							}
						}
					}
				}
			}
			if (q2 == 'd') { // сдвиг вправо легкатня
				for (ii = 0; ii < 2; ii++)
				{
					for (i = 0; i < 4; i++)
					{
						for (j = 0; j < 3; j++)
						{
							if (a[i][j] == a[i][j + 1] && a[i][j] != 0) {
								a[i][j + 1] *= 2;
								a[i][j] = 0;
							}
							if (a[i][j] != 0 && a[i][j + 1] == 0) {
								a[i][j + 1] = a[i][j];
								a[i][j] = 0;
							}
						}
					}
				}
			}
			if (q2 == 'a') { // сдвиг влево сложнота
				for (ii = 0; ii < 2; ii++)
				{
					for (i = 0; i < 4; i++)
					{
						for (j = 3; j > 0; j--)
						{
							if (a[i][j] == a[i][j - 1] && a[i][j] != 0) {
								a[i][j - 1] *= 2;
								a[i][j] = 0;
							}
							if (a[i][j] != 0 && a[i][j - 1] == 0) {
								a[i][j - 1] = a[i][j];
								a[i][j] = 0;
							}
						}
					}
				}
			}
			Sleep(500);
			int f = 0;
			int i1, j1;// для записи рандомных координат
			while (f != 1) {
				i1 = rand() % 3 + 0;
				j1 = rand() % 3 + 0;
				if (a[i1][j1] == 0) {
					if (i1 + j1 % 2 == 1) a[i1][j1] = 4;
					else a[i1][j1] = 2;
					f = 1;
				}
			}
			Sleep(500);
			
		}

	}
}

Editor is loading...