Skip to content

CatchAlphabets is a game for the Intel 8088, where players use a bucket to catch falling alphabets. The game ends after 10 misses, displays the score, and transitions to scrolling credits. It features custom functions, adjustable speeds, and interrupt-driven input.

Notifications You must be signed in to change notification settings

Rebelhere/Alphabet-catcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

CatchAlphabets Game - Computer Organization and Assembly Language (COAL)

Project Description

CatchAlphabets is an interactive game developed for the Intel 8088 microprocessor, showcasing low-level assembly language programming skills. The game runs on DOSBox with NASM, allowing players to control a bucket and catch falling alphabets to score points while avoiding penalties. It features a main menu, dynamic gameplay, increasing difficulty over time, and creative endgame elements, making it an excellent demonstration of interrupt handling, custom functions, and real-time user interaction.


Features

Core Gameplay:

  1. Main Menu:

    • At launch, a main page is displayed prompting the user to:
      • Press any key (except Esc) to start the game.
      • Pressing Esc displays the credits and exits the program.
  2. Bucket Mechanics:

    • A bucket (ASCII value 0xDC) is displayed at the bottom-middle of the screen when the game starts.
    • The bucket can be moved using the arrow keys:
      • Left Arrow (0x4B): Move the bucket left.
      • Right Arrow (0x4D): Move the bucket right.
  3. Falling Alphabets:

    • Alphabets (A-Z) appear at random positions in the top row and fall toward the bucket.
    • At least 5 alphabets fall simultaneously at varying speeds.
    • The speed of falling alphabets automatically increases at 10 seconds and again at 20 seconds, tracked using the INT 8h hardware interrupt.
  4. Scoring System:

    • Catching an alphabet adds 1 point to the score.
    • The score is displayed in the top-right corner of the screen.
  5. Game Over Condition:

    • Missing 10 alphabets ends the game.
    • The player's final score and total time played are displayed in the middle of the screen for a few seconds before transitioning to the credits.
  6. Credits Scroll:

    • After displaying the final score and time or pressing Esc at the main menu, a scrolling credits screen plays to conclude the game.

How to Run

  1. Install DOSBox and NASM.
  2. Place the CatchAlphabets.asm file in your working directory.
  3. Assemble the game for the 8088:
    nasm -f bin CatchAlphabets.asm -o CatchAlphabets.com
    
  4. Run the game in DOSBox:
    CatchAlphabets.com
    

Gameplay Instructions

  1. Main Menu:

    • Press any key (except Esc) to start the game.
    • Press Esc to display the credits and exit.
  2. Move the Bucket:

    • Use the left arrow key (0x4B) to move the bucket left.
    • Use the right arrow key (0x4D) to move the bucket right.
  3. Catch Alphabets:

    • Align the bucket with falling alphabets to catch them and score points.
  4. Avoid Misses:

    • The game ends if 10 alphabets are missed.
  5. Time-Based Difficulty:

    • The speed of falling alphabets increases at 20 seconds and 40 seconds, adding to the challenge.

Code Features

  • Custom Random Function:
    Generates random positions and speeds for falling alphabets.
  • Real-Time Input:
    Hooks into INT 9h for responsive keyboard controls.
  • Time Tracking:
    Uses INT 8h hardware interrupt to track elapsed time and dynamically adjust difficulty.
  • Adjustable Speed:
    Falling speeds increase automatically based on time, adding progressive difficulty.
  • Score and Time Display:
    At the end of the game, the final score and total time played are shown in the middle of the screen.
  • Main Menu and Credits:
    A main menu prompts the user to start or quit. A scrolling credits screen concludes the game.

Future Enhancements

  1. Bomb Mechanic:

    • Add bombs that fall alongside alphabets.
    • If the bucket catches a bomb, the player experiences an instant game over.
  2. Power-Ups:

    • Introduce special alphabets that grant bonuses, such as:
      • Double points.
      • Temporarily slowing down falling items.
  3. Sound Effects:

    • Add audio cues for catching alphabets, missing them, and the game over.

Credits

  • Developer: Muhammad Rahim (Rebelhere)
  • Special Thanks: Ayesha Younus

CatchAlphabets - A nostalgic and exciting gaming experience on the Intel 8088!


Contributing

Feel free to open issues or submit pull requests for improvements or bug fixes.


Collaboration Guidelines

We welcome contributions from the open-source community. If you'd like to collaborate on this project, please adhere to the following guidelines:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Implement your changes and commit them with descriptive messages.
  4. Push your branch to your fork and submit a pull request.

Feel free to reach out if you have any questions or suggestions !


CatchAlphabets: Relive the thrill of coding and gaming in the 8088 era!

About

CatchAlphabets is a game for the Intel 8088, where players use a bucket to catch falling alphabets. The game ends after 10 misses, displays the score, and transitions to scrolling credits. It features custom functions, adjustable speeds, and interrupt-driven input.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published