summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormanzerbredes <loic.guegan_secondary@yahoo.fr>2015-05-03 09:25:28 +0200
committermanzerbredes <loic.guegan_secondary@yahoo.fr>2015-05-03 09:25:28 +0200
commitafd4ba110faa7374b2cb0bff5056e29e985fc4e7 (patch)
tree0dcba82aaa33ba47e47850a556c0e4d120791d35 /src
parent98a8e2d520baf254407e589b3de8bde7c73dc871 (diff)
Optimise leftDefragmentation method
Diffstat (limited to 'src')
-rw-r--r--src/Model/Grid.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/Model/Grid.cpp b/src/Model/Grid.cpp
index b1b9dda..ed8686f 100644
--- a/src/Model/Grid.cpp
+++ b/src/Model/Grid.cpp
@@ -137,18 +137,22 @@ std::vector<int> Grid::rightDefragment(std::vector<int> line){
}
std::vector<int> Grid::leftDefragment(std::vector<int> line){
- for(int j=0; j<m_size-1;j++){
- for(int i=m_size-1; i>0;i--){
- int val1=line.at(i);
- int val2=line.at(i-1);
- if(val1 != 0 && val2 == 0){
- line.at(i)=0;
- line.at(i-1)=val1;
- }
- }
- }
- return line;
+ //for(int j=0; j<m_size-1;j++){
+ //for(int i=m_size-1; i>0;i--){
+ //int val1=line.at(i);
+ //int val2=line.at(i-1);
+
+ //if(val1 != 0 && val2 == 0){
+ //line.at(i)=0;
+ //line.at(i-1)=val1;
+ //}
+ //}
+ //}
+
+ std::vector<int> reversedLine= this->reverseLine(line);
+
+ return this->reverseLine(this->rightDefragment(reversedLine));
}
std::vector<int> Grid::rightMerge(std::vector<int> line){
for(int i=0; i< m_size-1;i++){