Compare commits

...

2 Commits

Author SHA1 Message Date
davidrobert99 b9ea1cbe2e update borrow_box 2 years ago
davidrobert99 44075283eb update borrow_box 2 years ago
  1. 18
      subjects/borrow_box/README.md

18
subjects/borrow_box/README.md

@ -4,31 +4,31 @@
Game time.
You will implement some **CRUD** functionality for a game. You will need to implement the `Game` structure with the following associated functions:
You will implement some **CRUD** functionality for a game session. You will need to implement the `GameSession` structure with the following associated functions:
- `new`: which initializes a game state with player names and some other information. This function returns the structure wrapped in a `Box`.
- `new`: which initializes a game session state with player names and some other information. This function returns the structure wrapped in a `Box`.
- `read_winner`: which returns a tuple with the name and score of the player who is currently winning. In the case that no player is winning, it should return the same tuple with the string `"Same score! tied"` and the tied score.
- `update_score`: which receives the name of a player, and increments their score. The `nbr_of_games` should also be incremented. This function should **do nothing** if the the game is already finished.
- `update_score`: which receives the name of a player, and increments their score. The `nbr_of_games` should also be incremented. This function should **do nothing** if the the game session is already finished.
- `delete`: which takes ownership of the boxed game and returns a string: `"game deleted: id -> 0"`.
- `delete`: which takes ownership of the boxed game session and returns a string: `"game deleted: id -> 0"`.
> If `nbr_of_games` is 5, then it is "best out of 5", and no more than 5 games can be played. If some player has a score of 3, then the game is also finished. This is because there is an insufficient number of remaining games for the trailing player to catch up.
> If `nbr_of_games` is 5, then it is "best out of 5", and no more than 5 games can be played. If some player has a score of 3, then the game session is also finished. This is because there is an insufficient number of remaining games for the trailing player to catch up.
### Expected Functions
```rust
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Game {
pub struct GameSession {
pub id: u32,
pub p1: (String, u16),
pub p2: (String, u16),
pub nbr_of_games: u16
}
impl Game {
pub fn new(i: u32, pl1: String, pl2: String, n: u16) -> Box<Game> {
impl GameSession {
pub fn new(i: u32, pl1: String, pl2: String, n: u16) -> Box<GameSession> {
}
pub fn read_winner(&self) -> (String, u16) {
@ -51,7 +51,7 @@ Here is a program to test your functions,
use borrow_box::*;
fn main() {
let mut game = Game::new(0, String::from("Joao"), String::from("Susana"), 5);
let mut game = GameSession::new(0, String::from("Joao"), String::from("Susana"), 5);
println!("{:?}", game.read_winner());
// output : ("Same score! tied", 0)

Loading…
Cancel
Save