Created
October 19, 2021 16:52
-
-
Save AlexanderWyss/3c7bb44f6f0a47e5e64e5e1c6cd9c5bb to your computer and use it in GitHub Desktop.
Pokemon console
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <string.h> | |
#include <windows.h> | |
#include <time.h> | |
int choosePokemon(); | |
void showGui(); | |
int playerChooseAttack(); | |
void executeAttack(); | |
bool checkForVictory(); | |
void victory(); | |
void generateHealthbars(); | |
int generateRandomNumber(int); | |
double calculateAttackMultiplicator(int); | |
void clearBuffer(); | |
int choosePlaymode(); | |
void playmode1vs1(); | |
void playmodeSurvival(); | |
void chooseAction(); | |
void useHealingPotion(); | |
void useSuperHealingPotion(); | |
void useSuperAttack(); | |
void useSuperDefense(); | |
void selectItem(); | |
void itemDrop(); | |
bool checkForGameOverSurvival(); | |
void changePokemon(); | |
void reset(); | |
char versus[] = "\t \t \t___ ________\n\t \t \t\\ \\/ / ___/\n\t \t \t \\ /\\___ \\ \n\t \t \t \\_//____ >\n\t \t \t \\/\n\n\n"; | |
char pokemonSchriftzug[] = " .::.\n\t .;:**\' \n\t ` \n\t .:XHHHHk. db. .;;. dH MX \n\toMMMMMMMMMMM ~MM dMMP :MMMMMR MMM MR ~MRMN\n\tQMMMMMb \"MMX MMMMMMP !MX\' :M~ MMM MMM .oo. XMMM \'MMM\n\t `MMMM. )M> :X!Hk. MMMM XMM.o\" . MMMMMMM X?XMMM MMM>!MMP\n\t \'MMMb.dM! XM M\'?M MMMMMX.`MMMMMMMM~ MM MMM XM `\" MX MMXXMM\n\t ~MMMMM~ XMM. .XM XM`\"MMMb.~*?**~ .MMX M t MMbooMM XMMMMMP\n\t ?MMM> YMMMMMM! MM `?MMRb. `\"\"\" !L\"MMMMM XM IMMM\n\t MMMX \"MMMM\" MM ~%: !Mh.\"\"\" dMI IMMP\n\t \'MMM. IMX\n\t ~M!M IMP\n\n\n\n"; | |
int playerHealth; | |
int computerHealth; | |
int healthNumber = 0; | |
int strengthNumber = 0; | |
int elementNumber = 1; | |
int attackGroupNumber = 2; | |
int numberOfPokemons = 4; | |
int numberOfAttacks = 4; | |
int superDefensActive = 0; | |
int superAttackActive = 0; | |
char pokemonPlayerOutput[4][2000] = { { " .: \n M.7\n I ,...\n .. ....\n ... ... .\n M.....:::?\n .888888888:::\n D888888888D888,\n .8888. .D888888888.\n 8?888. :,888M88888D. N88..\n M?888.::~888MDNNNNMNN7 NDZ=.\n MD888888D8==== D MM~=.\n $MM88 888=:=== NMMMM= O ..\n .OZ8888 88===M. MMMMM= .\n O. MMM8.88MMM $.MMMM$.\n NMM MMMMMMM. .MMMM=.\n N . MMMMMMMMN8. M= .\n . ?. ,:::::: M+ :,\n . . +......::. .8 ..\n Z . ..7 ..... D\n Z .M . . 8\n .?\n . +\n\n" }, | |
{ " .I7777..\n I77777777.\n 7777777M77.\n .M777777.MM7.\n .77777777MM.7.\n 7777777777777. :\n 8777$77777777. .Z\n .. 7Z7777N,ZZ77 .. ZZZ..\n .7777D7++++77Z77O7777Z. ZZZZI\n .77777~++++~I77777777. .+ZZZ.\n 7777~~+~~~~N77777I ++7=Z.\n .$N~~~~~~~~7777 ++++.\n ~~~~~~~~~~777. .ZZ\n 8~~~~~~~~~7777. .7.\n .~~~~~~~~~N777. 77.\n ~~~~~~~~~D777. .777.\n .77~~~~~~~~7$77I77777777.\n 7777D+~~~~+77777777777D.\n .7777ZZZ++I77777N777O~8\n .$NZZZZ .77777. ..\n ,.7777ZZZ. .77777.\n ...... ....... \n\n" }, | |
{ " `;,;.;,;.;.\'\n ..:;:;::;:\n ..--\'\'\' \'\' \' \' \'\'\'--.\n /\' . .\' \'. .`\\\n | / / \\ \'.|\n | | : : :|\n .\'| | : : :|\n ,: /\\ \\.._\\ __..===..__/_../ /`.\n |\'\' | :.| `\' `\' |.\' ::.\n | | \'\'| :\'\'; | , `\'\'\\\n |.: \\/ | /\'-.`\' \':\'.-\'\\ | \\, |\n | \' / / | / |... | \\ | | |\';\'|\n \\ _ |:.| |_\\_|`.\' |_/_| |.:| _ |\n /,.,.|\' \\__ . . __/ \'|.,.,\\\n | \':`.`----._____.---\'.\' |\n \\ `:\"\"\"-------\'\"\"\' | |\n \',-,-\', .\'-=,=,\n \n\n" }, | |
{ " ___ \n _.-~~ ~~~-. \n / _ ~. \n |#` /#` \\ \n |-\'| |-\'| | \n /-- -- |-. \n \\__ . . / /\\_ \n \\ ~~--___---~~/\\| | ~-. \n .---`~~--____---_) \\ \\-__ \\ \n ) < |__ __\\_ \\ \\ | \n ~-.__ / ~~~~ \\ \\ \\ | \n ~-. | .~-.-\' | | \n | \\___|___/ / / | \n | / | \\ | | / | \n \\ | ~-___ \\ \\/ / \n /\\__ / `._ / ~-\\ \\_/ \n / \\_____| |`~ \n | | | | \n \\ | | | \n >______) /_/\\/\\_\\ \n\n" } }; | |
char pokemonComputerOutput[4][2000] = { { "\t\t \t \t .: \n\t\t \t \t M.7\n\t\t \t \t I ,...\n\t\t \t \t .. ....\n\t\t \t \t ... ... .\n\t\t \t \t M.....:::?\n\t\t \t \t .888888888:::\n\t\t \t \t D888888888D888,\n\t\t \t \t .8888. .D888888888.\n\t\t \t \t 8?888. :,888M88888D. N88..\n\t\t \t \t M?888.::~888MDNNNNMNN7 NDZ=.\n\t\t \t \t MD888888D8==== D MM~=.\n\t\t \t \t $MM88 888=:=== NMMMM= O ..\n\t\t \t \t .OZ8888 88===M. MMMMM= .\n\t\t \t \t O. MMM8.88MMM $.MMMM$.\n\t\t \t \t NMM MMMMMMM. .MMMM=.\n\t\t \t \t N . MMMMMMMMN8. M= .\n\t\t \t \t . ?. ,:::::: M+ :,\n\t\t \t \t . . +......::. .8 ..\n\t\t \t \t Z . ..7 ..... D\n\t\t \t \t Z .M . . 8\n\t\t \t \t .?\n\t\t \t \t . +\n\n" }, | |
{ "\t\t \t \t .I7777..\n\t\t \t \t I77777777.\n\t\t \t \t 7777777M77.\n\t\t \t \t .M777777.MM7.\n\t\t \t \t .77777777MM.7.\n\t\t \t \t 7777777777777. :\n\t\t \t \t 8777$77777777. .Z\n\t\t \t \t .. 7Z7777N,ZZ77 .. ZZZ..\n\t\t \t \t .7777D7++++77Z77O7777Z. ZZZZI\n\t\t \t \t .77777~++++~I77777777. .+ZZZ.\n\t\t \t \t 7777~~+~~~~N77777I ++7=Z.\n\t\t \t \t .$N~~~~~~~~7777 ++++.\n\t\t \t \t ~~~~~~~~~~777. .ZZ\n\t\t \t \t 8~~~~~~~~~7777. .7.\n\t\t \t \t .~~~~~~~~~N777. 77.\n\t\t \t \t ~~~~~~~~~D777. .777.\n\t\t \t \t .77~~~~~~~~7$77I77777777.\n\t\t \t \t 7777D+~~~~+77777777777D.\n\t\t \t \t .7777ZZZ++I77777N777O~8\n\t\t \t \t .$NZZZZ .77777. ..\n\t\t \t \t ,.7777ZZZ. .77777.\n\t\t \t \t ...... ....... \n\t\t \t \t \n\n" }, | |
{ "\t\t \t \t `;,;.;,;.;.\'\n\t\t \t \t ..:;:;::;:\n\t\t \t \t ..--\'\'\' \'\' \' \' \'\'\'--.\n\t\t \t \t /\' . .\' \'. .`\\\n\t\t \t \t | / / \\ \'.|\n\t\t \t \t | | : : :|\n\t\t \t \t .\'| | : : :|\n\t\t \t \t ,: /\\ \\.._\\ __..===..__/_../ /`.\n\t\t \t \t |\'\' | :.| `\' `\' |.\' ::.\n\t\t \t \t | | \'\'| :\'\'; | , `\'\'\\\n\t\t \t \t |.: \\/ | /\'-.`\' \':\'.-\'\\ | \\, |\n\t\t \t \t | \' / / | / |... | \\ | | |\';\'|\n\t\t \t \t \\ _ |:.| |_\\_|`.\' |_/_| |.:| _ |\n\t\t \t \t /,.,.|\' \\__ . . __/ \'|.,.,\\\n\t\t \t \t | \':`.`----._____.---\'.\' |\n\t\t \t \t \\ `:\"\"\"-------\'\"\"\' | |\n\t\t \t \t \',-,-\', .\'-=,=,\n\t\t \t \t \n\n" }, | |
{ "\t\t\t\t\t ___ \n\t\t\t\t\t _.-~~ ~~~-. \n\t\t\t\t\t / _ ~. \n\t\t\t\t\t |#` /#` \\ \n\t\t\t\t\t |-\'| |-\'| | \n\t\t\t\t\t /-- -- |-. \n\t\t\t\t\t \\__ . . / /\\_ \n\t\t\t\t\t \\ ~~--___---~~/\\| | ~-. \n\t\t\t\t\t .---`~~--____---_) \\ \\-__ \\ \n\t\t\t\t\t ) < |__ __\\_ \\ \\ | \n\t\t\t\t\t ~-.__ / ~~~~ \\ \\ \\ | \n\t\t\t\t\t ~-. | .~-.-\' | | \n\t\t\t\t\t | \\___|___/ / / | \n\t\t\t\t\t | / | \\ | | / | \n\t\t\t\t\t \\ | ~-___ \\ \\/ / \n\t\t\t\t\t /\\__ / `._ / ~-\\ \\_/ \n\t\t\t\t\t / \\_____| |`~ \n\t\t\t\t\t | | | | \n\t\t\t\t\t \\ | | | \n\t\t\t\t\t >______) /_/\\/\\_\\ \n\n" } }; | |
char pokemons[4][10] = { { "Karpador" },{ "Glumanda" },{ "Bisasam" },{ "Schigi" } }; | |
int pokemonStats[4][2] = { { 200,1 },{ 220,0 },{ 240,2 },{ 220,1 } }; | |
int pokemonHealth[4]; | |
char attackName[12][20] = { { "Platscher" },{ "Glut" },{ "Rasierblatt" },{ "Aquaknarre" },{ "Kratzer" },{"Feuerwirbel"},{"Drachenwut"},{"Tackle"},{"Rankenhieb"},{"Samenbombe"},{"Biss"}, {"Aquawelle"}}; | |
int attackStats[12][2] = { { 0,1 },{ 40,0 },{ 55,2 },{ 40,1 },{40, 3},{35,0},{60,3},{30,3}, {45,2},{65,2}, {55,1},{60,1}}; | |
int pokemonAttacks[4][4] = { { 0,0,0,0 },{ 1,4,5,6 },{ 2,7,8,9 },{ 3,7,10,11 } }; | |
char elementName[4][10] = { { "Feuer" },{ "Wasser" },{ "Pflanze" }, {"Normal"} }; | |
int elementStrength[4] = { 2,0,1,10 }; | |
char healthbarPlayer[22]; | |
char healthbarComputer[22]; | |
char items[4][20] = { {"Heiltrank"},{ "SUPER-Heiltrank" },{"SUPER-Angriff"},{"SUPER-Verteidigung"} }; | |
int itemBag[4] = { 0,0,0,0 }; | |
int pokemonPlayer; | |
int pokemonComputer; | |
bool playerOnTurn = false; | |
int main() { | |
system("title Pokemon"); | |
system("mode con: lines=200"); | |
system("color 3e"); | |
printf("%s", pokemonSchriftzug); | |
srand(time(NULL)); | |
int playmode; | |
do { | |
system("cls"); | |
printf("%s", pokemonSchriftzug); | |
playmode = choosePlaymode(); | |
playerOnTurn = false; | |
if (playmode == 0) { | |
playmode1vs1(); | |
} | |
else if (playmode == 1) { | |
playmodeSurvival(); | |
} | |
} while (playmode != 2); | |
return 0; | |
} | |
void reset() { | |
for (int i = 0; i < numberOfPokemons; i++) { | |
pokemonHealth[i] = pokemonStats[i][healthNumber]; | |
} | |
for (int i = 0; i < sizeof(itemBag); i++) { | |
itemBag[i] = 0; | |
} | |
} | |
void changePokemon() { | |
pokemonHealth[pokemonPlayer] = playerHealth; | |
pokemonPlayer=choosePokemon(); | |
playerHealth = pokemonHealth[pokemonPlayer]; | |
printf("\n Du setzt %s ein!!", pokemons[pokemonPlayer]); | |
} | |
void selectItem() { | |
printf(" W�hle dein Item!!"); | |
for (int i = 0; i < 4; i++) { | |
printf("\n %d. %s %dx", i + 1, items[i],itemBag[i]); | |
} | |
printf("\n 5. Zurueck"); | |
int choose; | |
printf("\n "); | |
do { | |
scanf("%d", &choose); | |
fflush(stdin); | |
} while (choose != 5 && (itemBag[choose-1] == 0 || (choose < 1 || choose > 5))); | |
if (choose != 5) { | |
showGui(); | |
printf(" Du hast ein %s eingesetzt!!", items[choose - 1]); | |
} | |
switch (choose){ | |
case 1: | |
useHealingPotion(); | |
break; | |
case 2: | |
useSuperHealingPotion(); | |
break; | |
case 3: | |
useSuperAttack(); | |
break; | |
case 4: | |
useSuperDefense(); | |
break; | |
case 5: | |
chooseAction(); | |
break; | |
} | |
} | |
void useHealingPotion() { | |
playerHealth = playerHealth + 100; | |
itemBag[0]--; | |
pokemonHealth[pokemonPlayer] = playerHealth; | |
} | |
void useSuperHealingPotion() { | |
playerHealth = pokemonStats[pokemonPlayer][healthNumber]; | |
itemBag[1]--; | |
pokemonHealth[pokemonPlayer] = playerHealth; | |
} | |
void useSuperDefense() { | |
superDefensActive = superDefensActive+3; | |
itemBag[3]--; | |
} | |
void useSuperAttack() { | |
superAttackActive = superAttackActive +3; | |
itemBag[2]--; | |
} | |
void playmodeSurvival() { | |
system("title Survival"); | |
system("cls"); | |
printf("%s", pokemonSchriftzug); | |
reset(); | |
pokemonPlayer = choosePokemon(); | |
playerHealth = pokemonHealth[pokemonPlayer]; | |
system("cls"); | |
printf("%s", pokemonSchriftzug); | |
int randomNumber; | |
randomNumber = generateRandomNumber(3); | |
pokemonComputer = randomNumber; | |
computerHealth = pokemonStats[pokemonComputer][healthNumber]; | |
printf("\n Ein wildes %s erscheint!!", pokemons[pokemonComputer]); | |
clearBuffer(); | |
getchar(); | |
do { | |
playerOnTurn = false; | |
do { | |
playerOnTurn = !playerOnTurn; | |
showGui(); | |
if (playerOnTurn) { | |
chooseAction(); | |
} | |
else { | |
executeAttack(); | |
} | |
clearBuffer(); | |
getchar(); | |
} while (checkForVictory()); | |
victory(); | |
clearBuffer(); | |
getchar(); | |
if (playerHealth != 0) { | |
itemDrop(); | |
} | |
if(playerHealth == 0) { | |
system("cls"); | |
generateHealthbars(); | |
printf("%s", pokemonSchriftzug); | |
printf("\t\t\t\t\t%s ?/%d %s\n\n", pokemons[pokemonComputer], pokemonStats[pokemonComputer][0], healthbarComputer); | |
printf("%s", computerHealth == 0 ? pokemonPlayerOutput[pokemonPlayer] : pokemonComputerOutput[pokemonComputer]); | |
printf(" %s %d/%d %s\n\n", pokemons[pokemonPlayer], playerHealth, pokemonStats[pokemonPlayer][0], healthbarPlayer); | |
if (!checkForGameOverSurvival()) { | |
changePokemon(); | |
} | |
} | |
else { | |
system("cls"); | |
printf("%s", pokemonSchriftzug); | |
int randomNumber; | |
randomNumber = generateRandomNumber(3); | |
pokemonComputer = randomNumber; | |
computerHealth = pokemonStats[pokemonComputer][healthNumber]; | |
printf("\n Ein wildes %s erscheint!!", pokemons[pokemonComputer]); | |
clearBuffer(); | |
getchar(); | |
} | |
} while (!checkForGameOverSurvival()); | |
printf(" Game Over!!"); | |
clearBuffer(); | |
getchar(); | |
} | |
void itemDrop() { | |
int randomNumber = generateRandomNumber(3); | |
printf(" %s hat ein %s fallen gelassen!!",pokemons[pokemonComputer],items[randomNumber]); | |
itemBag[randomNumber]++; | |
clearBuffer(); | |
getchar(); | |
} | |
void chooseAction() { | |
showGui(); | |
printf(" Was willst du machen??"); | |
printf("\n 1. Angriff"); | |
printf("\n 2. Itemtasche"); | |
printf("\n 3. Pokemons"); | |
printf("\n "); | |
int choose; | |
do { | |
scanf("%d", &choose); | |
fflush(stdin); | |
} while (choose < 1 || choose > 3); | |
showGui(); | |
if (choose == 1) { | |
executeAttack(); | |
} | |
else if (choose == 2) { | |
selectItem(); | |
} else if(choose == 3) { | |
changePokemon(); | |
} | |
} | |
void playmode1vs1() { | |
system("title 1 vs 1"); | |
system("cls"); | |
printf("%s", pokemonSchriftzug); | |
reset(); | |
int randomNumber; | |
randomNumber = generateRandomNumber(3); | |
pokemonComputer = randomNumber; | |
computerHealth = pokemonStats[pokemonComputer][healthNumber]; | |
pokemonPlayer = choosePokemon(); | |
playerHealth = pokemonStats[pokemonPlayer][healthNumber]; | |
printf("\n Ein wildes %s erscheint!!", pokemons[pokemonComputer]); | |
clearBuffer(); | |
getchar(); | |
do { | |
playerOnTurn = !playerOnTurn; | |
showGui(); | |
executeAttack(); | |
clearBuffer(); | |
getchar(); | |
} while (checkForVictory()); | |
victory(); | |
clearBuffer(); | |
getchar(); | |
} | |
int choosePlaymode() { | |
printf(" Waehle den Spielmodus!!"); | |
printf("\n 1. 1 vs 1"); | |
printf("\n 2. Survival"); | |
printf("\n 3. Beenden"); | |
printf("\n "); | |
int choose; | |
do { | |
scanf("%d", &choose); | |
fflush(stdin); | |
} while (choose < 1 || choose > 3); | |
return choose - 1; | |
} | |
void clearBuffer() { | |
setvbuf(stdin, NULL, _IONBF, 0); | |
setvbuf(stdin, NULL, _IOFBF, BUFSIZ); | |
} | |
int choosePokemon() { | |
printf(" Waehle dein Pokemon!!"); | |
for (int i = 0; i < numberOfPokemons; i++) { | |
printf("\n %d. %s %d", i + 1, pokemons[i],pokemonHealth[i]); | |
} | |
printf("\n "); | |
int choose; | |
do { | |
scanf("%d", &choose); | |
fflush(stdin); | |
} while (choose < 1 || choose > numberOfPokemons||pokemonHealth[choose-1]==0); | |
return choose - 1; | |
} | |
void showGui() { | |
system("cls"); | |
generateHealthbars(); | |
printf("%s", pokemonSchriftzug); | |
printf("\t\t\t\t\t%s ?/%d %s\n\n", pokemons[pokemonComputer], pokemonStats[pokemonComputer][0], healthbarComputer); | |
printf("%s", pokemonComputerOutput[pokemonComputer]); | |
printf("%s", versus); | |
printf("%s", pokemonPlayerOutput[pokemonPlayer]); | |
printf(" %s %d/%d %s\n\n", pokemons[pokemonPlayer], playerHealth, pokemonStats[pokemonPlayer][0], healthbarPlayer); | |
} | |
int playerChooseAttack() { | |
printf(" Waehle dein Angriff!!"); | |
for (int i = 0; i < numberOfAttacks; i++) { | |
printf("\n %d. %s", i + 1, attackName[pokemonAttacks[pokemonPlayer][i]]); | |
} | |
printf("\n "); | |
int choose; | |
do { | |
scanf("%d", &choose); | |
fflush(stdin); | |
printf("\n"); | |
} while (choose < 1 || choose > numberOfAttacks); | |
choose = pokemonAttacks[pokemonPlayer][choose - 1]; | |
return choose; | |
} | |
void executeAttack() { | |
int attack; | |
double multiplicator; | |
double itemEffects = 1; | |
if (playerOnTurn) { | |
attack = playerChooseAttack(); | |
multiplicator = calculateAttackMultiplicator(attack); | |
if (superAttackActive>0) { | |
itemEffects = 2; | |
superAttackActive--; | |
if (superAttackActive == 0) { | |
printf(" Der Super-Angriff verliert seine wirkung!!\n"); | |
} | |
} | |
computerHealth = computerHealth - ((attackStats[attack][strengthNumber] * multiplicator) * itemEffects); | |
} | |
else { | |
int randomNumber = generateRandomNumber(3); | |
attack = (pokemonAttacks[pokemonComputer][randomNumber]); | |
multiplicator = calculateAttackMultiplicator(attack); | |
if (superDefensActive>0) { | |
itemEffects = 0.3; | |
superDefensActive--; | |
if (superDefensActive == 0) { | |
printf(" Die Super-Verteidigung verliert seine wirkung!!\n"); | |
} | |
} | |
playerHealth = playerHealth - ((attackStats[attack][strengthNumber] * multiplicator) * itemEffects); | |
} | |
pokemonHealth[pokemonPlayer] = playerHealth; | |
if (computerHealth < 0) { | |
computerHealth = 0; | |
} | |
if (playerHealth < 0) { | |
playerHealth = 0; | |
} | |
printf(" %s setzt %s ein!!\n", pokemons[playerOnTurn ? pokemonPlayer : pokemonComputer], attackName[attack]); | |
if (attack == 0) { | |
printf(" Nichts passiert."); | |
} | |
else if (multiplicator >= 1.5) { | |
printf(" Dies ist sehr Effektiv!!"); | |
} | |
else if (multiplicator >= 1) { | |
printf(" Dies ist Effektiv!!"); | |
} | |
else { | |
printf(" Dies ist nicht sehr Effektiv!!"); | |
} | |
if (itemEffects == 2) { | |
printf("\n Das Item SUPER-Angriff verdoppelt den Schaden!!"); | |
} | |
else if (itemEffects == 0.3) { | |
printf("\n Das Item SUPER-Verteidigung minimiert den Schaden!!!"); | |
} | |
} | |
double calculateAttackMultiplicator(int attack) { | |
bool attackIsEffectiv = (pokemonStats[playerOnTurn ? pokemonComputer : pokemonPlayer][elementNumber]) == (elementStrength[attackStats[attack][elementNumber]]); | |
bool attackIsNotEffectiv = (elementStrength[pokemonStats[playerOnTurn ? pokemonComputer : pokemonPlayer][elementNumber]]) == (attackStats[attack][elementNumber]); | |
bool attackIsSameElementAsAttackingPokemon = (pokemonStats[playerOnTurn ? pokemonPlayer : pokemonComputer][elementNumber]) == (attackStats[attack][elementNumber]); | |
bool attackIsSameElementAsDefendingPokemon = (pokemonStats[playerOnTurn ? pokemonComputer : pokemonPlayer][elementNumber]) == (attackStats[attack][elementNumber]); | |
double multiplicator = 1; | |
if (attackIsEffectiv) { | |
multiplicator = multiplicator + 0.5; | |
} | |
if (attackIsNotEffectiv) { | |
multiplicator = multiplicator - 0.5; | |
} | |
if (attackIsSameElementAsAttackingPokemon) { | |
multiplicator = multiplicator + 0.2; | |
} | |
if (attackIsSameElementAsDefendingPokemon) { | |
multiplicator = multiplicator - 0.2; | |
} | |
return multiplicator; | |
} | |
bool checkForVictory() { | |
bool again = true; | |
if (playerHealth <= 0) { | |
again = false; | |
} | |
if (computerHealth <= 0) { | |
again = false; | |
} | |
return again; | |
} | |
bool checkForGameOverSurvival() { | |
pokemonHealth[pokemonPlayer] = playerHealth; | |
bool result = true; | |
for (int i = 0; i < numberOfPokemons; i++) { | |
if (pokemonHealth[i] != 0) { | |
result = false; | |
} | |
} | |
return result; | |
} | |
void victory() { | |
system("cls"); | |
generateHealthbars(); | |
printf("%s", pokemonSchriftzug); | |
printf("\t\t\t\t\t%s ?/%d %s\n\n", pokemons[pokemonComputer], pokemonStats[pokemonComputer][0], healthbarComputer); | |
printf("%s", computerHealth == 0 ? pokemonPlayerOutput[pokemonPlayer] : pokemonComputerOutput[pokemonComputer]); | |
printf(" %s %d/%d %s\n\n", pokemons[pokemonPlayer], playerHealth, pokemonStats[pokemonPlayer][0], healthbarPlayer); | |
printf(" Der %s hat gewonnnen!!", playerOnTurn ? "Spieler" : "Computer"); | |
} | |
void generateHealthbars() { | |
healthbarComputer[0] = '{'; | |
healthbarComputer[21] = '}'; | |
healthbarPlayer[0] = '{'; | |
healthbarPlayer[21] = '}'; | |
int deciOfHealth = 20 * playerHealth / pokemonStats[pokemonPlayer][0]; | |
for (int i = 1; i <= 20; i++) { | |
if (i <= deciOfHealth) { | |
healthbarPlayer[i] = '|'; | |
} | |
else { | |
healthbarPlayer[i] = '-'; | |
} | |
} | |
deciOfHealth = 20 * computerHealth / pokemonStats[pokemonComputer][0]; | |
for (int i = 1; i <= 20; i++) { | |
if (i <= deciOfHealth) { | |
healthbarComputer[i] = '|'; | |
} | |
else { | |
healthbarComputer[i] = '-'; | |
} | |
} | |
} | |
int generateRandomNumber(int maxNumber) { | |
int randomNumber; | |
do { | |
randomNumber = ((rand() % (maxNumber + 2)) - 1); | |
} while (randomNumber < 0 || randomNumber > maxNumber + 1); | |
return randomNumber; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment