Användarprofil

Uppgifter
Användarnamn
Email
Besök -
Hemsida Ingen
Plats (stad)
Senaste besök 01:00 - 1:a Januari 1970
Poster i forumet
Varningar
Grupp
Medlem sedan 01:00 - 1:a Januari 1970
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

En fråga om del 18 i nybörjar guiden!
Ojsan Smiley, tack så mycket!
Hade visst gjort det felet på flera ställen.
Men nu undrar jag bara hur jag fixar till så att man måste trycka på enter efter att man har vunnit över ett monster. Eftersom man inte hinner se "Grattis du spöade monstret".

Postad 18:29 - 18:e Februari 2007
En fråga om del 18 i nybörjar guiden!
Hej! Jag använder Dev C++ och har kommit till den sista delen av C++ nybörjarguiden. Allt har fungerat ända tills nu.

Så, detta är mina felmeddelanden när jag ska kompilera:
C:\Documents and Settings\Yeah Good Luck\Mina dokument\Mina C++ Program\Spelet.cpp In function `int Level1(std::string&, int&, int&, int&)':
27 C:\Documents and Settings\Yeah Good Luck\Mina dokument\Mina C++ Program\Spelet.cpp `iHp' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
C:\Documents and Settings\Yeah Good Luck\Mina dokument\Mina C++ Program\Spelet.cpp In function `int main()':
173 C:\Documents and Settings\Yeah Good Luck\Mina dokument\Mina C++ Program\Spelet.cpp `iHp' undeclared (first use this function)


Och här är min källkod:


//Bibliotek
#include <iostream>
#include <ctime>
#include <string>


// Vilka funktioner som ska användas
using std::cout;
using std::cin;
using std::string;
using std::system;
using std::srand;
using std::rand;

//Deklarera funktioner så att de kan användas i 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änge man är i level 1

string sCmd; //För att läsa in kommandon från menyer m.m
int iCurrentHp =iHp; //Spelarens nuvarande liv, man dör lite när man slåss mot monster men man ska få tillbaka liven efter fighten

//Fiende Variabler
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 programsnutten så länge bool bGoLevel1 är TRUE
{
system("cls"); //Rensa skärmen

cout << "Välkommen till bana 1!\nMeny:\n-----\n[H]itta en fiende att slåss mot\n[A]vsluta spelet\nVal:\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 = "Råtta";
iEHp = 3;
iEDmg_min = 1;
iEDmg_max = 2;
}

while (true) //Kör till "break;" körs!
{
cout
<< "\nSlåss mot fiende:\n------------------\nDu möter en " << sEName << "!\n"
<< "Fiendens liv: " << iEHp << "\n"
<< "Dina liv: " << iCurrentHp << "\n"
<< "Meny:\n-----\nSlå i [m]agen\nSlå i [f]oten\nSlå i [h]uvudet\nVal:\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 svår att döda med magslag ^^
iEHp+=1;
else if (iEType == 2) //Om det är en huggorm så förlorar den extra liv
iEHp-=2;
}
else if (sCmd == "f" || sCmd == "F")
{
if (iEType == 1) //Om det är en giftfluga så får den extra liv, den är svår att döda med fotslag ^^
iEHp+=1;
else if (iEType == 3) //Om det är en råtta så förlorar den extra liv
iEHp-=2;
}
else if (sCmd == "h" || sCmd == "H")
{
if (iEType == 2) //Om det är en huggorm så får den extra liv, den är svår att döda med magslag ^^
iEHp+=1;
else if (iEType == 1) //Om det är en giftfluga så förlorar den extra liv
iEHp-=2;
}

iEHp -= rand() / (RAND_MAX / iDmg_max + 1) + iDmg_min;

if (iEHp <= 0) // Om fienden dog
{
cout << "Du dödade monstret, bra gjort!\n";
break; //Hoppa ur 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äller 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 längre på level 1
}
}//Slut på level1 loop

return 2; //Det här returneras om man dör

}


string NyttSpel()
{
string sTmpName; //Variabel för att temporärt spara spelarens namn, den finns bara i denna funktionen.
system("cls"); //rensa skärmen

cout << "Välkommen till mitt första spel!\nSkriv in ditt namn så att vi kan börja: ";

cin >> sTmpName;

return sTmpName;
}

int main()
{
//Deklarera variabler
string sCmd; //Används för att läsa av spelarens val i menyer
string sName; //För att lagra namnet på spelaren
bool bGo= true; //En variabel som är true så länge muvudmeny-loopen ska köras+
int iTmp; //Variabel för temporära saker

//Spelarens karaktärs variabler
int iHP = 10; // Spelarens HP
int iDmg_min = 2; //Spelarens Minsta skada
int iDmg_max = 5; //Spelarens maximum skada

while (bGo) //Kör loopen så länge bGo är TRUE
{
//Huvudmenyn
cout
<< "#################################################\n"
<< "# #\n"
<< "# Skogen med de elaka monstrena spelet v1.0 #\n"
<< "# #\n"
<< "#################################################\n"
<< "Huvud meny:\n-----------\n[N]ytt spel\n[A]vsluta\nVal:";

cin >> sCmd;

if (sCmd == "n" || sCmd == "N")
{
sName = NyttSpel(); //Skicka med namnvariablen
iTmp = Level1(sName, iHp, iDmg_min, iDmg_max);

if (iTmp == 3)
bGo = false;
if (iTmp == 2)
cout << "DU DOG, GAME OVER!";
}
else if (sCmd == "a" || sCmd == "A")
{
break; //Bryt ut från huvudmeny loopen
}
}//Slut på while loopen

cin.get();
cin.get();

return 0;
}




Så varför uppkommer dessa fel?
Tacksam för svar!

//Zpace

Postad 18:09 - 18:e Februari 2007

Skicka meddelande
Läs s blog