Skip to content

Open Software Project for DE1-SoC board written in C code for ARM.

Notifications You must be signed in to change notification settings

nicholas3d2/ARM-tower-defense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ARM-tower-defense

Open Software Project for DE1-SoC board, developed for/using CPUlator's ARMv7 DE1-SoC.

Copyright (C) 2021 Nicholas Ishankov, Jintao Huang, all rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1.0 Description

Tower Defense is a type of strategy game where the goal is to stop the enemies from reaching the end of the path. The user places towers that shoot at enemies once they are in range to get points. The user spends points to place more towers. The game has three waves, each getting harder.

2.0 Instructions

2.1 How to run

Load file (main.c) into CPULATOR, change language to C, compile and run. Click KEY3 to start the game

2.2 Controls

LEDR: Health bar. Users start off with 10 health. Losses one health for each enemy that reaches the end

KEYS: User Controls.

KEY0= Place Light Tower ( cost 25 points )

KEY1= Place Medium Tower ( cost 50 points )

KEY2= Place Heavy Tower ( cost 100 points )

KEY3= Start / Pause

7 Seg-Display: Displays the number of points for the user, they start with 75.

JTAG UART: Moves the cursor (user grid square) around on the display screen. Hovering over a tower shows its range.

w - up

s - down

a - left

d - right

VGA: Displays the game

Interval Timer: Controls the tower fire rates and enemy spawn rates. Each wave contains 15 enemies.

2.3 Game

Towers:

Light Tower: costs 25, light damage, low range, high fire rate

Medium Tower: costs 50, medium damage, medium range, medium fire rate

Heavy Tower: costs 100, high damage, high range, low fire rate

Enemies:

Light Enemies: 5 points, light health, fast speed

Medium Enemies: 15 points, medium health, fast speed

Heavy Enemies: 25 points, high health, slow speed

Waves:

Wave 1: Random enemies spawn, 15 in total

Wave 2: Heavy enemies only, 15 in total

Wave 3: Heavy enemies only with double health, 15 in total. Game ends after this wave

About

Open Software Project for DE1-SoC board written in C code for ARM.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages