Ver código fonte

Bugfix: dog exchange strategy

Denis Merigoux 9 anos atrás
pai
commit
2c4845acc5
1 arquivos alterados com 5 adições e 5 exclusões
  1. 5 5
      src/ai.rs

+ 5 - 5
src/ai.rs

@@ -7,7 +7,7 @@ pub fn auctions(players: &Vec<game::Player>) -> i32 {
7 7
     let potentials: Vec<(i32, i32)> = players.iter()
8 8
         .map(|ref player| (player.id, evaluate_hand_potential(&player.hand)))
9 9
         .collect();
10
-    let &(taker_id, _) = match potentials.iter().max_by_key(|&&(id, _)| id) {
10
+    let &(taker_id, _) = match potentials.iter().max_by_key(|&&(_, potential)| potential) {
11 11
         None => panic!("no players"),
12 12
         Some(x) => x,
13 13
     };
@@ -33,15 +33,15 @@ pub fn exchange_dog(mut players: &mut Vec<game::Player>,
33 33
         .iter()
34 34
         .fold((), |_, &card| {
35 35
             let to_exchange = match card {
36
-                card::Card::Trump(_) => true,
36
+                card::Card::Trump(_) => false,
37 37
                 card::Card::Face(card::Face { suit: _, symbol }) => {
38 38
                     match symbol {
39 39
                         card::Symbol::Jack | card::Symbol::Knight | card::Symbol::Queen |
40
-                        card::Symbol::King => true,
41
-                        _ => false,
40
+                        card::Symbol::King => false,
41
+                        _ => true,
42 42
                     }
43 43
                 }
44
-                card::Card::Fool => true,
44
+                card::Card::Fool => false,
45 45
             };
46 46
             if to_exchange {
47 47
                 // Performs the exchange