3D labyrinth game written for university project in mbed's environment for N5110 display and generic joystick. Contains porting to terminal display, for use on *NIX and Windows systems.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
Ensar Sarajčić 8da95d97c9
Create README.md for ncurses implementation
5 years ago
3D Labyrinth Console Create README.md for Windows CMD implementation 5 years ago
ncurses-implementation Create README.md for ncurses implementation 5 years ago
.gitignore Clean up and add gitignore 5 years ago
.hg_archival.txt Import original code from mbed repo 5 years ago
LICENSE Create LICENSE 5 years ago
N5110.lib Import original code from mbed repo 5 years ago
README.md Add a simple ncurses implementation of the display 5 years ago
main.cpp Import original code from mbed repo 5 years ago
mbed.bld Import original code from mbed repo 5 years ago

README.md

3D Labyrinth game for embedded system

Introduction

3D labyrinth game written for university project.
Originally built on mbed compiler with my colleague Dino Dizdarević. (Link to original mbed repository)
Game used Nokia 5110 LCD display and generic joystick for controls.
Check out the demo video: https://www.youtube.com/watch?v=8I6GM97ciso

Requirements

Originally compiled for LPC1114FN28 platform, but it should be runnable on anything that can support the LCD display and generic joystick (with minor code modifications due to pins being hardcoded). Besides the platform, only Nokia 5110 LCD display and generic joystick is required.

Pin setup

The following image shows the pins of used platform. LPC1114FN28 pins

Used pins:

  • dp1 used as digital input - used as a switch to start playing the game
  • dp10 and dp11 used as analog inputs for joystick, dp10 for y axis and dp11 for x axis
  • dp4, dp24, dp23, dp25, dp2, dp6, dp18 used for Nokiad 5110 LCD (in this order)

Controls

For all controls, only joystick is used and the switch included on platform (if it is not, it should be used connected to a digital input pin). Before switching the game on, simple looping animation is displayed, switching between different images that are used to draw all possible combinations of visible walls in the game. Once the switch is pressed the game starts. To move forward, simply move the joystick up. Holding it up will cause that action to repeat. Walking into walls will just return the player to the same position. Moving joystick left and right will make the player turn in place. Moving joystick down opens up the map, which will display player as an arrow.

Code blocks explanation

Before explaining the code, I know there are many things that should have been done differently and there are many bad coding practices, but I wanted to leave the code in its original state. At that point we were satisfied with it just working.

TODO - Cleaning up the repository

  • Upload to GitHub from mbed
  • Add windows console adaptation
  • Add unix console adaptation
  • Translate parts of code not written in english
  • Add a more detailed documentation with images
  • Explain codes of block