Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 6, 2018, 8:45:47 PM (7 years ago)
Author:
samuelbl
Message:

Checkmove function fixed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/wagnis_HS18/src/modules/wagnis/WagnisPlayer.cc

    r12162 r12164  
    77#include <cstdlib>
    88#include <ctime>
     9
    910
    1011namespace orxonox
     
    247248        if (move_type == MOVE)
    248249        {
     250            AlreadyChecked.clear();
    249251            if (existPath(this->origin_province, this->target_province))//path exists, all belong to same player
    250252            {
     
    294296    bool WagnisPlayer::existPath(WagnisProvince* origin, WagnisProvince* target)
    295297    {
     298        AlreadyChecked.push_back(origin->getID());
     299       
    296300        if (origin->getOwner_ID() == target->getOwner_ID() && isNeighbour(origin, target))
    297301            return true;
    298302       
    299303        for (unsigned int i = 0; i < origin->neighbors.size(); ++i)
    300         {
    301             if (origin->getOwner_ID() == origin->neighbors[i]->getOwner_ID())
     304        {               
     305            if ((origin->getOwner_ID() == origin->neighbors[i]->getOwner_ID()) && (!(contains(AlreadyChecked, origin->neighbors[i]->getID()))))
    302306                return existPath(origin->neighbors[i], target);
    303307        }
    304            
     308       
    305309        return false;
    306310    }
     
    347351    }
    348352
     353    bool WagnisPlayer::contains(std::vector<int> a, int key)
     354    {
     355        if(std::count(a.begin(), a.end(), key))
     356            return true;
     357        else
     358            return false;
     359    }
     360   
    349361    void WagnisPlayer::setActive(bool b){
    350362        this->is_active = b;
Note: See TracChangeset for help on using the changeset viewer.