Skip to content

henry334/Arcade-Epitech

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arcade

Arcade is a versatile gaming platform made in C++ where users can choose from a variety of games and keep track of player scores. It is designed to support dynamic libraries for both graphics and games, allowing for seamless integration of new features and enhancements.

Project Overview

Arcade follows strict guidelines for the implementation of dynamic libraries. It leverages the dlopen, dlclose, dlsym, and dlerror functions from the libdl C library to manage dynamic libraries at runtime. Additionally, special compilation flags, such as -fno-gnu-unique, are utilized to ensure proper unloading of libraries.

Graphics Libraries

Arcade supports multiple graphics libraries, including:

  • nCurses (arcade_ncurses.so)
  • SDL2 (arcade_sdl2.so)
  • SFML (arcade_sfml.so)

Games Libraries

Arcade offers a selection of games libraries, including:

  • Snake (arcade_snake.so)
  • Nibbler (arcade_nibbler.so)
  • SolarFox (arcade_solarfox.so)

Usage

To use Arcade, follow these steps:

  1. Install SDL2, SFML & Ncurses
  2. Compile the Arcade program and its dynamic libraries with make.
  3. Start the Arcade program by specifying the graphics library to use initially:
    ./arcade [lib]
    Replace [lib] with the desired graphics library (e.g., arcade_ncurses.so).
  4. Upon starting, the program will display the available game and graphics libraries, along with scores and a field for users to enter their names.
  5. Use the following commands while running the program:
    • p: Go back
    • x: Exit the program or the username box
    • g: Change the game to the next one
    • i: Change the graphical library to the next one
  6. Use the -h or --help flag to display usage information

SolarFox made by gredzy

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published