Commit graph

89 commits

Author SHA1 Message Date
d8377d280a Tweaks to AI for correctness 2022-03-10 16:39:26 +09:00
89a12623b4 Incorporate game AI into game
Can select from three difficulties, and the AI makes their move when it
is their turn. AI probably still needs some tweaking..
2022-03-10 16:17:16 +09:00
e35870b240 Impl placed token indicator, fixes/refactorings 2022-03-10 15:43:03 +09:00
a597b4217a Update front_end/README.md about website 2022-03-09 19:45:11 +09:00
0d3d6b2a8d Fix typo 2022-03-09 19:29:00 +09:00
7e9718a743 Refactorings and linter fixes 2022-03-09 18:14:01 +09:00
76e6d3be52 Impl buttons indicator that won the game 2022-03-09 18:10:13 +09:00
b902b1c7b4 Impl use of win/draw check, fixes
Also added unit tests for win/draw checks.
2022-03-09 17:29:53 +09:00
9e9bb0758c Fix rand not compilable for wasm, impl game logic
"rand" crate was not compilable for wasm-unknown-unknown target, so an
alternative "oorandom" crate was substituted in.

Basic game win/draw detection logic added.
2022-03-09 16:26:14 +09:00
21041132c6 Minor fixes/tweaks to Utility AI 2022-03-07 19:50:43 +09:00
14d224734f Minor fix to Utility AI code 2022-03-07 17:07:00 +09:00
ec9aac8400 Tweak Hard-level AI
Shuffles the utilities-index pairs for the cases where there are
multiple pairs of the same utility value.
2022-03-07 16:59:18 +09:00
d78c612587 Move "ai/mod.rs" to "ai.rs" (module management) 2022-03-07 14:47:04 +09:00
1936e5ce22 Basic impl. of AI (enough completed to use/test) 2022-03-07 14:45:57 +09:00
ea2625cb48 WIP AI implementation, some fixes/tweaks to AI 2022-03-07 14:35:09 +09:00
93af9c234d WIP Utility based AI, some impl. progress 2022-03-07 14:23:39 +09:00
872fb87313 Minor formatting fix 2022-03-07 13:15:53 +09:00
5e2c5b6d41 Minor refactoring
Use "From<>" instead of "Into<>" for MainMenuMessage to GameState.
2022-03-07 13:14:57 +09:00
2e58bc1288 Set up API for AI choice of slot on board 2022-03-07 13:12:05 +09:00
130cc42d86 Impl main menu
Only "LocalMultiplayer" can be chosen for the game-mode since neither
AI nor Networked-Multiplayer has been implemented yet.
2022-03-04 16:22:30 +09:00
079bf6229f Impl convenience functions, refactoring 2022-03-03 18:01:46 +09:00
462dec9ea1 Remove NodeRef for getter, improve turn indicator
All NodeRefs have been removed in favor of "getElementById".

Turn indicator is now much more obvious to see.
2022-03-03 17:36:51 +09:00
52b841d98a Replace slot "ref" with "id" 2022-03-03 14:08:35 +09:00
5390e4f9cf Minor impl: add default messages to info_texts 2022-03-02 19:22:36 +09:00
2fb5a18636 Minor refactoring
Changed the "Msg" type of "Wrapper" from "String" to "WrapperMsg".
2022-03-02 19:19:50 +09:00
3b4d8b3483 Impl additional info text box, drop logic
Can place tokens, and not place tokens where there already is a token.

Additional info text box added to the side of the board.

More information to the UI regarding placed tokens.
2022-03-02 17:51:14 +09:00
4c8e330c05 Fix comment typo 2022-03-02 16:27:19 +09:00
8838dbae69 Cleanup and fixes
Remove state::MessageBus in favor of String messages sent to Wrapper
from Slot.

Update Slot state from inside Wrapper::update such that changes should
be immediately visible per Slot (moved code from Wrapper::rendered,
fixing updates not being immediately visble).
2022-03-02 16:25:01 +09:00
7e82a6e787 Minor fix to usage of html element for info_text 2022-03-02 15:47:43 +09:00
45e2c88745 Reverse info_text vertically
info_text's latest messages now appear at the top instead of at the
bottom.
2022-03-02 15:38:24 +09:00
15c7dc7654 Reorganize front-end source into modules 2022-03-02 15:18:21 +09:00
6316bd2fdc Removed unnecessary debug logs
Also removed unnecessary feature from web-sys dependency.
2022-03-01 16:09:20 +09:00
a8e516c535 Added output-text-box, connected front-end items
More work was needed to have separate components of the front-end to
communicate with each other. Also added an output-text-box for
informative messages.
2022-03-01 16:02:59 +09:00
a756f0b4b2 Have SharedState use an array of Rc's
Having each array element be an Rc<Cell<BoardState>> enables sharing
Rc's with the Slot subelement.
2022-03-01 11:05:56 +09:00
32a007cf37 Minor fix to front-end 2022-02-28 16:55:07 +09:00
dd59bdb5f3 "cargo clippy" (linter) fixes 2022-02-28 16:53:13 +09:00
0bedc34ac3 "cargo fmt" on front-end code 2022-02-28 16:50:00 +09:00
cd9f7446a4 Impl basic MVP of front-end
(MVP is Minimum Viable Product.)
Enough is implemented to view a 7x8 board and click on the tiles in the
board to change their states.
2022-02-28 16:45:33 +09:00
a5ec28bbb1 Add front_end skeleton project 2022-02-28 13:49:40 +09:00