# jemdoc: addcss{rbh.css}, addcss{jacob.css} = cmput 670:game bots ~ ~ winter 2016 ~~~ {overview} An intro to game bots and solvers. The game used for illustration will be Hex, but the algorithms apply generally to 2-player games such as Go and chess. Prerequisite: an interest in algorithms and games. Objectives: understand strengths and weaknesses of current 2-player bots and solvers. ~~~ ~~~ {assignments and projects} [http://webdocs.cs.ualberta.ca/~hayward/670gga/asn/compRpt.pdf competition report guidelines] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/asn/studyguide.pdf study guide] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/asn/a2.pdf a2] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/asn/a1sol.pdf a1s] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/asn/a1.pdf a1] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/asn/proj.pdf projects] ~~~ ~~~ {topics} [http://webdocs.cs.ualberta.ca/~hayward/670gga/jem/go.html go] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/jem/games.html games] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/jem/imperfect.html imperfect] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/jem/puzzles.html puzzles] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/jem/mcts.html mcts] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/jem/pns.html pns] ~ ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/jem/elo.html elo] ~~~ ~~~ {grading and policies} - 20\% assignments (Jan 18, Feb 1), late penalty 15\%/d, max 2d - 20\% midterm (Feb 10) - 20\% dark Hex program (Mar 16 10\% competition, 10\% report) - 40\% research project (Apr 6 15\% content, 15\% report, 10\% earlier presentation) - A\+95 A87 A\-80 B\+74 B70 B\-65 C\+60 C55 C\-50 D\+45 D40 F0 - [https://uofa.ualberta.ca/computing-science/links-and-resources/policy-information/department-course-policies cs dept course policies] ~~~ ~~~ {tentative schedule}{} week 1 .. intro, overview, hex other games, mcts 2 .. mcts, dark hex game theory: 2player, nash eq 3 .. aphabeta, rex proof number search ~~~ ~~~ {code} - [http://homepages.di.fc.ul.pt/~jpn/gv/pstools.htm draw game diagrams: abstract game postscripts] - [https://github.com/imccarten1/RHex reverse hex mcts bot] - [https://github.com/yotomyoto/KHex KHex umpire] - [https://github.com/ryanbhayward/hexgui hexgui] ~ ~ ~ for hex (and y) - [https://github.com/cgao3/benzene-vanilla-cmake benzene] (MoHex 2.0, cmake) -- [https://github.com/cgao3/neurobenzene/tree/master/share/nn Chao Gao neural net versions] -- [https://github.com/jakubpawlewicz jakub's] improved vcs, mohex patterns, spdfpn -- [http://benzene.sourceforge.net/ old sourceforge] ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/jem/WhatYouNeedToKnow.pdf install tips] - [https://sourceforge.net/p/fuego/code/HEAD/tree/ fuego] -- [http://unixnme.blogspot.ca/2016/01/how-to-compile-fuego-11-on-ubuntu-1404.html ubuntu] -- [https://github.com/lukaszlew/libego libego] -- [http://sourceforge.net/projects/fuegito/ fuegito] ~ [http://webdocs.cs.ualberta.ca/~hayward/670gga/FuegitoManual.pdf manual] ~ [https://era.library.ualberta.ca/public/view/item/uuid:af81b34b-442e-4cd1-adb0-218deea245a8 tech report] - [https://github.com/Remi-Coulom/gogui/releases gogui] - [https://towardsdatascience.com/monte-carlo-tree-search-implementing-reinforcement-learning-in-real-time-game-player-a9c412ebeff5 MCTS python hex] - Go netbots ~ [https://github.com/gcp/leela-zero leela0] ~ [https://github.com/pytorch/elf torch-elf] ~ [https://github.com/Tencent/PhoenixGo 10cent-phoenixGo] - [https://github.com/ryanbhayward/y y] - [http://www.reddit.com/r/programming/comments/1xmj1a/sunfish_a_111_line_chess_engine_in_python/ sunfish: short python chess engine] - [http://mcts.ai/code/index.html simple java, python examples] - [https://github.com/tewalds/castro castro] - [https://github.com/tewalds/pentagod pentagod] - [https://github.com/brthiess/morat/tree/master/bridg_it bridgit] - [https://github.com/yotomyoto/mopyhex mopyhex] kenny\'s python hex player - [https://webdocs.cs.ualberta.ca/~hayward/670gga/asn/benzene-rex.zip kenny\'s rex solver] mohex:dfpn (ignore all other code) - [https://github.com/yotomyoto/fuego kenny\'s fuego] for kenny\'s osx-benzene - [https://github.com/yotomyoto/morat kenny's morat] branc:hex122cleaned Hex 122 player ~~~ ~~~ {references} - [https://minimax.dev/docs/ultimate/ pns, dfpns] - [http://en.wikipedia.org/wiki/Hex_(board_game) hex game wiki] - [http://chessprogramming.wikispaces.com/ chessprogramming wiki] - [http://webdocs.cs.ualberta.ca/~hayward/theses/ph.pdf phd Henderson] - [http://webdocs.cs.ualberta.ca/~hayward/theses/jack.pdf phd Van Rijswijck] - [http://webdocs.cs.ualberta.ca/~hayward/publications.html various papers] - [http://webdocs.cs.ualberta.ca/~hayward/hex/ computer hex research group] - [http://www.cameronius.com/cv/publications/browne-bpr.pdf bitwise connection tests] - [http://www.cameronius.com/cv/mcts-survey-master.pdf MCTS survey] ~~~