Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 5, 2018, 11:43:36 AM (7 years ago)
Author:
thomkell
Message:

final

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/TixyTaxyTorxy_HS18/src/modules/TixyTaxyTorxy/TixyTaxyTorxy.cc

    r12086 r12149  
    8383#include "core/CoreIncludes.h"
    8484#include "Highscore.h"
     85#include <iostream>
     86#include "TixyTaxyTorxyField.h"
     87using namespace std;
    8588
    8689namespace orxonox
    8790{
     91
    8892    RegisterUnloadableClass(TixyTaxyTorxy);
     93
     94
    8995
    9096   
     
    103109        this->waveSize_ = 0;
    104110        offset_ = Vector3(0,0,10);
     111
    105112    }
    106113
    107114TixyTaxyTorxy::~TixyTaxyTorxy()
    108115    {
     116
     117
    109118        if (this->isInitialized())
    110119        {
     
    186195    void TixyTaxyTorxy::addTower(int x,int y)
    187196    {
     197        int mini;
     198         
    188199        TixyTaxyTorxyCoordinate* coord = new TixyTaxyTorxyCoordinate(x,y);
    189200        x = coord->GetX();
    190201        y = coord->GetY();
    191 
     202        mini = coord->Getmini();
     203
     204        orxout() <<"addTower("<<x<<", "<<y<<") "<<mini<<"" <<endl;
    192205        int cost = center_->getTowerCost(1);
    193206
    194         if (fields_[x][y]->isFree() == true && getCredit() >= cost)
     207        if (fields_[x][y]->isFree())
    195208        {
    196209            payCredit(cost);
    197210            fields_[x][y]->createTower(1);
    198211        }
    199     }
     212   
     213    bool player1=player2=0;
     214    int A1,B1,C1,D1,E1,F1,G1,H1,I1;
     215    int A2,B2,C2,D2,E2,F2,G2,H2,I2;
     216    A1=B1=C1=D1=E1=F1=G1=H1=I1=0;
     217    A2=B2=C2=D2=E2=F2=G2=H2=I2=0;
     218
     219
     220
     221    if (checkMinigame(0,10) == 1) A1=1;
     222    if (checkMinigame(4,10) == 1) B1=2;
     223    if (checkMinigame(8,10) == 1) C1=4;
     224    if (checkMinigame(0,6) == 1) D1=8;
     225    if (checkMinigame(4,6) == 1) E1=16;
     226    if (checkMinigame(8,6) == 1) F1=32;
     227    if (checkMinigame(0,2) == 1) G1=64;
     228    if (checkMinigame(4,2) == 1) H1=128;
     229    if (checkMinigame(8,2) == 1) I1=256;
     230
     231    if (checkMinigame(0,10) == 2) A2=1;
     232    if (checkMinigame(4,10) == 2) B2=2;
     233    if (checkMinigame(8,10) == 2) C2=4;
     234    if (checkMinigame(0,6) == 2) D2=8;
     235    if (checkMinigame(4,6) == 2) E2=16;
     236    if (checkMinigame(8,6) == 2) F2=32;
     237    if (checkMinigame(0,2) == 2) G2=64;
     238    if (checkMinigame(4,2) == 2) H2=128;
     239    if (checkMinigame(8,2) == 2) I2=256;
     240
     241    orxout()<<"A1: "<<A1<<"B1: "<<B1<<endl;
     242
     243    if(A1+B1+C1 == 7 || D1+E1+F1 == 56 || G1+H1+I1 == 448 || A1+D1+G1 == 73 || B1+E1+H1 == 146 || C1+F1+I1 == 294 || A1+E1+I1 == 273 || C1+E1+G1 == 84){
     244
     245        player1=1;
     246        orxout()<<"player1 has won" << endl;
     247    }
     248
     249     if(A2+B2+C2 == 7 || D2+E2+F2 == 56 || G2+H2+I2 == 448 || A2+D2+G2 == 73 || B2+E2+H2 == 146 || C2+F2+I2 == 294 || A2+E2+I2 == 273 || C2+E2+G2 == 84){
     250
     251        player2=1;
     252        orxout()<<"player1 has won" << endl;
     253    }
     254    }
     255
     256    int TixyTaxyTorxy::checkMinigame(int x, int y){
     257        if (checkRow(x,y)==1 || checkColumn(x,y)==1 || checkDiagLtR(x,y)==1 ||checkDiagRtL(x,y)==1) return 1;
     258        else if (checkRow(x,y)==2 || checkColumn(x,y)==2 || checkDiagLtR(x,y)==2 || checkDiagRtL (x,y)==2) return 2;
     259        return 0;
     260         } 
     261
     262    int TixyTaxyTorxy::checkRow(int x, int y){
     263        for(int i=0; i<2; i++){
     264
     265            if(fields_[x+i][y]-> isTower1() && fields_[x+i][y-1]-> isTower1() && fields_[x+i][y-2]-> isTower1()){
     266                return 1;
     267
     268            }else if(fields_[x+i][y]-> isTower2() && fields_[x+i][y-1]-> isTower2() && fields_[x+i][y-2]-> isTower2()){
     269                return 2;}   
     270        }
     271        return 0;
     272
     273    }
     274    int TixyTaxyTorxy::checkColumn(int x, int y){
     275        for(int i=0; i<2; i++){
     276
     277            if(fields_[x][y-i]-> isTower1() && fields_[x+1][y-i]-> isTower1() && fields_[x+2][y-i]-> isTower1()){
     278                return 1;
     279
     280            }else if (fields_[x][y-i]-> isTower2() && fields_[x+1][y-i]-> isTower2() && fields_[x+2][y-i]-> isTower2()){
     281            return 2;            }
     282        }
     283            return 0;
     284       
     285       
     286    }
     287    //Cheeck the diagonal achsis from top left to bottom right
     288    int TixyTaxyTorxy::checkDiagLtR(int x, int y){
     289
     290        if (fields_[x][y]-> isTower1() && fields_[x+1][y-1]-> isTower1() && fields_[x+2][y-2]-> isTower1()){
     291            return 1;
     292        }
     293        else if (fields_[x][y]-> isTower2() && fields_[x+1][y-1]-> isTower2() && fields_[x+2][y-2]-> isTower2()){
     294            return 2;
     295        }
     296        return 0;
     297       
     298    }
     299    //Cheeck the diagonal achsis from top right to bottom left
     300    int TixyTaxyTorxy::checkDiagRtL (int x, int y){
     301
     302        if(fields_[x+2][y]-> isTower1() && fields_[x+1][y-1]-> isTower1() && fields_[x][y-2]-> isTower1()){
     303            return 1;
     304        }
     305        else if(fields_[x+2][y]-> isTower2() && fields_[x+1][y-1]-> isTower2() && fields_[x][y-2]-> isTower2()){
     306            return 2;
     307        }
     308       
     309        else return 0;
     310        }
     311
     312    bool TixyTaxyTorxy::getPlayer1Value(){
     313    return player1;
     314}
     315    bool TixyTaxyTorxy::getPlayer2Value(){
     316    return player2;
     317}
     318   
     319
     320
     321
     322
     323
    200324
    201325    /*adds Tower at Position (x,y) and reduces credit and adds the point to the towermatrix. template ("towerturret")
     
    253377        std::string fields = center_->getFields();
    254378        int pos = 0;
    255         for (int j = 15; j >= 0; --j)
    256         {
    257             for (int i = 0; i < 16; ++i)
     379        for (int j = 10; j >= 0; --j)
     380        {
     381            for (int i = 0; i < 11; ++i)
    258382            {
    259383                coord.Set(i,j);
Note: See TracChangeset for help on using the changeset viewer.