diff --git a/include/elements.hpp b/include/elements.hpp index d862e54..15d40da 100644 --- a/include/elements.hpp +++ b/include/elements.hpp @@ -1,23 +1,18 @@ #ifndef ELEMENTS_HPP #define ELEMENTS_HPP -#include "globals.hpp" -#include struct Point { + Point(); int m_row; int m_col; - Point(); - Point(int row, int col) : m_row(row), m_col(col) {}; - void to_string(); - void clear(std::array, ROW> &m_board); void assign(int row, int col); }; struct Ball { Ball(); Point m_origin; - int m_vx = 1; - int m_vy = -1; + int m_vx; + int m_vy; bool m_goal; void get_new_pos(); void check_collision(); @@ -28,7 +23,7 @@ struct Paddle { Paddle(int col); int _size; int m_score; - Point m_nodes[4]; + Point m_nodes[3]; void get_new_pos(int col); void check_collision(Ball &ball); }; diff --git a/include/globals.hpp b/include/globals.hpp index 0e62674..7626946 100644 --- a/include/globals.hpp +++ b/include/globals.hpp @@ -1,7 +1,7 @@ #ifndef GLOBALS_HPP #define GLOBALS_HPP -constexpr unsigned int ROW = 10; -constexpr unsigned int COL = 21; +constexpr unsigned int ROW = 15; +constexpr unsigned int COL = 31; #endif diff --git a/include/input.hpp b/include/input.hpp index 5b35a7a..23a9773 100644 --- a/include/input.hpp +++ b/include/input.hpp @@ -3,7 +3,6 @@ #include "elements.hpp" struct Input { - int m_current_key = 0; char m_getch = ' '; void get_input(bool &r, Paddle &a, Paddle &b); }; diff --git a/src/elements.cpp b/src/elements.cpp index 61ba99f..2e71b97 100644 --- a/src/elements.cpp +++ b/src/elements.cpp @@ -1,13 +1,8 @@ -#include #include "elements.hpp" +#include "globals.hpp" Point::Point() { - m_col = 0; - m_row = 0; -} - -void Point::clear(std::array, ROW> &m_board) { - m_board[m_row][m_col] = '.'; + m_col = m_row = 0; } void Point::assign(int row, int col) { @@ -15,22 +10,14 @@ void Point::assign(int row, int col) { m_col = col; } -void Point::to_string() { - std::cout << "(" << m_row << ", " << m_col << ")"; -} - Paddle::Paddle(int col) { - _size = 4; + _size = 3; m_score = 0; - for(int i = 0; i < _size; i++) { - m_nodes[i].assign(i + 3, col); - } + for(int i = 0; i < _size; i++) { m_nodes[i].assign(i + (_size * 2), col); } } void Paddle::get_new_pos(int col) { - for(int i = 1; i < _size; i++) { - m_nodes[i].assign(m_nodes[0].m_row + i, col); - } + for(int i = 1; i < _size; i++) { m_nodes[i].assign(m_nodes[0].m_row + i, col); } } void Paddle::check_collision(Ball &ball) { @@ -42,7 +29,7 @@ void Paddle::check_collision(Ball &ball) { } Ball::Ball() { - m_origin.assign(5, 10); + m_origin.assign((ROW / 2), (COL / 2)); m_vx = 1; m_vy = -1; m_goal = false; @@ -59,21 +46,13 @@ void Ball::change_direction(char d) { } void Ball::check_collision() { - if(m_origin.m_row <= 0 || m_origin.m_row >= ROW - 1) { - change_direction('y'); - } if(m_origin.m_col <= 0 || m_origin.m_col >= COL - 1) { - m_goal = true; - } + if(m_origin.m_row <= 0 || m_origin.m_row >= ROW - 1) change_direction('y'); + if(m_origin.m_col <= 0 || m_origin.m_col >= COL - 1) m_goal = true; } void Ball::get_new_pos() { - if(m_vx == 1) { - m_origin.m_col++; - } else if(m_vx == -1) { - m_origin.m_col--; - } if(m_vy == 1) { - m_origin.m_row++; - } else if(m_vy == -1) { - m_origin.m_row--; - } + if(m_vx == 1) m_origin.m_col++; + else if(m_vx == -1) m_origin.m_col--; + if(m_vy == 1) m_origin.m_row++; + else if(m_vy == -1) m_origin.m_row--; } diff --git a/src/input.cpp b/src/input.cpp index fc5a387..6dfcaa6 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -17,7 +17,7 @@ void Input::get_input(bool &running, Paddle &a, Paddle &b) { m_getch = ' '; } } else if(m_getch == 's') { - if(a.m_nodes[3].m_row < ROW - 1) { + if(a.m_nodes[a._size - 1].m_row < ROW - 1) { a.m_nodes[0].m_row++; m_getch = ' '; } @@ -27,7 +27,7 @@ void Input::get_input(bool &running, Paddle &a, Paddle &b) { m_getch = ' '; } } else if(m_getch == 'B') { - if(b.m_nodes[3].m_row < ROW - 1) { + if(b.m_nodes[b._size - 1].m_row < ROW - 1) { b.m_nodes[0].m_row++; m_getch = ' '; } diff --git a/src/main.cpp b/src/main.cpp index 4b30021..64a40d0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,6 +4,7 @@ #include "timer.hpp" #include "window.hpp" #include "elements.hpp" +#include "globals.hpp" int main() { bool running = true; @@ -11,7 +12,7 @@ int main() { Timer timer; Window window; Paddle left(1); - Paddle right(19); + Paddle right(COL - 2); Ball ball; int time = 90; bool timer_active = true; @@ -20,7 +21,7 @@ int main() { while (running) { window.update_display(left, right, ball, time); left.get_new_pos(1); - right.get_new_pos(19); + right.get_new_pos(COL - 2); ball.get_new_pos(); ball.check_collision(); left.check_collision(ball); diff --git a/src/window.cpp b/src/window.cpp index e8964f5..d211e6c 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -5,7 +5,7 @@ void Window::update_display(Paddle &left, Paddle &right, Ball &ball, int &time) { for(std::array &row : m_board) { row.fill('.'); } - for(int i = 0; i < 4; i++) { + for(int i = 0; i < left._size; i++) { m_board[left.m_nodes[i].m_row][left.m_nodes[i].m_col] = '|'; m_board[right.m_nodes[i].m_row][right.m_nodes[i].m_col] = '|'; } @@ -18,5 +18,5 @@ void Window::update_display(Paddle &left, Paddle &right, Ball &ball, int &time) std::cout << "\r\n"; } std::cout << "Time left: " << time << ", Score ( " << left.m_score << " : " << right.m_score << " )" << std::endl; - std::this_thread::sleep_for(std::chrono::milliseconds(200)); // 1000 / fps; 200ms = 5fps + std::this_thread::sleep_for(std::chrono::milliseconds(130)); // 1000 / fps; 200ms = 5fps }