123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #include "olok.h"
- Olok::Olok()
- {
- clear();
- }
- void Olok::clear()
- {
-
- grid.clear();
-
- for(int j = 0; j<white1; j++)
- {
- RowColor tempRow;
- tempRow.color = j;
- tempRow.direction = j < (white1/2) ? RIGHT_TO_LEFT : LEFT_TO_RIGHT;
-
- for (int i = 0; i<CHECKBOXES; i++)
- {
- tempRow.number.push_back(RIGHT_TO_LEFT == tempRow.direction ? (DICE_SUM_MIN+i) : (DICE_SUM_MAX+i));
- }
- grid.push_back(tempRow);
- for (int i = 0; i<CHECKBOXES; i++)
- {
- grid[j].row.push_back(false);
- }
- }
-
- penaltyCount = 0;
- }
- int Olok::getXCount(int color)
- {
- for(int i = 0; i < grid.size(); i++)
- {
- if(color != grid[i].color){continue;}
- return grid[i].xCount;
- }
- return 0;
- }
- void Olok::addX(struct Move move)
- {
- int color = move.color, index = move.index;
- for(int i = 0; i < grid.size(); i++)
- {
- if(color != grid[i].color){continue;}
- grid[i].row[index] = true;
- grid[i].lastIndex = index;
- }
- }
- int Olok::getLastIndex(int color)
- {
- for(int i = 0; i < grid.size(); i++)
- {
- if(color != grid[i].color){continue;}
- return grid[i].lastIndex;
- }
- return CHECKBOXES;
- }
- void Olok::addOlok(Olok o)
- {
-
- for(int j = 0;j <o.grid.size();j++)
- {
-
- for(int k = 0;k <o.grid[j].row.size();k++)
- {
-
- if(true ==o.grid[j].row[k])
- {
-
- grid[j].row[k] = true;
- }
- }
- }
-
- penaltyCount += o.penaltyCount;
- }
- std::string Olok::toString(void)
- {
- std::string output;
-
- for(int j = 0; j < grid.size(); j++)
- {
-
- for(int k = 0; k < grid[j].row.size();k++)
- {
-
- output.push_back(grid[j].row[k] ? 'T' : 'F');
- }
- }
-
- output.push_back(penaltyCount + '0');
- return output;
- }
- boolean Olok::isColor(int color)
- {
- for(int i = 0; i < grid.size(); i++)
- {
- if(color != grid[i].color){continue;}
- return true;
- }
- return false;
- }
|