Redeclaration of enumerator

Programovacie jazyky, rady, poradňa...
lukas523
Novice
Novice
Príspevky: 3
Registrovaný: 24 nov 2013, 11:32

Redeclaration of enumerator

Príspevok od používateľa lukas523 »

Ahojte, programujem karla pri kompilovaní mi hádže toto:

Kód: Vybrať všetko

zadanie.c:4:7: error: redeclaration of enumerator ‘WEST’
karel.h:35:2: note: previous definition of ‘WEST’ was here
zadanie.c:4:13: error: redeclaration of enumerator ‘EAST’
karel.h:33:2: note: previous definition of ‘EAST’ was here
zadanie.c:4:19: error: redeclaration of enumerator ‘NORTH’
karel.h:34:2: note: previous definition of ‘NORTH’ was here
zadanie.c:4:26: error: redeclaration of enumerator ‘SOUTH’
karel.h:36:2: note: previous definition of ‘SOUTH’ was here
zdrojový kód:

Kód: Vybrať všetko

#include "karel.h"
#define SPEED 50

enum {WEST, EAST, NORTH, SOUTH};

void checkARow(int heading);
void turnRight();
void turnAround();
void runAStreet();
void setTo(int direction);
void setToNorth();
void setToEast();
void setToWest();
void setToSouth();

int main() {
    turnOn("karel.kw");
    setStepDelay(SPEED);
    
    setToEast();
    checkARow(EAST);
    
    setToWest();
    checkARow(WEST);
    
    setToSouth();
    checkARow(SOUTH);
    
    setToNorth();
    checkARow(NORTH);
    
    turnOff();
return 0;
}

void setToNorth() {
    setStepDelay(0);
    while (notFacingNorth())
        turnLeft();
    setStepDelay(SPEED);
}	

void setToEast() {
    setStepDelay(0);
    while (notFacingEast())
        turnLeft();
    setStepDelay(SPEED);
}

void setToWest() {
    setStepDelay(0);
    while (notFacingWest()) 
        turnLeft();
    setStepDelay(SPEED);
}

void setToSouth() {
    setStepDelay(0);
    while (notFacingSouth())
        turnLeft();
    setStepDelay(SPEED);
}

void setTo(int direction) {
    switch(direction) {
        case (WEST):
            setToWest();
            break;
        case (NORTH):
            setToNorth();
            break;
        case (SOUTH):
            setToSouth();
            break;
        case (EAST):
            setToEast();
            break;
    }
}

void turnRight() {
    setStepDelay(0);
    turnLeft();
    turnLeft();
    setStepDelay(SPEED);
    turnLeft();
}

void turnAround() {
    setStepDelay(0);
    turnLeft();
    turnLeft();
    setStepDelay(SPEED);
}


void runAStreet() {
    int step = 0;
    while (frontIsClear()) {
        movek();
        if (beepersPresent())
            break;
        step++;
    }
    if (beepersPresent()) {
        turnAround();
        for (int i = 0; i <= step; i++) {
            movek();
            putBeeper();   
        }
    }
    else {
        turnAround();
        for (int i = 0; i < step; i++)
            movek();	
    }
}

void checkARow(int heading) {
    int step = 0;
    while (1) {
        if (leftIsClear()) {
            turnLeft();
            runAStreet();
        }
        setTo(heading);
        if (rightIsClear()) {
            turnRight();
            runAStreet();
        }
        setTo(heading);
        if (beepersPresent()) {
            turnAround();
            for (int i = 0; i < step; i++) {
                movek();
                putBeeper();
            }
            break;
        }
        else {
            if (frontIsClear()) {
                movek();
                step++;
            }
            else {
                turnAround();
                for (int i = 0; i < step; i++)
                    movek();
                break;
            }
        }
    }
}
Vedel by mi niekto povedať čo robím zle? ďakujem :)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8219
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Redeclaration of enumerator

Príspevok od používateľa harrison314 »

Zakomentuj roadok enum {WEST, EAST, NORTH, SOUTH};
Pravdepodobne tento enumeracny typ je uz deklarovany v tom hlavickovom subore.
lukas523
Novice
Novice
Príspevky: 3
Registrovaný: 24 nov 2013, 11:32

Re: Redeclaration of enumerator

Príspevok od používateľa lukas523 »

Ooo, ďakujem veľmi pekne :) :)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8219
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Redeclaration of enumerator

Príspevok od používateľa harrison314 »

nabuduce skus tu chybu hodit aspon do google translatora, budes to mat rychlejsie
Napísať odpoveď