Implementation of the retro video game "Space Invaders" in the Jack programming language, using the Nand to Tetris software for the Computer Organization course taught by Professor Edison Valencia at EAFIT University.
- 📖 Introduction
- ✨ Features
- ⚙️ Installation
- 🎮 Usage
- 🛠️ Classes and Methods
- 🎯 Game Controls
- 🏆 Game Objective
- 🎥 YouTube Video
- 👥 Contributors
This project is a modern take on the classic "Space Invaders" arcade game, developed in the Jack programming language as part of the Nand to Tetris curriculum. The game was created for the Computer Organization course at EAFIT University, under the guidance of Professor Edison Valencia.
- Classic Arcade Experience: A faithful recreation of the beloved arcade game.
- Advanced Shooting Mechanics: Sophisticated handling of player and alien shots.
- Smooth Gameplay: Efficient management of game elements for an uninterrupted experience.
To run this project, you will need to have the Nand to Tetris software installed on your machine. Follow these steps to get started:
- Clone the repository:
git clone https://github.com/linasofi13/space-invaders-jack.git cd space-invaders-jack
Welcome to the Space Invaders game implemented in the Jack programming language, using the Nand to Tetris software for the Computer Organization course taught by Professor Edison Valencia at EAFIT University.
After installing and setting up the project, you can play the game by following these steps:
- Launch the Nand to Tetris software.
- Load the project files.
- Start the game and use the controls to play.
Manages the attributes and behaviors of an alien.
- Constructor:
Alien new(int posX, int posY, int index) - Methods:
dispose,draw,erase,getIndex,getX,getY,getDirection,changeDirection,movement,createShoot,getShoot
Manages the game state and interactions.
- Constructor:
JuegoNave new() - Methods:
generateAliens,dispose,shootPathPlayer,shootPathAlien,playerWin,playerLoose,printPoints,printLives,naveCollision,run
Manages a list of aliens.
- Constructor:
LinkedList new() - Methods:
firstAlien,add,moverAlien,removeSpecificAlien,shootColisionAlien,getNextAlien
Entry point for the game.
- Function:
void main()
Manages the player’s ship.
- Constructor:
Nave new() - Methods:
dispose,getX,getY,draw,erase,movement,createShoot,getShoot
Manages individual nodes for the linked list.
- Constructor:
Node new(Alien newAlien) - Methods:
dispose,getAlien,getIndex,setNext,getNext
Manages the bullets shot by the player and aliens.
- Constructor:
Shoot new(int posX, int PosY) - Methods:
dispose,draw,erase,getX,getY,shoot
- ⬅️ Left Arrow Key: Move left
- ➡️ Right Arrow Key: Move right
- 🔫 Space Bar: Shoot
- ❌ Q Key: Quit the game
- Winning: The player wins the game by scoring 25 points, which means all aliens have been destroyed. A winning screen will be displayed.
- Losing: The player loses the game when their lives reach 0. A losing screen will be displayed.
Watch the video showcasing the game on YouTube: Space Invaders in Jack.
This project was developed by:
- Mauricio Carrillo
- Lina Ballesteros
- Valentina Giraldo