{"id":16994292,"url":"https://github.com/albertobaroso/computer-architectures-pong","last_synced_at":"2025-03-22T05:42:56.453Z","repository":{"id":211586650,"uuid":"444439709","full_name":"AlbertoBaroso/computer-architectures-pong","owner":"AlbertoBaroso","description":"Single/Multi-player pong game designed for the LandTiger development board","archived":false,"fork":false,"pushed_at":"2022-08-11T17:01:24.000Z","size":8551,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-27T06:26:41.669Z","etag":null,"topics":["c","landtiger","system-device-programming"],"latest_commit_sha":null,"homepage":"","language":"C","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/AlbertoBaroso.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}},"created_at":"2022-01-04T14:00:22.000Z","updated_at":"2022-09-06T07:06:51.000Z","dependencies_parsed_at":"2023-12-09T14:48:24.662Z","dependency_job_id":null,"html_url":"https://github.com/AlbertoBaroso/computer-architectures-pong","commit_stats":null,"previous_names":["albertobaroso/computer-architectures-pong"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbertoBaroso%2Fcomputer-architectures-pong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbertoBaroso%2Fcomputer-architectures-pong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbertoBaroso%2Fcomputer-architectures-pong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlbertoBaroso%2Fcomputer-architectures-pong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlbertoBaroso","download_url":"https://codeload.github.com/AlbertoBaroso/computer-architectures-pong/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244913005,"owners_count":20530769,"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":["c","landtiger","system-device-programming"],"created_at":"2024-10-14T03:45:05.474Z","updated_at":"2025-03-22T05:42:56.432Z","avatar_url":"https://github.com/AlbertoBaroso.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Computer Architecture - Pong\n\nSingle/Multi-player pong game developed on the LandTiger (LPC1768 ARM Development Board) for the Computer Architecture course @ PoliTo.\n\nThe aim of this project is to dive into the low-level details of a computer architecture and learn how to use its components: clock frequencies, timers, interrupts, memory, AD/DA conversions, LEDs, buzzer, LCD...\n\n![Gameplay](./media/gameplay.gif)\n\n## Gameplay\n\nThe player can horizontally move a paddle through the potentiometer available on the LandTiger board.\n\nThe ball can bounce on red walls (5px thick) on the left, upper, and right portions of the display.\n\nWhenever the ball hits a wall the buzzer emits a lower pitched note, a higher pitch note is played when it hits the paddle.\n\nThe user can start the game by pressing the button KEY1.\nTo pause the game and resume it later, the user should press the button KEY2.\nIn case of game-over the player should press the INT0 button to prepare a new game, followed by KEY1 to start it.\n\n### v1\n\nSingle player version.\nEvery time the ball hits the paddle, the score is incremented. The score is printed on\nthe left side of the screen, and it's saved in between games, the new record is displayed in the top right corner. The initial record to beat is 100 points.\nIf the ball falls below the paddle, the message “You lose” is displayed.\n\n### v2\n\nMulti-player version.\nThe top wall is replaced by a top paddle driven by the CPU.\nThis second paddle is fully automatic and, when the play starts, it only moves horizontally at a constant speed.\n\nEvery time the ball falls below one's paddle, the other player’s score is incremented by 1.\nThe game ends as soon as one player scores 5 points, with the message “You win” or “You lose” displayed on\nthe screen for both players.\nThe score is printed on the left side of the screen for the first player and on the right side for the second player.\n\n## LandTiger specifications\n\nLPC1768 MCU Cortex-M3 core:\n\n- Clock frequency up to 100MHz.\n- Built-in Nested Vectored Interrupt Controller (NVIC).\n- 512KB on-chip Flash program memory.\n- Single 3.3V power supply (2.4V - 3.6V).\n- 2 CAN bus communication interfaces.\n- DAC output interface, on-board speaker and speaker output driver (LM386).\n- ADC input interface, on-board adjustable potentiometer input.\n- Color LCD display interface (supports 2.8-inch or 3.2-inch color TFT 320X240).\n- 2 user keys, 2 function keys (INT0 and Reset button).\n- 8 LED lights (Digital outputs).\n- Five-way joystick button (Digital Inputs).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertobaroso%2Fcomputer-architectures-pong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbertobaroso%2Fcomputer-architectures-pong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertobaroso%2Fcomputer-architectures-pong/lists"}