fix game end bits

This commit is contained in:
ntr 2019-09-09 13:50:12 +10:00
parent 81a02421dd
commit aa6272c77d
6 changed files with 13 additions and 9 deletions

View File

@ -43,8 +43,8 @@ pub fn invader_write(id: Uuid) -> Result<Uuid, Error> {
let mut colours = std::iter
::repeat_with(|| {
let h = rng.gen_range(0, 360);
let s = s_dist.sample(&mut rng) as u16;
let l = l_dist.sample(&mut rng) as u16;
let s = s_dist.sample(&mut rng) as usize;
let l = l_dist.sample(&mut rng) as usize;
format!("hsl({:}, {:}%, {:}%)", h, s, l)
})
.take(3)
@ -201,7 +201,7 @@ mod tests {
// - let actions = mode_drops(mode);
// + let log_normal = LogNormal::new(1.0, 1.0);
// + let num_drops = log_normal.sample(&mut rng).floor() as u16;
// + let num_drops = log_normal.sample(&mut rng).floor() as usize;
// +
// + println!("{:?} drops", num_drops);

View File

@ -403,6 +403,8 @@ impl Instance {
None => return Ok(self.finish()),
};
let bits = 12 + 6 * self.rounds.len();
{
let loser = self.players.iter()
.find(|p| p.id != winner_id)
@ -414,6 +416,7 @@ impl Instance {
.unwrap();
winner.score = winner.score.add_win(&loser);
winner.vbox.balance_add(bits.into());
}
{
@ -422,6 +425,7 @@ impl Instance {
.unwrap();
loser.score = loser.score.add_loss();
loser.vbox.balance_add(bits.into());
}
if self.all_games_finished() {

View File

@ -306,7 +306,7 @@ impl Item {
}
}
pub fn cost(&self) -> u16 {
pub fn cost(&self) -> usize {
match self {
Item::Red => 1,
Item::Green => 1,

View File

@ -36,7 +36,7 @@ pub struct Shop {
#[derive(Debug,Copy,Clone,PartialEq,Serialize,Deserialize)]
pub struct Listing {
variant: MtxVariant,
credits: u16,
credits: usize,
}
#[derive(Debug,Copy,Clone,PartialEq,Serialize,Deserialize)]

View File

@ -12,7 +12,7 @@ use vbox::{Vbox};
use item::{Item, ItemEffect};
use effect::{Effect};
const DISCARD_COST: u16 = 2;
const DISCARD_COST: usize = 2;
#[derive(Debug,Copy,Clone,Serialize,Deserialize,Eq,PartialEq)]
pub enum Score {

View File

@ -21,7 +21,7 @@ use item::*;
#[derive(Debug,Clone,Serialize,Deserialize)]
pub struct Vbox {
pub bits: u16,
pub bits: usize,
pub free: Vec<Vec<Option<Item>>>,
pub bound: Vec<Item>,
}
@ -47,7 +47,7 @@ impl Vbox {
}
}
pub fn balance_sub(&mut self, amount: u16) -> Result<&mut Vbox, Error> {
pub fn balance_sub(&mut self, amount: usize) -> Result<&mut Vbox, Error> {
let new_balance = self.bits
.checked_sub(amount)
.ok_or(format_err!("insufficient balance: {:?}", self.bits))?;
@ -57,7 +57,7 @@ impl Vbox {
Ok(self)
}
pub fn balance_add(&mut self, amount: u16) -> &mut Vbox {
pub fn balance_add(&mut self, amount: usize) -> &mut Vbox {
self.bits = self.bits.saturating_add(amount);
self
}