From 27d646af15bc9147a141aced8cebd30668de9a8e Mon Sep 17 00:00:00 2001 From: manzerbredes Date: Sat, 2 May 2015 18:15:14 +0200 Subject: Restart project --- src/Model/Grid.cpp | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) (limited to 'src/Model/Grid.cpp') diff --git a/src/Model/Grid.cpp b/src/Model/Grid.cpp index b6ef8c4..6fc41c6 100644 --- a/src/Model/Grid.cpp +++ b/src/Model/Grid.cpp @@ -91,3 +91,71 @@ int Grid::getNRows(){ int Grid::getNCols(){ return m_table.size(); } + + +std::vector* > Grid::swipeLine(std::vector* > line){ + std::vector*> newLine = std::vector*>(4); + + + for (int j = 0 ; j < 3 ; j++) + { + if(j>3) + break; + Cell * cell = new Cell(line.at(j)->getElementValue()); + Cell * cellp1 = new Cell(line.at(j+1)->getElementValue()); + + int a=atoi(cell->getElementValue().c_str()); + int ap1=atoi(cellp1->getElementValue().c_str()); + + std::string s=std::to_string(a); + std::string sp1=std::to_string(ap1); + + if(a==ap1 && a!=0){ + s=""; + sp1=std::to_string(a+ap1); + if(ap1 == 0) + newLine[j+1] = new Cell(""); + else + newLine[j+1] = new Cell(sp1); + newLine[j] = new Cell(s); + j++; + } + else{ + if(ap1==0) + newLine[j+1] = new Cell(""); + else + newLine[j+1] = new Cell(sp1); + if(a==0) + newLine[j] = new Cell(""); + else + newLine[j] = new Cell(s); + + } + delete cell; + delete cellp1; + + } + + + for (int j = 0 ; j < 3 ; j++){ + + if(!newLine[j]->isEmpty()){ + if(newLine[j+1]->isEmpty()){ + newLine[j+1]=new Cell(newLine[j]->getElementValue()); + newLine[j]=new Cell(""); + } + } + } + + for(int i=0; i<4;i++){ + + std::cout << "|" << newLine[i]->description() << "|"; + } + std::cout << "done"; + return newLine; +} + +void Grid::swipeRight(){ + std::vector*> a=this->swipeLine(m_table.at(0)); + m_table[0]=a; +} -- cgit v1.2.3