Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Игра

Featured Replies

Здравейте, не знам дали точно тука е мястото да попитам за въпроса. Той е че се мъча да направя една игра но не ми дава да напиша с колко пари почвам 

Ето кода

#include <SDL2\SDL.h>



// main.cpp
// Извикване на нужните библиотеки
#include <SDL2\SDL_ttf.h>
#include <SDL2\SDL_mixer.h>
#include <string>
#include <cstring>
#include <math.h>
#include <iostream>
#include <sstream>
#include "Roulette.h"
#include <cstdlib>
#include <Windows.h>
#include <ctime>   
using namespace std;


#pragma comment(lib, "SDL2.lib")
#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL2_ttf.lib")
#pragma comment(lib, "SDL2_mixer.lib")
#pragma comment(lib, "SDL2_image.lib")

/*const int WINDOW_WIDTH = 860;       // Задаване на ширина на екрана
const int WINDOW_HEIGHT = 645;      // Задаване на височина на екрана
const char* WINDOW_TITLE = "Roulette"; // Задаване на името на прозореца */

									//-------------------

									//-------------------

int main(int argc, char **argv)
{
	if (!initSDL())		// Проверка дали инициализацията на SDL е извършена успешно
	{
		cerr << ("Неуспешна инициализация!\n");
		//return -1;
	}

	//----- Звук ------

	Mix_Music *intro;
	// създаване на указател  за фонова музика
	Mix_Chunk *rollEffect;              // създаване на указател за звукови ефекти
	intro = Mix_LoadMUS("intro.wav"); // Зареждане на звуков файл за фонова музика
	rollEffect = Mix_LoadWAV("RollDice.wav");
	//Зареждане на звуков файл за звукови ефекти
	Mix_PlayMusic(intro, 20); // Пускане на фоновата музика
	//----------------
							  

							  // Декларация на променливите -------
	int start = 0;
	int helpScreen = 0;
	int sum;  // Сумата от хвърлените зарове
	int die1; // Първи зар
	int die2; // Втори зар
	int FirstPoint; // Установена  точка
	int gameStatus = 5;  // Променлива за статуса на играта 
	int stage = 0; // Променлива за етапа на играта
	int bet = 0;  // Залог на играча
	int flagPoint = 0; // Флаг за наличие на "установена точка "
	int Rmoney = 50; // Парите на играча 
	int money = Rmoney; // Парите на играча след направен залог
	int mute = 1; // Флаг за указващ наличието и липсата на звук
	int sound = 1; // Флаг показващ промяна на състоянието на звука
	int audio = 1; // Флаг  указващ наличието/липсата на звукови ефекти
	int Tsum = 0;  // Сумата от хвърлените зарове , използва се при наличие на
				   // "установена точка "
	int fast = 10; // Променлива за по-бързо променяне на стойността на залога
				   //----------------------------------------------
				   // Генератор на случайни числа (Генерира случайно число спрямо текущото време)
	srand((unsigned)time(0));


	// Декларации за графика ------
	int sourceX = 0; //  Координата Х за източника на изображение
	int sourceY = 0; //  Координата У за източника на изображение
	int sourceWidth = 96; // Дължина и височина на използваното изображение 
	int sourceHeight = 96; // за зар
	int cordX = 330; // Координати по Х и У
	int cordY = 320; // за заровете 
	int TextX = 285; // Координати по Х и У
	int TextY = 550; // за текста  , показващ парите и залога .
	int ChatX = 274; // Координати по Х и У 
	int ChatY = 23;  // показващ етапа на играта 
					 //---- Стрингове които се използват за оказване кое изображение да се появи на екрана --
	char *status = "Empty.bmp"; // 
	//char *help;
	char *CDice1, *CDice2;
	//----------------------

	// Частта от екрана, върху която искаме на рисуваме
	SDL_Rect fillImage = { 0 , 0 ,865, 645 };
	// Частта от изображението, което искаме на покажем на екрана
	SDL_Rect SourcefillImage = { 0 , 0 ,865, 645 };

	// Масива за бутоните
	bool keysHeld[323] = { false }; // Всичко се инициализира като лъжа
									// Следене на настъпилите събития
	SDL_Event event;
	SDL_PollEvent(&event);
	bool gameRunning = true;

	//Извикване на функция за изобразяване началния екран
	welcomeScreen(screen, window);

	//Изобразяване на фона
	SDL_Surface *backgroundImage1 = SDL_LoadBMP("Gamescreen2.bmp");

	//--------------------------


	// Цикъла на играта
	while (gameRunning)
	{
		// Входни събития
		if (SDL_PollEvent(&event) != 0)
		{
			if (event.type == SDL_QUIT)
			{
				gameRunning = false;
			}

			if (event.type == SDL_KEYDOWN)
			{
				keysHeld[event.key.keysym.sym] = true;
			}
			if (event.type == SDL_KEYUP)
			{
				keysHeld[event.key.keysym.sym] = false;
			}
		}
		// Излизане от играта при натискане на  ESCAPE
		if (keysHeld[SDLK_ESCAPE])
		{
			gameRunning = false;
		}
		if (keysHeld[SDLK_h])
		{
			helpScreen = 1;
			draw("Help.bmp", screen, 0, 0, 195, 25, 462, 600);
			start = 0;
			SDL_UpdateWindowSurface(window);
		}
		//------------------------------------------------------

		//След като играча е видял първоначалния екран с информация
		// за играта , се изрисува фона, и започва изпълнението на играта
		if (start == 0)
		{
			if (keysHeld[SDLK_SPACE])
			{
				helpScreen = 0;
				SDL_BlitSurface(backgroundImage1, NULL, screen, NULL);
				//draw("Gamescreen.bmp", screen, 0, 0, 0, 0, 860, 645);
				SDL_UpdateWindowSurface(window);
				if (mute == 1)
				{
					draw("SoundOn.bmp", screen, 0, 0, 4, 4, 25, 25);

				}
				else
				{

					draw("SoundOff.bmp", screen, 0, 0, 4, 4, 25, 25);

				}

				start = 1;
			}
		}
		// Започване на изпълнението на играта 
		else
		{
			//---------------------------------------------


			//-------Спиране/Пускане на фоновата музика -------

			if (keysHeld[SDLK_m])
			{
				audio = 0;
			}
			if ((keysHeld[SDLK_m]) && sound == 1)
			{
				if (mute == 1)
				{
					// Изрисуване на изображение за липса на звук
					draw("SoundOff.bmp", screen, 0, 0, 4, 4, 25, 25);
					SDL_UpdateWindowSurface(window);
					Mix_PauseMusic(); // Задаване на пауза на фоновата музика
					mute = 0;
				}
				else
				{
					audio = 1;
					// Изрисуване на изображение за наличие на звук
					draw("SoundOn.bmp", screen, 0, 0, 4, 4, 25, 25);
					SDL_UpdateWindowSurface(window);
					Mix_ResumeMusic(); // Продължаване на изпълнението на 
									   // фоновата музика
					mute = 1;
				}
				sound = 0;
			}

			if (sound == 0)
			{
				delayTime(0.5);
				sound = 1;
			}


			//-------------------------------			вярно!


			// Text Drawing---------------------------
			//--- Изрисуване на парите и залога на играча ---
			draw("Down.bmp", screen, 0, 0, TextX - 200, TextY - 185, 87, 200);
			draw("Down.bmp", screen, 0, 0, TextX + 400, TextY - 185, 87, 200);
			//--- Конвертиране на целочислено в стринг --
			stringstream ss;
			ss << money;
			string str = ss.str();
			//--------------------
			drawText(screen,          // Изобразяване  парите на играча
				ss.str().c_str(),
				20,
				TextX - 200, TextY - 185,
				255, 255, 255,
				0, 0, 255);
			//--- Конвертиране на целочислено в стринг --
			ss.str(""); // Изпразване на  string strema
			ss.clear();
			ss << bet;
			str = ss.str();
			//--------------------
			drawText(screen,  // Изобразяване залога на играча
				ss.str().c_str(),
				20,
				TextX + 400, TextY - 185,
				255, 255, 255,
				0, 0, 255);
			SDL_UpdateWindowSurface(window);

			//-------------------------------			wqrno!


			//--- Проверка за етапа на играта
			if (stage == 1 || stage == 2)
			{
				if (keysHeld[SDLK_r]) // Хвърляне на заровете при натискане на R
				{
					Sleep(100);
					SDL_UpdateWindowSurface(window); // Обновяване на екрана


					rollDice(die1, die2, sum); // Извикване на функция за хвърляне на
											   // заровете

											   //-- Проверка дали е настъпил втория етап на играта
					if (stage == 2) {
						gameStageTwo(sum, FirstPoint, gameStatus);
					} // Извикване на функция
					  // за втория етап на играта
					  //-- Проверка дали играта е в първи етап
					if (stage == 1) {
						FirstPoint = sum;       // Присвояване на сумата, при нужда се
												// използва във втория етап
						gameStageOne(stage, sum, gameStatus);// Извикване на функция
															 // за първия етап на играта
															 //-- Проверка дали играта ще продължи към етап две
						if (gameStatus == 3)
						{
							flagPoint = 1;   // Флаг показващ че е настъпил втори
											 // етап на играта
							Tsum = sum;
						}
					}
					//-- Проверка дали играчът печели

					if (gameStatus == 1)
					{
						status = "win.bmp"; // Указване за промяна на статуса на победа
						Rmoney += bet;        // Обновяване на парите на играча
						money = Rmoney;
						stage = 0;            // Нулиране на етапа на играта
						bet = 0;              // Нулиране на залога
						gameStatus = 4;
					}      // Промяна на статуса на играта

						   //------------------------

						   //---- Проверка дали играчът губи ---
					else if (gameStatus == 0)
					{
						status = "lose.bmp"; // Указване за промяна изображението за
											 // статуса на загуба
						Rmoney -= bet;         // Обновяване на парите на играча
						money = Rmoney;
						stage = 0;              // Нулиране на етапа на играта
						bet = 0;                // Нулиране на залога
						gameStatus = 4;
					}        // Промяна на статуса на играта

					if (audio == 1)
					{
						Mix_PlayChannel(-1, rollEffect, 0); // Изпълнение на звуков ефект,
															// хвърляне на зар
					}
					delayTime(2.4); // Забавяне
									//--- Симулиране на анимация "хвърлящи" се зарове
					drawAnim(screen, sourceX, sourceY, cordX, cordY - 165, sourceWidth, sourceHeight, window);
					//-------------------

					//--   Определяне на извикваните изображения за заровете ----

					die1 == 1 ? CDice1 = "1.bmp" : die1 == 2 ? CDice1 = "2.bmp" : die1 == 3 ? CDice1 = "3.bmp" : die1 == 4 ? CDice1 = "4.bmp" : die1 == 5 ? CDice1 = "5.bmp" : CDice1 = "6.bmp";
					die2 == 1 ? CDice2 = "1R.bmp" : die2 == 2 ? CDice2 = "2R.bmp" : die2 == 3 ? CDice2 = "3R.bmp" : die2 == 4 ? CDice2 = "4R.bmp" : die2 == 5 ? CDice2 = "5R.bmp" : CDice2 = "6R.bmp";

					// -- Изобразяване на първия и втория зар ---

					draw(CDice1, screen, sourceX, sourceY, cordX, cordY - 165, sourceWidth, sourceHeight);
					draw(CDice2, screen, sourceX, sourceY, cordX + 125, cordY - 165, sourceWidth,
						sourceHeight);

					//----------------------------------------		vqrno
				}
			}

			SDL_UpdateWindowSurface(window); // Обновяване на екрана
							  // Изобразяване на статуса на играта
			if (gameStatus == 4)
			{
				draw(status, screen, 0, 0, ChatX, ChatY, 323, 50);
				delayTime(0.9);
				SDL_UpdateWindowSurface(window);

			}


			//---- Промяна на залога ---------			vqrno

			//--- Увеличаване на залога --
			if (stage == 0 && (Rmoney >= bet))
			{
				if (money >= fast)
				{
					if (keysHeld[SDLK_s]) // Увеличаване с 10
					{
						money -= fast;;
						bet += fast;
					}
				}
				if (Rmoney>bet)
				{
					if (keysHeld[SDLK_a])           // Увеличаване с 1
					{
						money--;
						bet++;
					}
				}
				//------------------------------

				//------ Намаляване на залога -------
				if (bet != 0)
				{

					if (bet >= fast)
					{
						if (keysHeld[SDLK_x]) // Намаляване с 10
						{
							money += fast;;
							bet -= fast;
						}
					}
					if (keysHeld[SDLK_z])                   // Намаляване с 1
					{
						money++;
						bet--;
					}
					//-------------------
					//--------------------------------

					//----- Приемане на залога-----
					if (keysHeld[SDLK_b])
					{
						stage = 1; // Играта може да настъпи в първи етап

					}
				}

			}
			//---------------------------


			//----- Обработка на екрана при наличие на точка -----
			if (flagPoint == 1 && stage == 2)
			{
				// -- Задаване на екрана , че има "установяване на точка"
				status = "accpoints.bmp";
				draw(status, screen, 0, 0, ChatX, ChatY, 323, 50);
				SDL_UpdateWindowSurface(window);
				delayTime(0.09);

				//----------------------------

				//-- Задаване на екрана стойността на точката

				Tsum == 4 ? status = "winif4.bmp" : Tsum == 5 ? status = "winif5.bmp" : Tsum == 6 ? status = "winif6.bmp" : Tsum == 8 ? status = "winif8.bmp" : Tsum == 9 ? status = "winif9.bmp" : Tsum == 10 ? status = "winif10.bmp" : status = "empty.bmp";

				flagPoint = 0;
				draw(status, screen, 0, 0, ChatX, ChatY, 323, 50);
				SDL_UpdateWindowSurface(window);
				delayTime(0.09);
			}

			//--------------------

			//----------------------


			SDL_UpdateWindowSurface(window); // Обновяване на екрана
		}
		//------- Проверка за "фалит" на играча ----
		if (Rmoney == 0)
		{
			delayTime(0.04); // Извикване на функция за закъсняване
			gameRunning = false; // Падане на флага за изпълнение на цикъла
			loseScreen(screen, window); // Извикване на функция за показване на картина на
								// екрана, показваща че играча е фалит и играта е приключила
			SDL_UpdateWindowSurface(window); // Обновяване на екрана
			delayTime(0.02);  // Забавяне на програмата
		}
		//------------------------------------


		}

	SDL_FreeSurface(backgroundImage1); // Освобождаване на изображението от паметта
	Mix_FreeMusic(intro);             // Освобождаване на звуковия файл от паметта
	Mix_FreeChunk(rollEffect);        // Освобождаване на звуковия файл от паметта

	SDL_Quit();

	return 0;
}



Трябва където пише Money да ми изкарва да мога да пиша

https://scontent-frt3-1.xx.fbcdn.net/v/t34.0-12/15174484_1336786286346217_1071841137_n.jpg?oh=a0113e769f9ec5887018496bb82a1083&oe=58377222

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.