Coder Social home page Coder Social logo

bomberman's Introduction

Bomberman

A clone of the classic mazed based arcade game, Bomberman, originally released in 1983 by Hudson Soft. Written in ARM Assembly. Tested and developed on the NXP LPC2138 with ARM7TDMI-S CPU.

	    Bomberman
Time:120       Score:0000
ZZZZZZZZZZZZZZZZZZZZZZZZZ
ZB                     xZ
Z Z Z Z Z Z Z Z Z Z Z Z Z
Z                       Z
Z Z Z Z Z Z Z Z Z Z Z Z Z
Z                       Z
Z Z Z Z Z Z Z Z Z Z Z Z Z
Z                       Z
Z Z Z Z Z Z Z Z Z Z Z Z Z
Z                       Z
Z Z Z Z Z Z Z Z Z Z Z Z Z
Zx                     +Z
ZZZZZZZZZZZZZZZZZZZZZZZZZ

The objective of the game is to score as many points as possible without running out of lives within the 120 second time limit of the game. Points are scored by:

  • Killing an enemy (‘x’ or ‘+’) with a bomb (+10 points * current level)
  • Destroying a brick wall (‘#’) with a bomb (+1 point * current level)
  • Completing a level by killing all of the enemies (+100 points)
  • Finishing the game without dying within the 120 second time limit (+25 points for each life remaining)

Bomberman initially has 4 lives. Once all the lives are lost, the game ends, so try not to lose them all! Additionally, as each level is completed the next one becomes faster with more brick walls, which makes scoring points and evading enemies much more difficult.

The game can also be paused and subsequently resumed at any time by pressing the external interrupt button on the LPC2138.

As a placed bomb detonates, game state changes, or a life is lost, the GPIO peripherals attached to the LPC2138 will change in order to provide a retroactive and old school arcade like gameplay experience. This includes the RGB LED blinking for an additional detonation effect, and changing colors when the game state changes (active, non-active, paused, game over, etc.) The LED array also indicates how many lives Bomberman has left.

Happy Bombing!

bomberman's People

Contributors

hextechdarkling avatar

Watchers

 avatar

bomberman's Issues

Re-initialize game

The game variables will need to be reinitialized once a user reaches the game over screen and chooses to play again.

Sticky 'B'

Steps to reproduce:

  1. Place bomb and note it's x-y position
  2. Let it detonate
  3. Walk over to the x-y position of the previously placed bomb

TODO: Game Over Screen

The game over screen should display the user score and instructions as to what key to press in order to play again.

Additionally, 25 points are awarded for each life remaining if the timer expires to zero and causes the game to end.

TODO: Add a second match interrupt to timer 0.

It would be nice to have another timer that fires every 0.5s. The purpose of this new timer would be to increment the bomb timer every 0.5s no matter how fast bomberman moves.

I was looking through some demos and as the game (bomberman) gets faster, the bomb detonation time still remains the same.

Fast enemy freezing

When you kill the enemy in the top right first, the fast enemy ('*') stops moving?

TODO: Implement bomb detonation.

As of right now the bomb can be placed, but it never detonates.

It needs to detonate after a pre-determined amount of time, and clear only brick walls, enemies, or bomberman himself.

Timer interrupt for game time

The game lasts a total duration of 120s. We will need a timer that interrupts every second and decrements the game time.

Once the timer reaches zero, the game ends.

TODO: Hardware peripherals

The hardware peripherals should display the status of the game. The push button should also pause the game.

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.