// e - magenta winning piece
// f - cyan placed
// g - magenta placed
+ // h - cyan winning and placed piece
+ // i - magenta winning and placed piece
}
```
match c {
'a' => board[idx].replace(BoardState::Empty),
'b' | 'f' => board[idx].replace(BoardState::Cyan),
- 'd' => board[idx].replace(BoardState::CyanWin),
+ 'd' | 'h' => board[idx].replace(BoardState::CyanWin),
'c' | 'g' => board[idx].replace(BoardState::Magenta),
- 'e' => board[idx].replace(BoardState::MagentaWin),
+ 'e' | 'i' => board[idx].replace(BoardState::MagentaWin),
_ => BoardState::Empty,
};
}
}
BoardState::Cyan | BoardState::CyanWin => {
if win_set.contains(&idx) {
- 'd'
+ if idx == placed {
+ 'h'
+ } else {
+ 'd'
+ }
} else if idx == placed {
'f'
} else {
}
BoardState::Magenta | BoardState::MagentaWin => {
if win_set.contains(&idx) {
- 'e'
+ if idx == placed {
+ 'i'
+ } else {
+ 'e'
+ }
} else if idx == placed {
'g'
} else {
.chars()
.nth(idx)
.expect("idx into board_string should be in range");
- if char_at_idx == 'f' {
- element_append_class(&document, &format!("slot{}", idx), "placed").ok();
+ if char_at_idx == 'f' || char_at_idx == 'h' {
+ if char_at_idx == 'f' {
+ element_append_class(&document, &format!("slot{}", idx), "placed").ok();
+ }
if was_open {
append_to_info_text(
&document,
)
.ok();
}
- } else if char_at_idx == 'g' {
- element_append_class(&document, &format!("slot{}", idx), "placed").ok();
+ } else if char_at_idx == 'g' || char_at_idx == 'i' {
+ if char_at_idx == 'g' {
+ element_append_class(&document, &format!("slot{}", idx), "placed").ok();
+ }
if was_open {
append_to_info_text(
&document,