A hobby project for console games. New games are coming, hopefully 🙂🙂🙂. And I'm open for contributions.
```rust use consolegames::gamecenter::GameCenter;
fn main() { GameCenter::enter(); }
```
List of available games:
```rust use consolegames::{games::guessthe_word::GuessTheWord, Play};
fn main() { println!("{}", GuessTheWord.name()); GuessTheWord.print_intro(); GuessTheWord.start(); } ```
I need your help!!! Let's grow this project together. If you have any ideas, wether it's a new game, performance improvements, etc, please open an issue or a pull request.
A game must implement the Play
trait.
```rust // games/my_game.rs
pub struct MyGame;
impl Play for MyGame { fn name(&self) -> &'static str { "My Game" }
fn start(&mut self) {
println!("Starting my game");
}
} ```
Lastly, make the game visible in the module tree.
```rust // games.rs
// --- snip --- pub mod my_game; ```
Add the game to the return value of GameCenter::games
method.
```rust // game_center.rs
// --- snip ---
impl GameCenter { // --- snip ---
pub fn games() -> [Box<dyn Play>; 4 /* <-- change this number */] {
[
Box::new(guess_the_word::GuessTheWord),
Box::new(guess_the_number::GuessTheNumber),
Box::new(word_type::WordType),
Box::new(my_game::MyGame), // <-- add this line
]
}
// --- snip ---
} ```