やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Rust自習(じゃんけんゲーム6)

 Handrandom()Distributionトレイトで実装した。

成果物

参考

コード

//use rand::Rng;
use rand::{distributions::{Distribution, Standard},Rng};
fn main() {
    loop {
        // ...
//        let npc = Hand::Rock.random();
        let npc: Hand = rand.random();
        // ...
    }
}
impl Distribution<Hand> for Standard {
    fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Hand {
        Hand::from(rng.gen_range(1, 4))
    }
}
impl Hand {
    /*
    fn random() -> Hand {
        let mut rng = rand::thread_rng();
        let hand = rng.gen_range(1, 4);
        Hand::from(hand)
    }
    */
    // ...
}

所感

 ほとんどトレイトで実装できた。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux

前回まで