やってみる

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

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

 Handjadge()メソッドにあった無駄な引数を減らした。

成果物

コード

 無駄な引数を削除した。

fn main() {
    loop {
        // ...
//        let res = Hand::Rock.jadge(player, npc);
        let res = player.jadge(npc);
        // ...
    }
}
impl Hand {
    /*
    fn jadge(&self, pc: Hand, npc: Hand) -> crate::Result {
        if pc == Hand::Rock && npc == Hand::Scissors { crate::Result::Win }
        else if pc == Hand::Rock && npc == Hand::Paper { crate::Result::Lose }
        else if pc == Hand::Scissors && npc == Hand::Rock { crate::Result::Lose }
        else if pc == Hand::Scissors && npc == Hand::Paper { crate::Result::Win }
        else if pc == Hand::Paper && npc == Hand::Rock { crate::Result::Win }
        else if pc == Hand::Paper && npc == Hand::Scissors { crate::Result::Lose }
        else { crate::Result::Draw }
    }
    */
    fn jadge(&self, opponent: Hand) -> crate::Result {
        if *self == Hand::Rock && opponent == Hand::Scissors { crate::Result::Win }
        else if *self == Hand::Rock && opponent == Hand::Paper { crate::Result::Lose }
        else if *self == Hand::Scissors && opponent == Hand::Rock { crate::Result::Lose }
        else if *self == Hand::Scissors && opponent == Hand::Paper { crate::Result::Win }
        else if *self == Hand::Paper && opponent == Hand::Rock { crate::Result::Win }
        else if *self == Hand::Paper && opponent == Hand::Scissors { crate::Result::Lose }
        else { crate::Result::Draw }
    }
}

対象環境

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

前回まで