fn place_next_marble(&mut self) -> Score {
        let marble_to_be_placed = self.last_marble_placed + 1;
        let score = if marble_to_be_placed % 23 == 0 {
            let removed_marble_index = {
                let removed_marble_index = self.active_marble_index as i64 - 7;
                if removed_marble_index < 0 { self.circle.len() as i64 + removed_marble_index }
                    else { removed_marble_index }
            } as usize;
            let removed_marble = self.circle.remove(removed_marble_index);

            self.active_marble_index = removed_marble_index;

            marble_to_be_placed + removed_marble
        } else {
            let next_marble_index = {
                let next_marble_index = self.active_marble_index + 2;
                if next_marble_index > self.circle.len() {
                    next_marble_index - self.circle.len()
                } else {
                    next_marble_index
                }
            };
            self.circle.insert(next_marble_index, marble_to_be_placed);
            self.active_marble_index = next_marble_index;

            0
        };

        self.last_marble_placed = marble_to_be_placed;

        score
    }
/// returns the points scored on that turn
returns the points scored on that turn
returns the points scored on that turn
fn place_next_marble(&mut self) -> Score {
        let marble_to_be_placed = self.last_marble_placed + 1;
        let score = if marble_to_be_placed % 23 == 0 {
            let removed_marble_index = {
                let removed_marble_index = self.active_marble_index as i64 - 7;
                if removed_marble_index < 0 { self.circle.len() as i64 + removed_marble_index }
                    else { removed_marble_index }
            } as usize;
            let removed_marble = self.circle.remove(removed_marble_index);
            self.active_marble_index = removed_marble_index;
            marble_to_be_placed + removed_marble
        } else {
            let next_marble_index = {
                let next_marble_index = self.active_marble_index + 2;
                if next_marble_index > self.circle.len() {
                    next_marble_index - self.circle.len()
                } else {
                    next_marble_index
                }
            };
            self.circle.insert(next_marble_index, marble_to_be_placed);
            self.active_marble_index = next_marble_index;
            0
        };
        self.last_marble_placed = marble_to_be_placed;
        score
    }
fn place_next_marble ( & mut self ) -> Score { let marble_to_be_placed = self . last_marble_placed + 1 ; let score = if marble_to_be_placed % 23 == 0 { let removed_marble_index = { let removed_marble_index = self . active_marble_index as i64 - 7 ; if removed_marble_index < 0 { self . circle . len ( ) as i64 + removed_marble_index } else { removed_marble_index } } as usize ; let removed_marble = self . circle . remove ( removed_marble_index ) ; self . active_marble_index = removed_marble_index ; marble_to_be_placed + removed_marble } else { let next_marble_index = { let next_marble_index = self . active_marble_index + 2 ; if next_marble_index > self . circle . len ( ) { next_marble_index - self . circle . len ( ) } else { next_marble_index } } ; self . circle . insert ( next_marble_index , marble_to_be_placed ) ; self . active_marble_index = next_marble_index ; 0 } ; self . last_marble_placed = marble_to_be_placed ; score }
returns the points scored on that turn
returns the points scored on that turn
&mut self
&mut self