From 1033f3a64cb3db9e859991035bdd3c67daa5d26a Mon Sep 17 00:00:00 2001 From: zulianc Date: Sun, 2 Mar 2025 23:36:20 +0100 Subject: [PATCH] =?UTF-8?q?ajout=C3=A9=20interface=20textuelle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/class_diagramm_core.png | Bin 165232 -> 165711 bytes doc/class_diagramm_pieces.png | Bin 52912 -> 55733 bytes doc/game_logic.md | 7 +- src/Core/Action.h | 29 +++ src/Core/Board.cpp | 2 +- src/Core/Board.h | 6 +- src/Core/Game.cpp | 131 ++++++++++---- src/Core/Game.h | 27 +-- src/Core/GameBoard.cpp | 76 +++++--- src/Core/GameBoard.h | 32 ++-- src/Core/GameParameters.cpp | 2 +- src/Core/PiecesList.h | 4 +- src/Pieces/Piece.cpp | 17 +- src/Pieces/Piece.h | 14 +- src/Pieces/Polyomino.cpp | 4 +- src/Pieces/Polyomino.h | 6 +- src/Pieces/Position.h | 8 + src/Pieces/Rotation.h | 2 +- src/TextUI/TextApp.cpp | 323 ++++++++++++++++++++++++++++++++++ src/TextUI/TextApp.h | 58 ++++++ src/TextUI/main.cpp | 11 +- 21 files changed, 646 insertions(+), 113 deletions(-) create mode 100644 src/TextUI/TextApp.cpp create mode 100644 src/TextUI/TextApp.h diff --git a/doc/class_diagramm_core.png b/doc/class_diagramm_core.png index 89b77267ca6b957933d0c4902b9b63434e73b548..bd54c31b22fc8a974567852e992ed823adf446f4 100644 GIT binary patch delta 95753 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 z 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
r>SO1!dBvkg2JbR@^<6 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

JyBthl9~}4( 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 delta 95274 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

|=Yf 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 diff --git a/doc/class_diagramm_pieces.png b/doc/class_diagramm_pieces.png index a4ccf14f846f57587e0e6b371ca0c996f109a2fa..636767f72bc6e4e3d3034227804275d49cb2cc54 100644 GIT binary patch literal 55733 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 Pu2}h!nnH!VN#Oqgt5$UO literal 52912 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 z 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 diff --git a/doc/game_logic.md b/doc/game_logic.md index 1a44892..23212f1 100644 --- a/doc/game_logic.md +++ b/doc/game_logic.md @@ -7,11 +7,13 @@ We will only talk about pieces and not polyominos. In this project, pieces are a Each frame, the UI will translate the user's input into a series of action to apply to the game. The list of action is the following: +- Quit the game - Pause - Retry - Hold - Move left - Move right +- Rotate 0° - Rotate clockwise (CW) - Rotate 180° - Rotate counter-clockwise (CCW) @@ -44,11 +46,14 @@ Since this game uses polyomino of high sizes which are very unplayable, we will 1. Before rotating, mark every position containing the piece or touching the piece, we will call the set of all theses positions the ``safePositions`` 2. Rotate the piece, if it fit stop the algorithm -3. Try fitting the piece, going from the center to the sides, that means we try to move the piece 1 position right, then 1 position left, then 2 position right, etc. until it fit (and then stop the algorithm), if at one point a position doesn't touch one of the ``safePositions`` we stop trying in this direction +3. Try fitting the piece, going from the center to the sides, that means we try to move the piece 1 position right, then 1 position left, then 2 position right, etc. until it fit (and then stop the algorithm), if at one point none of the squares of the pieces are in one of the ``safePositions`` we stop trying in this direction 4. Move the piece one line down, and repeat step 3 again, until we hit a line were the first position (shifted by 0 positions horizontally) touched none of the ``safePositions`` 5. Do the same as step 4 but now we move the piece one line up every time 6. Cancel the rotation +Kicking is primarly designed for rotating, but it is also applied when a piece spawns into a wall. +0° rotations will first try to move the piece one position down, and if it can't try kicking the piece, only registering a kick if the piece couldn't move down. + ## Detecting spins Another common mechanic of stacker games that goes alongside kicking is spinning. A spin is a special move (a move is calculated once a piece has been locked to the board) which usually happen when the last move a piece did was a kick or a rotation and the piece is locked in place or is locked in certain corners, but the rules varies a lot from game to game. diff --git a/src/Core/Action.h b/src/Core/Action.h index 7b4acb2..65ef9e4 100644 --- a/src/Core/Action.h +++ b/src/Core/Action.h @@ -1,10 +1,13 @@ #pragma once +#include + /** * The list of actions that can be taken by the player */ enum Action { + QUIT, PAUSE, RETRY, HOLD, @@ -12,7 +15,33 @@ enum Action { HARD_DROP, MOVE_LEFT, MOVE_RIGHT, + ROTATE_0, ROTATE_CW, ROTATE_180, ROTATE_CCW }; + + +static const std::string ACTION_NAMES[] = { // name for each action + "Quit", + "Pause", + "Retry", + "Hold", + "Soft drop", + "Hard drop", + "Move left", + "Move right", + "Rotate 0°", + "Rotate CW", + "Rotate 180°", + "Rotate CCW" +}; + +/** + * Stream output operator, adds the name of the action + * @return A reference to the output stream + */ +inline std::ostream& operator<<(std::ostream& os, const Action action) { + os << ACTION_NAMES[action]; + return os; +} diff --git a/src/Core/Board.cpp b/src/Core/Board.cpp index 6d835b5..9ac46e4 100644 --- a/src/Core/Board.cpp +++ b/src/Core/Board.cpp @@ -87,7 +87,7 @@ Block Board::getBlock(const Position& position) const { return this->grid.at(position.y).at(position.x); } -std::vector> Board::getBlocks() const { +const std::vector>& Board::getBlocks() const { return this->grid; } diff --git a/src/Core/Board.h b/src/Core/Board.h index ad765b0..fcd48fa 100644 --- a/src/Core/Board.h +++ b/src/Core/Board.h @@ -44,14 +44,14 @@ class Board { void clearBoard(); /** - * @return A copy of the block at the specified position + * @return The block at the specified position */ Block getBlock(const Position& position) const; /** - * @return A copy of the grid + * @return The grid */ - std::vector> getBlocks() const; + const std::vector>& getBlocks() const; /** * @return The width of the grid diff --git a/src/Core/Game.cpp b/src/Core/Game.cpp index d1bc6b7..8447cfa 100644 --- a/src/Core/Game.cpp +++ b/src/Core/Game.cpp @@ -25,7 +25,7 @@ Game::Game(Gamemode gamemode, const Player& controls, int boardWidth, int boardH void Game::start() { this->started = true; - this->lost = this->board.spawnNextPiece(); + this->leftARETime = 1; } void Game::reset() { @@ -48,7 +48,6 @@ void Game::initialize() { this->heldDAS = 0; this->heldARR = 0; this->subVerticalPosition = 0; - this->leftARETime = 0; this->totalLockDelay = 0; this->totalForcedLockDelay = 0; } @@ -64,14 +63,14 @@ void Game::nextFrame(const std::set& playerActions) { if (this->leftARETime == 0) { if (AREJustEnded) { - this->board.spawnNextPiece(); + this->lost = this->board.spawnNextPiece(); } /* IRS and IHS */ Rotation initialRotation = NONE - + (this->initialActions.contains(ROTATE_CW)) ? CLOCKWISE : NONE - + (this->initialActions.contains(ROTATE_180)) ? DOUBLE : NONE - + (this->initialActions.contains(ROTATE_CCW)) ? COUNTERCLOCKWISE : NONE; + + ((this->initialActions.contains(ROTATE_CW)) ? CLOCKWISE : NONE) + + ((this->initialActions.contains(ROTATE_180)) ? DOUBLE : NONE) + + ((this->initialActions.contains(ROTATE_CCW)) ? COUNTERCLOCKWISE : NONE); if (this->initialActions.contains(HOLD)) { if (this->board.hold(initialRotation)) { @@ -79,13 +78,35 @@ void Game::nextFrame(const std::set& playerActions) { this->totalLockDelay = 0; this->heldARR = 0; } + else { + this->lost = true; + } } else { - if (initialRotation != NONE) { - this->board.rotate(initialRotation); + if (initialRotation != NONE || this->initialActions.contains(ROTATE_0)) { + Position before = this->board.getActivePiecePosition(); + if (this->board.rotate(initialRotation)) { + this->totalLockDelay = 0; + if (before != this->board.getActivePiecePosition()) { + this->subVerticalPosition = 0; + } + } + else { + this->lost = true; + } } } + if (this->lost) { + if (initialRotation == NONE && (!this->initialActions.contains(ROTATE_0))) { + this->board.rotate(NONE); + } + } + if (this->lost) { + this->framesPassed++; + return; + } + /* HOLD */ if (playerActions.contains(HOLD) && (!this->heldActions.contains(HOLD))) { if (this->board.hold()) { @@ -96,25 +117,48 @@ void Game::nextFrame(const std::set& playerActions) { } /* MOVE LEFT/RIGHT */ + Position before = this->board.getActivePiecePosition(); + if (playerActions.contains(MOVE_LEFT)) { - this->movePiece(-1, (this->heldDAS >= 0)); + this->movePiece(-1); } - if (playerActions.contains(MOVE_RIGHT)) { - this->movePiece(1, (this->heldDAS <= 0)); + else if (playerActions.contains(MOVE_RIGHT)) { + this->movePiece(1); } else { this->heldDAS = 0; } + if (before != this->board.getActivePiecePosition()) { + this->totalLockDelay = 0; + } + /* ROTATIONS */ + before = this->board.getActivePiecePosition(); + + if (playerActions.contains(ROTATE_0) && (!this->heldActions.contains(ROTATE_0))) { + if (this->board.rotate(NONE)) { + this->totalLockDelay = 0; + } + } if (playerActions.contains(ROTATE_CW) && (!this->heldActions.contains(ROTATE_CW))) { - this->board.rotate(CLOCKWISE); + if (this->board.rotate(CLOCKWISE)) { + this->totalLockDelay = 0; + } } if (playerActions.contains(ROTATE_180) && (!this->heldActions.contains(ROTATE_180))) { - this->board.rotate(DOUBLE); + if (this->board.rotate(DOUBLE)) { + this->totalLockDelay = 0; + } } if (playerActions.contains(ROTATE_CCW) && (!this->heldActions.contains(ROTATE_CCW))) { - this->board.rotate(COUNTERCLOCKWISE); + if (this->board.rotate(COUNTERCLOCKWISE)) { + this->totalLockDelay = 0; + } + } + + if (before != this->board.getActivePiecePosition()) { + this->subVerticalPosition = 0; } /* SOFT DROP */ @@ -149,7 +193,7 @@ void Game::nextFrame(const std::set& playerActions) { else { /* GRAVITY */ // parameters.getGravity() gives the gravity for an assumed 20-line high board - int appliedGravity = this->parameters.getGravity() * (this->board.getBoard().getBaseHeight() / 20.0); + int appliedGravity = this->parameters.getGravity() * std::max((double) this->board.getBoard().getBaseHeight() / 20.0, 1.0); this->subVerticalPosition += appliedGravity; while (this->subVerticalPosition >= SUBPX_PER_ROW) { @@ -171,16 +215,18 @@ void Game::nextFrame(const std::set& playerActions) { } } - // remove initial actions only once they've been applied if (AREJustEnded) { this->initialActions.clear(); } } this->framesPassed++; + if (this->lost) { + return; + } } - // update remembered actions + // update remembered actions for next frame if ((!this->started) || this->leftARETime > 0) { for (Action action : playerActions) { this->initialActions.insert(action); @@ -189,19 +235,24 @@ void Game::nextFrame(const std::set& playerActions) { this->heldActions = playerActions; - if (playerActions.contains(MOVE_LEFT)) { - this->heldDAS = std::min(-1, this->heldDAS - 1); - } - if (playerActions.contains(MOVE_RIGHT)) { - this->heldDAS = std::max(1, this->heldDAS + 1); - } - else { - this->heldDAS = 0; + if (this->leftARETime > 0) { + if (playerActions.contains(MOVE_LEFT)) { + this->heldDAS = std::min(-1, this->heldDAS - 1); + } + else if (playerActions.contains(MOVE_RIGHT)) { + this->heldDAS = std::max(1, this->heldDAS + 1); + } + else { + this->heldDAS = 0; + } } } -void Game::movePiece(int movement, bool resetDirection) { - if (resetDirection) { +void Game::movePiece(int movement) { + int appliedDAS = this->parameters.getDAS(); + int appliedARR = this->parameters.getARR(); + + if ((this->heldDAS * movement) <= 0) { this->heldDAS = movement; this->heldARR = 0; } @@ -209,9 +260,12 @@ void Game::movePiece(int movement, bool resetDirection) { this->heldDAS += movement; } - if (abs(this->heldDAS) > this->parameters.getDAS()) { - int appliedARR = this->parameters.getARR(); + if (abs(this->heldDAS) == appliedDAS + 1) { + if (movement == -1) this->board.moveLeft(); + if (movement == 1) this->board.moveRight(); + } + if (abs(this->heldDAS) > appliedDAS + 1) { // ARR=0 -> instant movement if (appliedARR == 0) { if (movement == -1) while (this->board.moveLeft()); @@ -233,7 +287,6 @@ void Game::lockPiece() { LineClear clear = this->board.lockPiece(); this->parameters.clearLines(clear.lines); - // update B2B and score bool B2BConditionsAreMet = ((clear.lines > B2B_MIN_LINE_NUMBER) || clear.isSpin || clear.isMiniSpin); if (clear.lines > 0) { /* clearing one more line is worth 2x more @@ -246,16 +299,14 @@ void Game::lockPiece() { } this->B2BChain = B2BConditionsAreMet; - // reset active piece this->subVerticalPosition = 0; this->totalLockDelay = 0; this->totalForcedLockDelay = 0; this->heldARR = 0; - // check for ARE this->leftARETime = this->parameters.getARE(); if (this->leftARETime == 0) { - this->board.spawnNextPiece(); + this->lost = this->board.spawnNextPiece(); } } @@ -291,22 +342,26 @@ bool Game::areBlocksBones() const { return this->parameters.getBoneBlocks(); } -Board Game::getBoard() const { +Position Game::ghostPiecePosition() const { + return this->board.lowestPosition(); +} + +const Board& Game::getBoard() const { return this->board.getBoard(); } -Piece Game::getActivePiece() const { +const std::shared_ptr& Game::getActivePiece() const { return this->board.getActivePiece(); } -Position Game::getActivePiecePosition() const { +const Position& Game::getActivePiecePosition() const { return this->board.getActivePiecePosition(); } -Piece Game::getHeldPiece() const { +const std::shared_ptr& Game::getHeldPiece() const { return this->board.getHeldPiece(); } -std::vector Game::getNextPieces() const { +const std::vector& Game::getNextPieces() const { return this->board.getNextPieces(); } diff --git a/src/Core/Game.h b/src/Core/Game.h index 61fac3e..0c3beeb 100644 --- a/src/Core/Game.h +++ b/src/Core/Game.h @@ -63,7 +63,7 @@ class Game { /** * Move the piece in the specified direction */ - void movePiece(int movement, bool resetDirection); + void movePiece(int movement); /** * Locks the piece, updates level and score and spawns the next piece if necessary @@ -112,27 +112,32 @@ class Game { bool areBlocksBones() const; /** - * @return A copy of the board + * @return The position of the ghost piece */ - Board getBoard() const; + Position ghostPiecePosition() const; /** - * @return A copy of the active piece + * @return The board */ - Piece getActivePiece() const; + const Board& getBoard() const; /** - * @return A copy of the active piece position + * @return A pointer to the active piece, can be null */ - Position getActivePiecePosition() const; + const std::shared_ptr& getActivePiece() const; /** - * @return A copy of the held piece + * @return The position of the active piece */ - Piece getHeldPiece() const; + const Position& getActivePiecePosition() const; /** - * @return A copy of the next pieces queue + * @return A pointer to the held piece, can be null */ - std::vector getNextPieces() const; + const std::shared_ptr& getHeldPiece() const; + + /** + * @return The next piece queue, can be empty + */ + const std::vector& getNextPieces() const; }; diff --git a/src/Core/GameBoard.cpp b/src/Core/GameBoard.cpp index e32a5b2..f5e0526 100644 --- a/src/Core/GameBoard.cpp +++ b/src/Core/GameBoard.cpp @@ -72,15 +72,22 @@ bool GameBoard::moveDown() { bool GameBoard::rotate(Rotation rotation) { Piece stored = *this->activePiece; - this->rotate(rotation); + this->activePiece->rotate(rotation); // before trying to kick, check if the piece can rotate without kicking - if (!this->activePieceInWall()) { - this->isLastMoveKick = false; - return true; + if (rotation == NONE) { + if (this->moveDown()) { + this->isLastMoveKick = false; + return true; + } + } + else { + if (!this->activePieceInWall()) { + this->isLastMoveKick = false; + return true; + } } - // get the list of positions that touches the original piece std::set safePositions; for (Position position : stored.getPositions()) { Position positionInGrid(position + this->activePiecePosition); @@ -91,7 +98,10 @@ bool GameBoard::rotate(Rotation rotation) { safePositions.insert(positionInGrid + Position{-1, 0}); } - // try kicking the piece down + // first try kicking the piece down + if (rotation == NONE) { + this->activePiecePosition.y -= 1; + } bool suceeded = this->tryKicking(true, safePositions); if (suceeded) { this->isLastMoveKick = true; @@ -99,6 +109,9 @@ bool GameBoard::rotate(Rotation rotation) { } // if it doesn't work try kicking the piece up + if (rotation == NONE) { + this->activePiecePosition.y += 1; + } suceeded = this->tryKicking(false, safePositions); if (suceeded) { this->isLastMoveKick = true; @@ -107,7 +120,10 @@ bool GameBoard::rotate(Rotation rotation) { // if it still doesn't work, abort the rotation this->activePiece = std::make_shared(stored); - return false; + if (rotation == NONE) { + this->isLastMoveKick = false; + } + return (rotation == NONE); } bool GameBoard::tryKicking(bool testingBottom, const std::set& safePositions) { @@ -118,9 +134,9 @@ bool GameBoard::tryKicking(bool testingBottom, const std::set& safePos // we try from the center to the sides as long as the kicked piece touches the original bool overlapsLeft = true; bool overlapsRight = true; - int i = 0; + int i = (j == 0) ? 1 : 0; do { - // check right before right arbitrarly, we don't decide this with rotations since it would still be arbitrary with 180° rotations + // check right before left arbitrarly, we don't decide this with rotations since it would still be arbitrary with 180° rotations if (overlapsRight) { Position shift{+i, j}; if (!this->activePieceOverlaps(safePositions, shift)) { @@ -175,21 +191,23 @@ bool GameBoard::hold(Rotation initialRotation) { } } - this->goToSpawnPosition(); - Piece stored = *this->activePiece; + Position storedPosition = this->activePiecePosition; + this->goToSpawnPosition(); this->rotate(initialRotation); // if the piece can't spawn, abort initial rotation if (this->activePieceInWall()) { this->activePiece = std::make_shared(stored); - + this->goToSpawnPosition(); + // if the piece still can't spawn, abort holding if (this->activePieceInWall()) { if (isFirstTimeHolding) { this->activePiece = nullptr; } std::swap(this->activePiece, this->heldPiece); + this->activePiecePosition = storedPosition; return false; } } @@ -200,6 +218,8 @@ bool GameBoard::hold(Rotation initialRotation) { this->nextQueue.erase(this->nextQueue.begin()); } + this->heldPiece->defaultRotation(); + // this piece has done nothing yet this->isLastMoveKick = false; @@ -207,10 +227,7 @@ bool GameBoard::hold(Rotation initialRotation) { } bool GameBoard::spawnNextPiece() { - // generate a new piece this->nextQueue.push_back(this->generator.getNext()); - - // get next piece from queue this->activePiece = std::make_shared(this->nextQueue.front()); this->nextQueue.erase(this->nextQueue.begin()); @@ -219,13 +236,22 @@ bool GameBoard::spawnNextPiece() { // this piece has done nothing yet this->isLastMoveKick = false; - return !this->activePieceInWall(); + return this->activePieceInWall(); } -bool GameBoard::touchesGround() { +bool GameBoard::touchesGround() const { return this->activePieceInWall(Position{0, -1}); } +Position GameBoard::lowestPosition() const { + Position shift = Position{0, -1}; + while (!activePieceInWall(shift)) { + shift.y -= 1; + } + shift.y += 1; + return (this->activePiecePosition + shift); +} + LineClear GameBoard::lockPiece() { bool isLockedInPlace = (this->activePieceInWall(Position{0, 1}) && this->activePieceInWall(Position{1, 0}) && this->activePieceInWall(Position{-1, 0}) && this->activePieceInWall(Position{0, -1})); @@ -248,23 +274,23 @@ void GameBoard::addGarbageRows(int number) { } } -Board GameBoard::getBoard() const { +const Board& GameBoard::getBoard() const { return this->board; } -Piece GameBoard::getActivePiece() const { - return *this->activePiece; +const std::shared_ptr& GameBoard::getActivePiece() const { + return this->activePiece; } -Position GameBoard::getActivePiecePosition() const { +const Position& GameBoard::getActivePiecePosition() const { return this->activePiecePosition; } -Piece GameBoard::getHeldPiece() const { - return *this->heldPiece; +const std::shared_ptr& GameBoard::getHeldPiece() const { + return this->heldPiece; } -std::vector GameBoard::getNextPieces() const { +const std::vector& GameBoard::getNextPieces() const { return this->nextQueue; } @@ -293,6 +319,8 @@ void GameBoard::goToSpawnPosition() { // center the piece horizontally, biased towards left this->activePiecePosition.x = (this->board.getWidth() - this->activePiece->getLength()) / 2; + + this->activePiece->defaultRotation(); } std::ostream& operator<<(std::ostream& os, const GameBoard& gameboard) { diff --git a/src/Core/GameBoard.h b/src/Core/GameBoard.h index 68e8137..b55097f 100644 --- a/src/Core/GameBoard.h +++ b/src/Core/GameBoard.h @@ -60,7 +60,7 @@ class GameBoard { bool moveDown(); /** - * Tries rotating the piece and kicking it if necessary + * Tries rotating the piece and kicking it if necessary, if it's a 0° rotation, it will forcefully try kicking * @return If it suceeded */ bool rotate(Rotation rotation); @@ -89,7 +89,13 @@ class GameBoard { * Checks is the active piece as a wall directly below one of its position * @return If it touches a ground */ - bool touchesGround(); + bool touchesGround() const; + + /** + * Computes what the piece position would be if it were to be dropped down as much as possible + * @return The lowest position before hitting a wall + */ + Position lowestPosition() const; /** * Locks the active piece into the board and clears lines if needed @@ -103,34 +109,34 @@ class GameBoard { void addGarbageRows(int number); /** - * @return A copy of the board + * @return The board */ - Board getBoard() const; + const Board& getBoard() const; /** - * @return A copy of the active piece + * @return A pointer to the active piece, can be null */ - Piece getActivePiece() const; + const std::shared_ptr& getActivePiece() const; /** - * @return A copy of the position of the active piece + * @return The position of the active piece */ - Position getActivePiecePosition() const; + const Position& getActivePiecePosition() const; /** - * @return A copy of the held piece + * @return A pointer to the held piece, can be null */ - Piece getHeldPiece() const; + const std::shared_ptr& getHeldPiece() const; /** - * @return A copy of the next piece queue + * @return The next piece queue, can be empty */ - std::vector getNextPieces() const; + const std::vector& getNextPieces() const; private: /** * Checks if one of the active piece's positions touches a wall in the board - * @return If the active piece is in a wall + * @return If the active piece spawned in a wall */ bool activePieceInWall(const Position& shift = Position{0, 0}) const; diff --git a/src/Core/GameParameters.cpp b/src/Core/GameParameters.cpp index 2f7009b..e9590d8 100644 --- a/src/Core/GameParameters.cpp +++ b/src/Core/GameParameters.cpp @@ -118,7 +118,7 @@ void GameParameters::updateStats() { if (this->level < 0) { this->gravity = gravityPerLevel[0]; } - else if (this->gravity > 20) { + else if (this->level > 20) { this->gravity = gravityPerLevel[20]; } else { diff --git a/src/Core/PiecesList.h b/src/Core/PiecesList.h index 5f26216..4110ae4 100644 --- a/src/Core/PiecesList.h +++ b/src/Core/PiecesList.h @@ -77,12 +77,12 @@ class PiecesList { int getNumberOfPieces(int size) const; /** - * @return The indexes of all selected pieces + * @return A copy of the indexes of all selected pieces */ std::vector> getSelectedPieces() const; /** - * @return The piece corresponding to the specified index + * @return A copy of the piece corresponding to the specified index */ Piece getPiece(const std::pair& pieceIndex) const; diff --git a/src/Pieces/Piece.cpp b/src/Pieces/Piece.cpp index 05c1aee..7023cf7 100644 --- a/src/Pieces/Piece.cpp +++ b/src/Pieces/Piece.cpp @@ -12,6 +12,8 @@ Piece::Piece(const Polyomino& polyomino, Block blockType) : polyomino(polyomino), blockType(blockType) { + + this->rotationState = NONE; } void Piece::rotate(Rotation rotation) { @@ -21,9 +23,22 @@ void Piece::rotate(Rotation rotation) { this->polyomino.rotate180(); if (rotation == COUNTERCLOCKWISE) this->polyomino.rotateCCW(); + + this->rotationState += rotation; } -std::set Piece::getPositions() const { +void Piece::defaultRotation() { + if (this->rotationState == CLOCKWISE) + this->polyomino.rotateCCW(); + if (this->rotationState == DOUBLE) + this->polyomino.rotate180(); + if (this->rotationState == COUNTERCLOCKWISE) + this->polyomino.rotateCW(); + + this->rotationState = NONE; +} + +const std::set& Piece::getPositions() const { return this->polyomino.getPositions(); } diff --git a/src/Pieces/Piece.h b/src/Pieces/Piece.h index 085da47..cd74eb1 100644 --- a/src/Pieces/Piece.h +++ b/src/Pieces/Piece.h @@ -13,8 +13,9 @@ */ class Piece { private: - Polyomino polyomino; // a polyomino representing the piece, (0, 0) is downleft - Block blockType; // the block type of the piece + Polyomino polyomino; // a polyomino representing the piece, (0, 0) is downleft + Block blockType; // the block type of the piece + Rotation rotationState; // the current rotation of the piece public: /** @@ -28,9 +29,14 @@ class Piece { void rotate(Rotation rotation); /** - * @return A copy of the list of positions of the piece + * Rotates the piece to its default rotation */ - std::set getPositions() const; + void defaultRotation(); + + /** + * @return The list of positions of the piece + */ + const std::set& getPositions() const; /** * @return The length of the piece diff --git a/src/Pieces/Polyomino.cpp b/src/Pieces/Polyomino.cpp index 016fd62..7ee6118 100644 --- a/src/Pieces/Polyomino.cpp +++ b/src/Pieces/Polyomino.cpp @@ -267,7 +267,7 @@ void Polyomino::tryToInsertPosition(std::set& emptyPositions, const Po tryToInsertPosition(emptyPositions, Position{candidate.x - 1, candidate.y}); } -std::set Polyomino::getPositions() const { +const std::set& Polyomino::getPositions() const { return this->positions; } @@ -293,7 +293,7 @@ bool Polyomino::operator<(const Polyomino& other) const { return false; } -bool Polyomino::operator ==(const Polyomino& other) const { +bool Polyomino::operator==(const Polyomino& other) const { return this->positions == other.positions; } diff --git a/src/Pieces/Polyomino.h b/src/Pieces/Polyomino.h index 6ca4c50..8099195 100644 --- a/src/Pieces/Polyomino.h +++ b/src/Pieces/Polyomino.h @@ -78,9 +78,9 @@ class Polyomino { public: /** - * @return A copy of the positions of the polyomino + * @return The positions of the polyomino */ - std::set getPositions() const; + const std::set& getPositions() const; /** * @return The length of the polyomino @@ -103,7 +103,7 @@ class Polyomino { * Equality operator, two polyominos are equal if their positions are the same, that means two polyominos of the same shape at different places will not be equal * @return If the polyomino is equal to another */ - bool operator ==(const Polyomino& other) const; + bool operator==(const Polyomino& other) const; /** * Stream output operator, adds a 2D grid representing the polyomino diff --git a/src/Pieces/Position.h b/src/Pieces/Position.h index 47ebb3e..710d0ac 100644 --- a/src/Pieces/Position.h +++ b/src/Pieces/Position.h @@ -62,6 +62,14 @@ inline bool operator==(const Position& left, const Position& right) { return (left.x == right.x) && (left.y == right.y); } +/** + * Inequality operator, two positions aren't equal if their coordinates aren't + * @return If the two positions aren't equals + */ +inline bool operator!=(const Position& left, const Position& right) { + return (left.x != right.x) || (left.y != right.y); +} + /** * Stream output operator, adds the coordinates of the position to the stream * @return A reference to the output stream diff --git a/src/Pieces/Rotation.h b/src/Pieces/Rotation.h index 90d4955..f8ef4c4 100644 --- a/src/Pieces/Rotation.h +++ b/src/Pieces/Rotation.h @@ -17,7 +17,7 @@ enum Rotation { * @return A rotation corresponding to doing both rotations */ inline Rotation operator+(const Rotation& left, const Rotation& right) { - return Rotation((left + right) % 4); + return Rotation(((int) left + (int) right) % 4); } /** diff --git a/src/TextUI/TextApp.cpp b/src/TextUI/TextApp.cpp new file mode 100644 index 0000000..9c9cf4a --- /dev/null +++ b/src/TextUI/TextApp.cpp @@ -0,0 +1,323 @@ +#include "TextApp.h" + +#include "../Core/Menu.h" + +#include +#include +#include +#include +#include +#include +#include + +static const int FRAMES_PER_INPUT = FRAMES_PER_SECOND / 2; +static const int MAXIMUM_PIECE_SIZE = 10; +static const int DEFAULT_PIECE_SIZE = 4; +static const int MAXIMUM_BOARD_WIDTH = 30; +static const int MAXIMYM_BOARD_HEIGHT = 40; +static const Gamemode DEFAULT_GAMEMODE = SPRINT; + + +TextApp::TextApp() { + this->defaultKeybinds(); + + this->gameMenu.getPiecesList().loadPieces(MAXIMUM_PIECE_SIZE); + this->gameMenu.getPiecesList().selectAllPieces(DEFAULT_PIECE_SIZE); + + this->gameMenu.getPlayerControls().setDAS(FRAMES_PER_INPUT - 1); + this->gameMenu.getPlayerControls().setARR(FRAMES_PER_INPUT); + this->gameMenu.getPlayerControls().setSDR(0); +} + +void TextApp::run() { + bool quit = false; + std::string answer; + int selectedAnswer = 0; + while (!quit) { + std::cout << "\n\n\n"; + std::cout << "===| WELCOME TO JMINOS! |===" << std::endl; + std::cout << "1- Change pieces" << std::endl; + std::cout << "2- Change board" << std::endl; + std::cout << "3- See controls" << std::endl; + std::cout << "4- Start game" << std::endl; + std::cout << "5- Quit" << std::endl; + std::cout << "Choice: "; + std::getline(std::cin, answer); + try { + selectedAnswer = std::stoi(answer); + } + catch (std::exception ignored) {} + + switch (selectedAnswer) { + case 1 : {this->choosePieces(); break;} + case 2 : {this->chooseBoardSize(); break;} + case 3 : {this->seeKeybinds(); break;} + case 4 : {this->startGame(); break;} + case 5 : {quit = true; break;} + default : std::cout << "Invalid answer!" << std::endl; + } + } + std::cout << "===| SEE YA NEXT TIME! |==="; +} + +void TextApp::choosePieces() { + std::cout << "\n\n\n"; + std::cout << "Choose which piece sizes to play with (from 1 to " << MAXIMUM_PIECE_SIZE << "), separate mutltiple sizes with blank spaces." << std::endl; + std::cout << "Choice: "; + std::string answer; + std::getline(std::cin, answer); + + this->gameMenu.getPiecesList().unselectAll(); + std::cout << "Selected pieces of sizes:"; + std::stringstream answerStream(answer); + for (std::string size; std::getline(answerStream, size, ' ');) { + try { + int selectedSize = std::stoi(size); + if (selectedSize >= 1 && selectedSize <= MAXIMUM_PIECE_SIZE) { + if (this->gameMenu.getPiecesList().selectAllPieces(selectedSize)) { + std::cout << " " << selectedSize; + } + } + } + catch (std::exception ignored) {} + } + + std::string waiting; + std::getline(std::cin, waiting); +} + +void TextApp::chooseBoardSize() { + std::string answer; + + std::cout << "\n\n\n"; + std::cout << "Current board width and height: " << this->gameMenu.getBoardWidth() << "x" << this->gameMenu.getBoardHeight() << std::endl; + + std::cout << "Choose the width of the board (from 1 to " << MAXIMUM_BOARD_WIDTH << ")." << std::endl; + std::cout << "Choice: "; + std::getline(std::cin, answer); + try { + int selectedSize = std::stoi(answer); + if (selectedSize >= 1 && selectedSize <= MAXIMUM_BOARD_WIDTH) { + this->gameMenu.setBoardWidth(selectedSize); + } + } + catch (std::exception ignored) {} + + std::cout << "Choose the height of the board (from 1 to " << MAXIMYM_BOARD_HEIGHT << ")." << std::endl; + std::cout << "Choice: "; + std::getline(std::cin, answer); + try { + int selectedSize = std::stoi(answer); + if (selectedSize >= 1 && selectedSize <= MAXIMYM_BOARD_HEIGHT) { + this->gameMenu.setBoardHeight(selectedSize); + } + } + catch (std::exception ignored) {} + + std::cout << "New board width and height: " << this->gameMenu.getBoardWidth() << "x" << this->gameMenu.getBoardHeight(); + + std::string waiting; + std::getline(std::cin, waiting); +} + +void TextApp::seeKeybinds() const { + std::cout << "\n\n\n"; + std::cout << "Quit/Pause/Retry: quit/pause/retry" << std::endl; + std::cout << "Hold : h" << std::endl; + std::cout << "Soft/Hard drop : sd/hd" << std::endl; + std::cout << "Move left/right : l/r" << std::endl; + std::cout << "Rotate 0/CW/180/CCW: c/cw/cc/ccw" << std::endl; + std::cout << "\n"; + std::cout << "To do several actions at the same time, separe them with blank spaces." << std::endl; + std::cout << "Remember that for certains actions like hard dropping, you need to release it before using it again, even if a different piece spawned."; + std::string waiting; + std::getline(std::cin, waiting); +} + +void TextApp::defaultKeybinds() { + this->keybinds.clear(); + this->keybinds.insert({"quit", QUIT}); + this->keybinds.insert({"pause", PAUSE}); + this->keybinds.insert({"retry", RETRY}); + this->keybinds.insert({"h", HOLD}); + this->keybinds.insert({"sd", SOFT_DROP}); + this->keybinds.insert({"hd", HARD_DROP}); + this->keybinds.insert({"l", MOVE_LEFT}); + this->keybinds.insert({"r", MOVE_RIGHT}); + this->keybinds.insert({"c", ROTATE_0}); + this->keybinds.insert({"cw", ROTATE_CW}); + this->keybinds.insert({"cc", ROTATE_180}); + this->keybinds.insert({"ccw", ROTATE_CCW}); +} + +void TextApp::startGame() const { + Game game = this->gameMenu.startGame(DEFAULT_GAMEMODE); + game.start(); + + std::cout << "\n\n\n"; + this->printGame(game); + + bool quit = false; + bool paused = false; + std::string answer; + while (!quit) { + std::cout << "Actions: "; + std::getline(std::cin, answer); + std::stringstream answerStream(answer); + std::vector actions; + for (std::string action; std::getline(answerStream, action, ' ');) { + actions.push_back(action); + } + + std::set playerActions; + for (std::string action : actions) { + if (this->keybinds.contains(action)) { + playerActions.insert(this->keybinds.at(action)); + } + } + + if (playerActions.contains(PAUSE)) { + paused = (!paused); + } + + if (!paused) { + if (playerActions.contains(QUIT)) { + quit = true; + } + else if (playerActions.contains(RETRY)) { + game.reset(); + game.start(); + } + else { + for (int i = 0; i < FRAMES_PER_INPUT; i++) { + game.nextFrame(playerActions); + } + } + } + + std::cout << "\n\n\n"; + if (paused) { + std::cout << "--<[PAUSED]>--" << std::endl; + } + this->printGame(game); + + if (game.hasLost()) { + quit = true; + std::cout << "You lost!" << std::endl; + } + else if (game.hasWon()) { + quit = true; + std::cout << "You won!" << std::endl; + } + } +} + +void TextApp::printGame(const Game& game) const { + int maxHeight = game.getBoard().getGridHeight(); + if (game.getActivePiece() != nullptr) { + for (const Position& position : game.getActivePiece()->getPositions()) { + maxHeight = std::max(maxHeight, position.y + game.getActivePiecePosition().y); + } + } + + bool lineCountPrinted = false; + bool holdBoxStartedPrinting = false; + bool holdBoxFinishedPrinting = false; + bool nextQueueStartedPrinting = false; + bool nextQueueFinishedPrinting = false; + int nextQueuePrintedPiece; + int printedPieceLineHeight; + + for (int y = maxHeight; y >= 0; y--) { + for (int x = 0; x < game.getBoard().getWidth(); x++) { + bool isActivePieceHere = (game.getActivePiece() != nullptr) && (game.getActivePiece()->getPositions().contains(Position{x, y} - game.getActivePiecePosition())); + bool isGhostPieceHere = (game.getActivePiece() != nullptr) && (game.getActivePiece()->getPositions().contains(Position{x, y} - game.ghostPiecePosition())); + Block block = (isActivePieceHere || isGhostPieceHere) ? game.getActivePiece()->getBlockType() : game.getBoard().getBlock(Position{x, y}); + + if (isActivePieceHere || isGhostPieceHere) { + std::cout << getConsoleColorCode(block); + } + else { + std::cout << getResetConsoleColorCode(); + } + + if (block != NOTHING && (!(isGhostPieceHere && !isActivePieceHere))) { + std::cout << "*"; + } + else { + if (y < game.getBoard().getBaseHeight()) { + if (isGhostPieceHere) { + std::cout << "="; + } + else { + std::cout << "-"; + } + } + else { + std::cout << " "; + } + } + } + + if (y < game.getBoard().getGridHeight()) { + std::cout << " "; + if (!lineCountPrinted) { + std::cout << getResetConsoleColorCode() << "Lines: " << game.getClearedLines(); + lineCountPrinted = true; + } + else if (!holdBoxFinishedPrinting) { + if (!holdBoxStartedPrinting) { + std::cout << getResetConsoleColorCode() << "Hold:"; + printedPieceLineHeight = (game.getHeldPiece() == nullptr) ? -1 : (game.getHeldPiece()->getLength() - 1); + holdBoxStartedPrinting = true; + } + else { + for (int i = 0; i < game.getHeldPiece()->getLength(); i++) { + if (game.getHeldPiece()->getPositions().contains(Position{i, printedPieceLineHeight})) { + std::cout << getConsoleColorCode(game.getHeldPiece()->getBlockType()) << "*"; + } + else { + std::cout << getResetConsoleColorCode() << "-"; + } + } + printedPieceLineHeight--; + } + if (printedPieceLineHeight < 0) { + holdBoxFinishedPrinting = true; + } + } + else if (!nextQueueFinishedPrinting) { + if (!nextQueueStartedPrinting) { + std::cout << getResetConsoleColorCode() << "Next:"; + printedPieceLineHeight = (game.getNextPieces().size() == 0) ? -1 : (game.getNextPieces().at(0).getLength() - 1); + nextQueuePrintedPiece = 0; + nextQueueStartedPrinting = true; + } + else { + for (int i = 0; i < game.getNextPieces().at(nextQueuePrintedPiece).getLength(); i++) { + if (game.getNextPieces().at(nextQueuePrintedPiece).getPositions().contains(Position{i, printedPieceLineHeight})) { + std::cout << getConsoleColorCode(game.getNextPieces().at(nextQueuePrintedPiece).getBlockType()) << "*"; + } + else { + std::cout << getResetConsoleColorCode() << "-"; + } + } + printedPieceLineHeight--; + } + if (printedPieceLineHeight < 0) { + nextQueuePrintedPiece++; + if (nextQueuePrintedPiece >= game.getNextPieces().size()) { + nextQueueFinishedPrinting = true; + } + else { + printedPieceLineHeight = game.getNextPieces().at(nextQueuePrintedPiece).getLength() - 1; + } + } + } + } + + std::cout << "\n"; + } + + std::cout << getResetConsoleColorCode(); +} diff --git a/src/TextUI/TextApp.h b/src/TextUI/TextApp.h new file mode 100644 index 0000000..fca81ad --- /dev/null +++ b/src/TextUI/TextApp.h @@ -0,0 +1,58 @@ +#pragma once + +#include "../Core/Menu.h" + +#include +#include + + +/** + * Textual interface for the app + */ +class TextApp { + private: + Menu gameMenu; // the interface with the core of the app + std::map keybinds; // what the player needs to type to perform in-game actions + + public: + /** + * Initializes the app with default settings + */ + TextApp(); + + /** + * Runs the app + */ + void run(); + + private: + /** + * Sub-menu to select which pieces to play with + */ + void choosePieces(); + + /** + * Sub-menu to change the size of the board + */ + void chooseBoardSize(); + + /** + * Sub-menu to see the in-game controls + */ + void seeKeybinds() const; + + /** + * Sets the controls to their default values + */ + void defaultKeybinds(); + + /** + * Starts a new game with the current settings + */ + void startGame() const; + + /** + * Prints the current state of a game to the console + */ + void printGame(const Game& game) const; +}; diff --git a/src/TextUI/main.cpp b/src/TextUI/main.cpp index ba933d2..5e5f631 100644 --- a/src/TextUI/main.cpp +++ b/src/TextUI/main.cpp @@ -1,6 +1,6 @@ -#include "../Core/Menu.h" #include "../Pieces/Generator.h" #include "../Pieces/PiecesFiles.h" +#include "TextApp.h" #include @@ -18,13 +18,8 @@ void readStatsFromFilesForAllSizes(int amount); int main(int argc, char** argv) { std::srand(std::time(NULL)); - Menu menu; - menu.getPiecesList().loadPieces(4); - menu.getPiecesList().selectAllPieces(4); - Game game = menu.startGame(SPRINT); - game.start(); - - loadFromFilesForOneSize(13); + TextApp UI; + UI.run(); return 0; }