final refinement for the day 1 challenge that was supposed to be a bigger project in my head

This commit is contained in:
DarthMooMancer
2025-08-30 23:18:00 -04:00
parent fbdf7af31e
commit efa2952ae2
7 changed files with 25 additions and 51 deletions
+12 -33
View File
@@ -1,13 +1,8 @@
#include <iostream>
#include "elements.hpp"
#include "globals.hpp"
Point::Point() {
m_col = 0;
m_row = 0;
}
void Point::clear(std::array<std::array<char, COL>, 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--;
}
+2 -2
View File
@@ -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 = ' ';
}
+3 -2
View File
@@ -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);
+2 -2
View File
@@ -5,7 +5,7 @@
void Window::update_display(Paddle &left, Paddle &right, Ball &ball, int &time) {
for(std::array<char, COL> &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
}