GithubHelp home page GithubHelp logo

j-jacobson / jpong Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 81 KB

Digital Ping Pong implementation

License: GNU General Public License v3.0

VHDL 90.72% SystemVerilog 3.23% Makefile 4.20% Stata 1.84%
classic-game game ping pong

jpong's People

Contributors

j-jacobson avatar

Stargazers

 avatar

Watchers

 avatar

jpong's Issues

Clean up game logic file

It is cluttered. See if any of the if statements overlap and remove them for efficiency.
Add more comments to make it easily understandable.

Make Makefile more reusable

It is pretty good, but it can be better. Preferably make one that can be copied into the project from jacobson_ip with only the name of the DUT will needing to be modifed. This will allow rapid bring-up of other projects.

Get the ball rolling (Implement Ball Logic)

Make it so the ball moves.
Ball should always start by heading towards one of the paddles (should be the loser? Look up the rules). It should begin when a button is pushed (center button for now.)
Every time it hits a paddle the speed should increase slightly. Every time it hits a wall it should slow down slightly.
Ball should reset position once it hits x=0 or x=h_Size.

Add controller logic for an encoder-based controller.

I want to have an encoder that I can spin and make the paddle move. I believe this was how the original controller worked.
Would likely be a variable resistor without a stop (so it spins continuously). An encoder would work as well but those are more expensive .. create a pros cons list and decide which is best. Then add functionality.

Variable ball speed

Make the ball speed up and slow down based on when it hits the walls and paddles

Make the ball bounce

Ball should bounce when it hits a wall or a paddle, nothing else.
When it hits the x bounds, it should reset. See #14

Shorten this by making the if statement based on the segment

elsif(int = 1) then

Instead of going through all 10 numbers and listing out the segments needed, go through each segment and list out the numbers that require it to be off.

Instead of:

if(num = 0){
seg(1) = off;
seg(2) = off;
seg(N-1) = off;}

Do:

if(num = 0 or num = 1 or num = 2){
seg 0 = off;}
if (num = 0 or num = 5 or num = 3){
seg 1 = off;}

etc.

You'll have max 7 if statements, and only a signal line under each! They just might be long if statements with lots of 'or's.

Show score on 7segment display

Write a(nother) 7 segment display driver, this time for the on-board 7 segment.
Should be easier than the pixel art one, LOL.

Implement Sound

Implement a sound driver.
I want a note played when the ball hits a paddle, a different note when it hits a wall, and a third note when it hits out-of-bounds.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.