Linker Error usw. brauche Hilfe! [GELÖST]



  • Frage wurde durch die nette Person, die das erste Kommentar geschrieben hat gelöst 😃

    Hallo, erstmal schonmal danke das du meinen Beitrag geöffnet hast ich hoffe du kannst mir helfen 🙂
    Ich bin ein Anfänger programmierer und bin dabei ein kleines Spiel zu machen was viel mit Zufall und loops ein bisschen bla bla und so weiter und ich bekomme immer den error

    1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""bool __cdecl firstWave(int,int)" (?firstWave@@YA_NHH@Z)" in Funktion "_main".
    1>C:\Users\Besitzer\documents\visual studio 2013\Projects\GAME_FinalSurvival\Debug\GAME_FinalSurvival.exe : fatal error LNK1120: 1 nicht aufgelöste Externe
    ========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========

    und mein Code ist das, also ich habe schonmal geguckt der Fehler ist irgendwo in der main von firstWave(), wie man auf den ersten Blick ja schon sehen kann 😡
    Das ist ja auch nichts was ich aus dummheit gemacht habe und alles einfach so geschrieben habe, aber ich habe immer schön compiled... es war immer richtig und gestern habe ich aufgehört ... bin schlafen gegangen ... immernoch alles richtig, ich stehe auf gucke nach auf einmal geht nichts mehr -.-

    Mein Code:
    *****ANFANG

    #include <iostream>
    #include <string>
    #include <random>
    #include <ctime>

    using namespace std;

    int HHealth;
    int Hdamage;
    int HAttackChance;

    int ZHealth;
    int Zdamage;
    int ZAttackChance;
    bool firstWave(int WalkerNum,int SoldierNum);
    bool secondWave();
    void printShop();

    class Walker {
    public:
    int Health() { ZHealth = 80; return ZHealth; }
    int damage() { Zdamage = 35; return Zdamage; }
    int AttackChance(){ ZAttackChance = 50; return ZAttackChance; }
    };

    class Tank {
    public:
    int Health() { ZHealth = 450; return ZHealth; }
    int damage() { Zdamage = 90; return Zdamage; }
    int AttackChance(){ ZAttackChance = 22; return ZAttackChance; }

    };

    class Zipper {
    public:
    int Health() { ZHealth = 30; return ZHealth; }
    int damage() { Zdamage = 60; return Zdamage; }
    int AttackChance(){ ZAttackChance = 85; return ZAttackChance; }
    };

    class Experiment101 {
    public:
    int Health() {
    default_random_engine randomengine1(time(NULL));
    uniform_int_distribution<int> randomHealth(10, 150);
    ZHealth = randomHealth(randomengine1);
    return ZHealth;
    }
    int damage() {
    default_random_engine randomengine2(time(NULL));
    uniform_int_distribution<int> randomdamage(10, 50);
    Zdamage = randomdamage(randomengine2);
    return Zdamage;
    }
    int AttackChance(){
    default_random_engine randomengine3(time(NULL));
    uniform_int_distribution<int> randomAttackChance(0, 100);
    ZAttackChance = randomAttackChance(randomengine3);
    return ZAttackChance;
    }
    };

    class Heavy{
    public:
    int Health(){
    HHealth = 300;
    return HHealth;
    }
    int damage(){
    Hdamage = 80;
    return Hdamage;
    }
    int AttackChance() {
    HAttackChance = 33;
    return HAttackChance;
    //Zombie attackchance sehr gering

    }
    };

    class Assasin {
    public:
    int Health(){
    HHealth = 80;
    return HHealth;
    }
    int damage(){
    Hdamage = 30;
    return Hdamage;
    }
    int AttackChance(){
    HAttackChance = 80;
    return HAttackChance;
    //Zombie attackchance sehr gering

    }
    };

    class Scout {
    public:
    int Health(){
    HHealth = 100;
    return HHealth;
    }
    int damage(){
    Hdamage = 25;
    return Hdamage;
    }
    int AttackChance(){
    HAttackChance = 85;
    return HAttackChance;
    //Zombie attackchance sehr gering
    }
    };

    class Soldier {
    public:
    int Health(){
    HHealth = 175;
    return HHealth;
    }
    int damage(){
    Hdamage = 50;
    return Hdamage;
    }
    int AttackChance(){
    HAttackChance = 60;
    return HAttackChance;
    //Zombie attackchance normal
    }
    };

    int main() {
    int WalkerNum = 20;
    int SoldierNum = 8;
    float coins = 0;

    bool firstWaveResult = firstWave(WalkerNum, SoldierNum);

    if (firstWaveResult == true){
    printShop();

    secondWave();
    }

    system("PAUSE");
    return 0;
    }
    bool firstWave(int WalkerNum, int SoldierNum, float coins){
    default_random_engine randomwave1(time(NULL));
    uniform_int_distribution<int> SoldierattackChance(0, 100);
    uniform_int_distribution<int> WalkerattackChance(0, 100);

    Walker bob;
    Walker bobby;
    Soldier jeff;
    Soldier jeffi;
    int currentWalkerHealth = bob.Health();
    int currentSoldierHealth = jeff.Health();

    int beginWalkerNum = WalkerNum;

    int beginSoldierNum = SoldierNum;
    char turn = 'H';

    while ((WalkerNum > 0) && (SoldierNum > 0)){
    if (turn == 'H'){

    int attackChanceResult = SoldierattackChance(randomwave1);

    if (jeff.AttackChance() >= attackChanceResult) {
    currentWalkerHealth -= jeff.damage();
    }
    turn = 'Z';
    if (currentWalkerHealth <= 0){
    WalkerNum--;
    currentWalkerHealth = bob.Health();

    }
    }
    else{
    int AttackChanceResult = WalkerattackChance(randomwave1);
    if (bob.AttackChance() >= AttackChanceResult) {
    currentSoldierHealth -= bob.damage();
    }
    turn = 'H';

    if (currentSoldierHealth <= 0) {
    SoldierNum--;
    currentSoldierHealth = jeff.Health();
    }
    }

    }

    cout << "SoldierNum: " << SoldierNum << endl;
    cout << "WalkerNum: " << WalkerNum << endl;

    float leftoverWalker = (WalkerNum * 100) / beginWalkerNum;
    float killedWalkerbla = leftoverWalker - 100;
    float killedWalker = killedWalkerbla * (-1);

    float leftoverSoldier = (SoldierNum * 100) / beginSoldierNum;
    float killedSoldierbla = leftoverSoldier - 100;
    float killedSoldier = killedSoldierbla * (-1);

    if (SoldierNum > 0){
    cout << "Good job my friend, you survived the first Wave!!\n" << "The Wave consisted out of " << beginWalkerNum << " Walkers!\n" << endl;
    cout << "Unfortenitly we lost " << killedSoldier << "% of our group!" << endl;
    cout << "\n\n ****Prepare for the next wave****\n\n";
    return true;

    }
    else{
    cout << "The Walker overwalked you!!\n" << "You lost everything and everyone, but you minimized the group of enemys by " << killedWalker << "%.\n" << endl;
    cout << "\n\n ***Game Over!!***\n\n";
    return false;
    }

    }
    bool secondWave(){

    system("PAUSE");
    system("cls");

    cout << "second Wave is approaching!\n" << endl;

    return false;

    }

    void printShop(){ //GELD NOCH MIT EINBRiNGEN

    const int numItems = 5;
    string ShopInventory[numItems] = { "Swords", "Shields", "Pistols", "Armors", "Allies"};

    string Swords[5] = { "Wooden sword", "copper sword", "Iron sword", "Gold sword", "Phoenixbone sword" };
    string Shields[5] = { "Wooden shield", "copper shield", "Iron shield", "Gold shield", "Giantsbone plate " };
    string Pistols[5] = { "Slingshot", "Flintlock Pistol", "Semi-Auto Pistol", "Desert Eagle", "Laser Pistol " };
    string Armors[4] = { "copper Armor", "Iron Armor","Steel Armor", "Lavaforged Armor" };
    string Allies[4] = {"Soldier", "Scout", "Assasin", "Heavy"};

    system("PAUSE");
    system("cls");

    cout << "**Welcome to the Shop!**\n\n What would you like to buy?\n\n";

    for (int i = 0; i < 5; i++){

    cout << i+1 << ". " << ShopInventory[i] << endl;
    }
    cout << "\n\n\nPlease chose one Categorie of the following! Enter -1 tp quit the Shop." << endl;

    int input;

    cin >> input;

    }

    *****ENDE

    also ich bin mit dem shop noch nicht fertig aber egal, ich hoffe ich bekomme ein paar gute Vorschläge
    Mfg Leon



  • Ähm.

    Deklaration:

    bool firstWave(int WalkerNum,int SoldierNum);
    

    Verwendung:

    // ...
    	bool firstWaveResult = firstWave(WalkerNum, SoldierNum);
    //...
    

    Definition:

    bool firstWave(int WalkerNum, int SoldierNum, float coins){
    	// ...
    }
    

    bool firstWave(int, int) ist nicht definiert.
    Benutz bitte beim nächsten Mal [code="cpp"]-Tags (Knopf dafür unter dem 😞 ), denn so wird sich sicher niemand deinen Code genauer ansehen wollen.



  • Vielen vielen dank tut mir leid für die zeitverschwendung das es nur meine eiigene dummheit war


Log in to reply