{"id":26865733,"url":"https://github.com/vickshan001/breakout-ci401-project","last_synced_at":"2025-07-15T04:07:50.429Z","repository":{"id":285138035,"uuid":"957178832","full_name":"vickshan001/Breakout-CI401-Project","owner":"vickshan001","description":"A simple Java-based Breakout game built in 2020 as my first hands-on programming project during university. Features pause, scoring, and brick rows.","archived":false,"fork":false,"pushed_at":"2025-03-29T18:42:38.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T19:30:06.525Z","etag":null,"topics":["breakout-game","game-development","java","oop","swing","university-project"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vickshan001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-29T18:34:18.000Z","updated_at":"2025-03-29T18:44:19.000Z","dependencies_parsed_at":"2025-03-29T19:40:19.419Z","dependency_job_id":null,"html_url":"https://github.com/vickshan001/Breakout-CI401-Project","commit_stats":null,"previous_names":["vickshan001/breakout-ci401-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vickshan001/Breakout-CI401-Project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickshan001%2FBreakout-CI401-Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickshan001%2FBreakout-CI401-Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickshan001%2FBreakout-CI401-Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickshan001%2FBreakout-CI401-Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vickshan001","download_url":"https://codeload.github.com/vickshan001/Breakout-CI401-Project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickshan001%2FBreakout-CI401-Project/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265402533,"owners_count":23759180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["breakout-game","game-development","java","oop","swing","university-project"],"created_at":"2025-03-31T04:23:26.547Z","updated_at":"2025-07-15T04:07:50.409Z","avatar_url":"https://github.com/vickshan001.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧱 Breakout Game – Java Application\n\nA simple Breakout game developed as part of the CI401 module coursework during my **first year at university (2020)**. This was my **first hands-on experience with Java**, where I learned the basics of object-oriented programming and graphical user interface development. The game allows players to bounce a ball using a paddle to break rows of bricks, complete with scoring and pause/resume functionality.\n\n---\n\n## 🎮 Description \u0026 Aims\n\nThis project is a classic **Breakout** game where the player:\n\n- Controls a bat (paddle) to keep the ball in play.\n- Aims to destroy all bricks by bouncing the ball.\n- Gains points for each brick destroyed.\n\nInitial game state included a working scoreboard, bat, and ball. Enhancements aimed to:\n\n- ✅ Add rows of bricks  \n- ✅ Fix bat from moving outside the window  \n- ✅ Add Pause and Resume functionality  \n\n---\n\n## ✨ Features\n\n### 🔷 Add Rows of Bricks\n\n- Dynamically generated bricks using nested loops for rows and columns.\n- Each row is assigned a different color for better visual clarity using a predefined color array.\n\n### ⏸️ Add Pause and Resume Function\n\n- Implemented keyboard controls:\n  - `P` → Pause\n  - `C` → Continue\n- Ball and bat motion are controlled by setting their movement units to `0` during pause.\n\n### 🚫 Prevent Bat From Leaving the Window\n\n- Added `if` condition to constrain bat movement within screen borders.\n- Movement direction and bat position are checked and adjusted accordingly.\n\n---\n\n## 🛠 Technologies Used\n\n- Java\n- Java Swing (GUI)\n- MVC Architecture\n- Object-Oriented Programming principles\n\n---\n\n## 🎯 How to Play\n\n1. Run the application.\n2. Use arrow keys (or specified controls) to move the bat.\n3. Hit the ball to break the bricks.\n4. Press `P` to pause and `C` to continue.\n5. Prevent the ball from falling and try to clear all bricks!\n\n---\n\n## 👨‍💻 Developed By\n\n**Vickshan Vicknakumaran**  \nUniversity of Brighton  \n_First-year university project (2020)_  \n\n---\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvickshan001%2Fbreakout-ci401-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvickshan001%2Fbreakout-ci401-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvickshan001%2Fbreakout-ci401-project/lists"}