fixed main logic

This commit is contained in:
2026-05-24 17:47:19 +03:00
parent 119b85ea31
commit 680ef59e67
4 changed files with 12 additions and 10 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
struct Line { struct Line {
std::vector<Tile> line; std::vector<Tile> line;
Score score; Score score = 0;
explicit Line(); explicit Line();
Line(size_t length); Line(size_t length);
+3
View File
@@ -10,6 +10,9 @@ int main() {
Field field(4); Field field(4);
char action; char action;
field.spawnTile(field.getEmptyTiles());
field.spawnTile(field.getEmptyTiles());
while (true) { while (true) {
field.debug(); field.debug();
std::cin >> action; std::cin >> action;
+7 -8
View File
@@ -13,10 +13,7 @@ Private methods:
void setColumn(size_t idx); void setColumn(size_t idx);
Public methods: Public methods:
void moveUp(); bool move(Direction direction);
void moveDown();
void moveLeft();
void moveRight();
*/ */
// PRIVATE // PRIVATE
@@ -26,9 +23,9 @@ Line Field::getRow(size_t rowIndex) const {
Line Field::getColumn(size_t columnIndex) const { Line Field::getColumn(size_t columnIndex) const {
// from top to bottom // from top to bottom
Line column; Line column(this->FieldSize);
for (size_t i = 0; i < this->FieldSize; ++i) { for (size_t i = 0; i < this->FieldSize; ++i) {
column.push_back(this->field[i][columnIndex]); column[i] = this->field[i][columnIndex];
} }
return column; return column;
} }
@@ -65,8 +62,8 @@ void printVector(const Line &arr) {
bool Field::move(Direction direction) { bool Field::move(Direction direction) {
auto oldField = this->field; auto oldField = this->field;
Line column; Line column(this->FieldSize);
Line row; Line row(this->FieldSize);
switch (direction) { switch (direction) {
case Direction::up: case Direction::up:
@@ -91,6 +88,7 @@ bool Field::move(Direction direction) {
row.process(); row.process();
setRow(i, row); setRow(i, row);
} }
break;
case Direction::right: case Direction::right:
for (size_t i = 0; i < this->FieldSize; ++i) { for (size_t i = 0; i < this->FieldSize; ++i) {
row = getRow(i); row = getRow(i);
@@ -99,6 +97,7 @@ bool Field::move(Direction direction) {
std::reverse(row.begin(), row.end()); std::reverse(row.begin(), row.end());
setRow(i, row); setRow(i, row);
} }
break;
default: default:
throw std::exception(); throw std::exception();
} }
+1 -1
View File
@@ -8,7 +8,7 @@ Fields:
Line::Line() { Line::Line() {
this->line.clear(); this->line.clear();
this->line.resize(4); this->line.resize(0);
} }
Line::Line(size_t length) { Line::Line(size_t length) {