Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

C++ Простенькое консольное приложение VKcoin

Статус
В этой теме нельзя размещать новые ответы.

execution

Изучающий
Professional
Пользователь
Регистрация
23 Июн 2017
Сообщения
981
Лучшие ответы
38
Репутация
364
PHP:
#include "pch.h"
#include <iostream>
#include <Windows.h>

#define MIN_ITEM_COUNT				(0)
#define MAX_ITEM_COUNT				(4)
#define MAX_ITEM_NAME_LEGTH			(11)
#define DEFAULT_TIME_TO_SCORE_SEC	(5)
#define UPDATE_GAMGE_IN_SEC			(1)

using namespace std;

const char ITEM_NAME[MAX_ITEM_COUNT][MAX_ITEM_NAME_LEGTH + 1] =
{
	"Компьютер",
	"Видеокарта",
	"Сервер",
	"Дата-центр"
};

const float ITEM_PECENT_PRICE[MAX_ITEM_COUNT] =
{
	30,
	40,
	50,
	80
};

const float ITEM_ADD_COIN[MAX_ITEM_COUNT] =
{
	0.0005,
	0.003,
	0.08,
	0.1
};

struct Player
{
	double p_coin;
	float p_addmoney_sec;
	int p_count_item[MAX_ITEM_COUNT];
	float p_item_price[MAX_ITEM_COUNT];
};

int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

	Player Player_1 = { 0.0000, 0.0001, { 0, 0, 0, 0 }, { 0.0002, 0.005, 0.01, 5.0 } };

	int i = 0;

	while (true) 
	{
		Player_1.p_coin += Player_1.p_addmoney_sec;

		cout << "Пополнение: " << Player_1.p_coin << " VKcoin (" << Player_1.p_addmoney_sec << "/с)" << endl;

		if (++i == DEFAULT_TIME_TO_SCORE_SEC) 
		{
			cout << "Весь список предметов: " << endl;

			for (size_t j = 0; j < MAX_ITEM_COUNT; j++)
			{
				cout << (j + 1)  << ". " << ITEM_NAME[j] << " за "
					<< (Player_1.p_count_item[j] > 0 ? (Player_1.p_item_price[j] * (ITEM_PECENT_PRICE[j] / 100)) : (Player_1.p_item_price[j]))
					<< " VKcoin" << endl;
			}

			int choose;

			while (true) 
			{
				cout << "Введите номер предмета, который хотите купить. В ином случае введите: -1" << endl;

				cin >> choose;

				if (choose != -1) 
				{
					if (choose > MAX_ITEM_COUNT || choose < MIN_ITEM_COUNT + 1) 
					{
						cout << "Введите номер предмета не больше " << MAX_ITEM_COUNT << " и не меньше " << MIN_ITEM_COUNT << endl;
						continue;
					}
					else 
					{
						float need_coin = (Player_1.p_count_item[choose - 1] > 0 ? (Player_1.p_item_price[choose - 1] * (ITEM_PECENT_PRICE[choose - 1] / 100)) : (Player_1.p_item_price[choose - 1]));

						if (need_coin > Player_1.p_coin) 
						{
							cout << "У вас недостаточно VKcoin, чтобы приобрести " << ITEM_NAME[choose - 1] << endl;
							continue;
						}
						else 
						{
							i = 0;

							Player_1.p_coin -= need_coin;
							Player_1.p_count_item[choose - 1] ++;
							Player_1.p_item_price[choose - 1] = need_coin;
							Player_1.p_addmoney_sec += ITEM_ADD_COIN[choose - 1];

							cout << "Вы успешно приобрели " << ITEM_NAME[choose - 1] << " за " << need_coin << " VKcoin" << endl;
							break;
						}
					}
				}
				else 
				{
					i = 0;

					break;
				}
			}
		}
		else 
		{
			Sleep(1000 * UPDATE_GAMGE_IN_SEC);
		}
	}


	cin.get();

	return 0;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу