// Includerfiles
#include <iostream>
#include <ctime>
#include <stdlib.h>
// Vilka funktioner som ska användas
using std::cout; using std::cin;
using std::string; using std::system;
using std::srand; using std::rand; // För random funktionen
// Deklarera funktioner så de blir utkommliga från hela programmet
string NyttSpel();
int Level1(string *sName, int *iHp, int *iDmg_min, int *iDmg_max);
int Level1(string *sName, int *iHp, int *iDmg_min, int *iDmg_max)
{
srand(time(0));
bool bGoLevel1=true; // Den här ska vara true så länga man är i level 1
string sCmd; // För att läsa in kommandorn från menyer mm
int iCurrentHp = *iHp; // Spelarens nuvarande liv, man dör lite när man slåss mot fiender men man ska få tillbaka liven efter fighten
// Fiendevariabler
int iEType; // Fiendens typ
int iEHp; // Fiendens liv
int iEDmg_min; // Fiendens minimum skada
int iEDmg_max; // Fiendens maximum skada
string sEName; // Fiendens namn
while (bGoLevel1) // Kör den här kodsnutten så länge bGoLevel1 är true
{
system("cls"); // Renska skärmen
cout << "Velkommen till bana 1!n";
cout << "Meny:n";
cout << "------------------------------n";
cout << "| [H]itta fiende att slass med |n";
cout << "| [A]vsluta spelet |n";
cout << "------------------------------n";
cout << "n";
cout << "Val:n";
-
cin >> sCmd;
if (sCmd == "h" || sCmd == "H" )
{
iEType = rand() / (RAND_MAX / 3 + 1) + 1; // Slumpa ett tal från 1 till 3. Det ska finnas 3 olika typer av fiender på första banan.
if (iEType == 1)
{
sEName = "Giftfluga";
iEHp = 4;
iEDmg_min = 2;
iEDmg_max = 3;
}
else if (iEType == 2)
{
sEName = "Huggorm";
iEHp = 5;
iEDmg_min = 2;
iEDmg_max = 5;
}
else if (iEType == 3)
{
sEName = "Spindel";
iEHp = 3;
iEDmg_min = 1;
iEDmg_max = 2;
}
while (true) // Kör tills någon skriver break;
{
cout << "n";
cout << "Slass mot fiende:n";
cout << "------------------n";
cout << " Du moter en " << sEName << "!n";
cout << " Fiendens liv: " << iEHp << "n";
cout << " Dina liv: " << iCurrentHp << "n";
cout << "------------------n";
cout << "n";
cout << "Meny:n";
cout << "n";
cout << "------------------n";
cout << "| Sla i [m]agen |n";
cout << "| Sla i [f]oten |n";
cout << "| Sla i [h]uvudet |n";
cout << "------------------n";
cout << "n";
cout << "| Val:n";
cin >> sCmd;
if (sCmd == "m" || sCmd == "M" )
{
if (iEType == 3) // Om det är en råtta så får den extra liv, den är alltså svår att döda genom att slå i magen
iEHp+=2;
else if (iEType == 2) // Om det är en huggorm så får den minus ett liv, den är alltså extra lätt att döda genom att slå i magen
iEHp-=2;
}
else if (sCmd == "f" || sCmd == "F" )
{
if (iEType == 1) // Om det är en giftflyga så får den extra liv, den är alltså svår att döda genom att slå på foten
iEHp+=1;
else if (iEType == 3) // Om det är en råtta så får den minus ett liv, den är alltså extra lätt att döda genom att slå på foten
iEHp-=1;
}
else if (sCmd == "h" || sCmd == "H" )
{
if (iEType == 2) // Om det är en huggorm så får den extra liv, den är alltså svår att döda genom att slå på huvudet
iEHp+=1;
else if (iEType == 1) // Om det är en giftflyga så får den minus ett liv, den är alltså extra lätt att döda genom att slå på huvudet
iEHp-=1;
}
iEHp -= rand() / (RAND_MAX / *iDmg_max + 1) + *iDmg_min;
if (iEHp <= 0) // Om fienden dog
{
cout << "Du dödade din fiende, bra gjort!";
break; // Stick från while-loopen
}
else
{
iCurrentHp -= rand() / (RAND_MAX / iEDmg_max + 1) + iEDmg_min;
if (iCurrentHp <= 0) // Om man dör
{
bGoLevel1 = false; // Slut på level 1, du dog
iCurrentHp = *iHp; // ...terstället liven
break;
}
}
} // Slut på slåss mot fiende-loop
}
else if (sCmd == "a" || sCmd == "A" )
{
return 3; // Det här returneras om man inte vill spela mer i level 1
}
} // Slut på level1-loop
return 2; // Det här returneras om man dog av en fiende
}
string NyttSpel()
{
string sTmpName; // Variabel för att temporärt lagra spelarens namn. Variabeln finns bara i den här funktionen
system("cls" ); // Rensa skärmen
cout << "Velkommen till Skogen med de elaka monstrena spelet!n";
cout << "Skriv in ditt namn sa vi kan borja:n";
cin >> sTmpName;
return sTmpName;
}
int main()
{
// Deklarera variabler
string sCmd; // Används för att avläsa användarens val i menyer mm
string sName; // För att lagra namet på spelaren
bool bGo=true; // En variabel som är true så länge muvudmeny-loopen ska köras
int iTmp; // Variabel för temorära saker
// Spelarens karaktärs variabler
int iHp = 10; // Spelarens hälsoresurser
int iDmg_min = 2; // Spelarens minimiskada
int iDmg_max = 5; // Spelarens maximiskada
while (bGo) // Kör loopen så länge bGo är true
{
// Huvudmenyn
cout << "Skogen med de elaka monstrena spelet v1.0n";
cout << " n";
cout << "Huvud meny:n";
cout << " -------------n";
cout << "| [N]ytt spel |n";
cout << "| [A]vsluta |n ";
cout << "-------------n";
cout << "Val:n";
cin >> sCmd;
if (sCmd == "n" || sCmd == "N" )
{
sName = NyttSpel(); // Skicka med namnvariabeln
iTmp = Level1(&sName, &iHp, &iDmg_min, &iDmg_max);
if (iTmp == 3)
bGo = false;
if (iTmp == 2)
cout << "Du dog!";
}
else if (sCmd == "a" || sCmd == "A" )
{
break; // Bryt ut från huvudmeny-loopen
}
} // Slut på while-loopen
cin.get();
return 0;
}
-