Sie sind auf Seite 1von 6

// INCLUDES

#include <iostream>
#include <string>
#include <random>
#include <ctime>
// RANDOM
std::mt19937 randomEngine;
const std::uniform_real_distribution<float> attackGenerator(0.0f, 1.0f);
// DAMAGER 1
const int DAMAGE_1 = 50;
const float ATTACK_1 = 0.2f;
const int HEALT_1 = 150;
// DAMAGER 2
const int DAMAGE_2 = 25;
const float ATTACK_2 = 0.6f;
const int HEALT_2 = 100;
// CURRENT
bool attackTurn;
int currentHealt1;
int currentHealt2;
int currentDamager1Count;
int currentDamager2Count;
// GAME
bool running = false;
bool combat = false;
int language = -1;
int startingDamager1Count;
int startingDamager2Count;
// LANGUAGES
const int LANGUAGE_TR = 0;
const int LANGUAGE_EN = 1;
// PRINT MODES
const int PRINT_MODE_INFO = 0;
const int PRINT_MODE_WARNING = 1;
const int PRINT_MODE_INPUT = 2;
// PRINT
void print(std::string message, int mode, bool newLine)
{
using namespace std;
if (newLine) message += "\n";
if (mode == PRINT_MODE_INFO)
cout << endl << "# " << message;
else if (mode == PRINT_MODE_WARNING)
cout << endl << "% " << message;
else if (mode == PRINT_MODE_INPUT)
cout << endl << "] " << message;

else
print("Un specified print mode: " + mode, PRINT_MODE_WARNING, tr
ue);
}
// READ
int read(std::string message)
{
using namespace std;
print(message, PRINT_MODE_INPUT, false);
int result;
cin >> result;
return result;
}
// ATTACK
void attack()
{
if (!combat) return;
float chance = attackGenerator(randomEngine);
if (attackTurn)
{
if (chance <= ATTACK_1)
{
currentHealt2 -= DAMAGE_1;
if (currentHealt2 <= 0)
{
currentDamager2Count--;
currentHealt2 = HEALT_2;
}
}
}
else
{
if (chance <= ATTACK_2)
{
currentHealt1 -= DAMAGE_2;
if (currentHealt1 <= 0)
{
currentDamager1Count--;
currentHealt1 = HEALT_1;
}
}
}
attackTurn = !attackTurn;
if (currentDamager1Count <= 0 || currentDamager2Count <= 0) combat = fal
se;
}
// LANGUAGE
bool isLanguageValid()

{
if (language == LANGUAGE_TR) return true;
if (language == LANGUAGE_EN) return true;
return false;
}
// MAIN
int main()
{
system("title 1D Combat Simulator / Created by Centeglassered");
// Language Selection
{
print("ID / Language", PRINT_MODE_INFO, true);
print(std::to_string(LANGUAGE_TR) + " / Turkce", PRINT_MODE_INFO
, false);
print(std::to_string(LANGUAGE_EN) + " / English", PRINT_MODE_INF
O, true);
do
{
language = read("Select a language: ");
}
while (!isLanguageValid());
}
// Starter
{
if (language == LANGUAGE_TR) print("1B Savas Simulasyonu 2015",
PRINT_MODE_INFO, true);
if (language == LANGUAGE_EN) print("1D Combat Simulator 2015", P
RINT_MODE_INFO, true);
}
// Properties of Damager 1
{
if (language == LANGUAGE_TR) print("# # Robot Ozellikleri # # #"
, PRINT_MODE_INFO, true);
if (language == LANGUAGE_EN) print("# # Robot Properties # # #",
PRINT_MODE_INFO, true);
if (language == LANGUAGE_TR) print("HASAR: " + std::to_string(DA
MAGE_1), PRINT_MODE_INFO, false);
if (language == LANGUAGE_EN) print("DAMAGE: " + std::to_string(D
AMAGE_1), PRINT_MODE_INFO, false);
if (language ==
string((int) (ATTACK_1 * 100)),
if (language ==
tring((int) (ATTACK_1 * 100)) +

LANGUAGE_TR) print("SALDIRI SANSI: %" + std::to_


PRINT_MODE_INFO, false);
LANGUAGE_EN) print("ATTACK CHANCE: " + std::to_s
"%", PRINT_MODE_INFO, false);

if (language == LANGUAGE_TR) print("CAN: " + std::to_string(HEAL


T_1), PRINT_MODE_INFO, true);
if (language == LANGUAGE_EN) print("HEALT: " + std::to_string(HE
ALT_1), PRINT_MODE_INFO, true);
}
// Properties of Damager 2

{
if (language == LANGUAGE_TR) print("# # Korsan Ozellikleri # # #
", PRINT_MODE_INFO, true);
if (language == LANGUAGE_EN) print("# # Pirate Properties # # #"
, PRINT_MODE_INFO, true);
if (language == LANGUAGE_TR) print("HASAR: " + std::to_string(DA
MAGE_2), PRINT_MODE_INFO, false);
if (language == LANGUAGE_EN) print("DAMAGE: " + std::to_string(D
AMAGE_2), PRINT_MODE_INFO, false);
if (language ==
string((int) (ATTACK_2 * 100)),
if (language ==
tring((int) (ATTACK_2 * 100)) +

LANGUAGE_TR) print("SALDIRI SANSI: %" + std::to_


PRINT_MODE_INFO, false);
LANGUAGE_EN) print("ATTACK CHANCE: " + std::to_s
"%", PRINT_MODE_INFO, false);

if (language == LANGUAGE_TR) print("CAN: " + std::to_string(HEAL


T_2), PRINT_MODE_INFO, true);
if (language == LANGUAGE_EN) print("HEALT: " + std::to_string(HE
ALT_2), PRINT_MODE_INFO, true);
}
// Game Loop
running = true;
while (running)
{
// Setting Values
running = false;
attackTurn = true;
std::mt19937 randomGenerator(time(NULL));
// Getting Sizes of the Armies
{
do
{
if (language == LANGUAGE_TR) startingDamager1Cou
nt = read("Savasa Katilacak Robot Sayisi: ");
if (language == LANGUAGE_EN) startingDamager1Cou
nt = read("The Number Of Robots: ");
}
while (startingDamager1Count <= 0);
currentDamager1Count = startingDamager1Count;
do
{
if (language == LANGUAGE_TR) startingDamager2Cou
nt = read("Savasa Katilacak Korsan Sayisi: ");
if (language == LANGUAGE_EN) startingDamager2Cou
nt = read("The Number Of Pirates: ");
}
while (startingDamager2Count <= 0);
currentDamager2Count = startingDamager2Count;
}
// Begining

{
if (language == LANGUAGE_TR) print("Savas basliyor!", PR
INT_MODE_WARNING, true);
if (language == LANGUAGE_EN) print("Begining combat!", P
RINT_MODE_WARNING, true);
}
// Combat Noises
{
if (language == LANGUAGE_TR) print(" <Savas Gurultuleri
>", PRINT_MODE_INFO, true);
if (language == LANGUAGE_EN) print(" <Combat Noises>",
PRINT_MODE_INFO, true);
}
// Attack Loop
{
combat = true;
while (combat) attack();
}
// Combat Ended
{
if (language == LANGUAGE_TR) print("Savas bitti!", PRINT
_MODE_WARNING, true);
if (language == LANGUAGE_EN) print("Combat ended!", PRIN
T_MODE_WARNING, true);
}
// Winner
bool winner = currentDamager1Count > 0;
{
if (winner)
{
if (language == LANGUAGE_TR) print("Robotlar kaz
andi!", PRINT_MODE_WARNING, false);
if (language == LANGUAGE_EN) print("Robots win!"
, PRINT_MODE_WARNING, false);
}
else
{
if (language == LANGUAGE_TR) print("Korsanlar ka
zandi!", PRINT_MODE_WARNING, false);
if (language == LANGUAGE_EN) print("Pirates win!
", PRINT_MODE_WARNING, false);
}
}
// Alives
{
if (winner)
{
if (language == LANGUAGE_TR) print("Sag kalan Ro
botlar: " + std::to_string(currentDamager1Count), PRINT_MODE_INFO, true);
if (language == LANGUAGE_EN) print("Living Robot
s: " + std::to_string(currentDamager1Count), PRINT_MODE_INFO, true);
}

else
{
if (language == LANGUAGE_TR) print("Sag kalan Ko
rsanlar: " + std::to_string(currentDamager2Count), PRINT_MODE_INFO, true);
if (language == LANGUAGE_EN) print("Living Pirat
es: " + std::to_string(currentDamager2Count), PRINT_MODE_INFO, true);
}
}
// Deads
{
if (language ==
ngDamager1Count - currentDamager1Count)
);
if (language ==
ngDamager1Count - currentDamager1Count)
e);
if (language ==
ngDamager2Count - currentDamager2Count)
);
if (language ==
ngDamager2Count - currentDamager2Count)
e);
}

LANGUAGE_TR) print(std::to_string(starti
+ " Robot oldu!", PRINT_MODE_INFO, false
LANGUAGE_EN) print(std::to_string(starti
+ " Robots dead!", PRINT_MODE_INFO, fals
LANGUAGE_TR) print(std::to_string(starti
+ " Korsan oldu!", PRINT_MODE_INFO, true
LANGUAGE_EN) print(std::to_string(starti
+ " Pirates dead!", PRINT_MODE_INFO, tru

// New Game
int newGame;
if (language == LANGUAGE_TR)
{
print("Yeni oyun?", PRINT_MODE_INFO, false);
newGame = read("Evet - 1 / Hayir - 0: ");
}
if (language == LANGUAGE_EN)
{
print("New game?", PRINT_MODE_INFO, false);
newGame = read("Yes - 1 / No - 0: ");
}
running = newGame == 1;
}
// Thanks for Playing!
{
if (language == LANGUAGE_TR)
NT_MODE_WARNING, false);
if (language == LANGUAGE_EN)
MODE_WARNING, false);
if (language == LANGUAGE_TR)
INT_MODE_INFO, true);
if (language == LANGUAGE_EN)
INT_MODE_INFO, true);
std::cout << std::endl;
}
system("pause");
return 0;
}

print("Oynadigin icin sag ol!", PRI


print("Thanks for playing!", PRINT_
print("Yapimci: Centeglassered", PR
print("Creator: Centeglassered", PR

Das könnte Ihnen auch gefallen