The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Play and learn Tic-Tac-Toe Game on R
Install from CRAN
install.packages("tictactoe")
Or you may install the recent development version from github
::install_github("kota7/tictactoe") devtools
To use,
library(tictactoe)
You can play tic-tac-toe on R console.
ttt(ttt_human(), ttt_ai())
This would give you a prompt as below.
A B C
------
1| . . .
2| . . .
3| . . .
Player 1 (no name) to play
choose move (e.g. A1) >
Type a move, then the oppoenet will respond. To finish the game in the middle, type “exit”.
The default AI player is very week (in fact, he plays randomly). To
play against a more sophisticated player, set the level
argument (from 0 (weekest) to 5 (strongest)).
ttt(ttt_human(), ttt_ai(level = 4))
You may play as the second mover by
ttt(ttt_ai(), ttt_human())
. You may watch games between AI
players by ttt(ttt_ai(), ttt_ai())
.
To conduct a large scale simulation between AI players, use
ttt_simulate
function. The code below conducts 100
simulation games between random AIs. The result 0, 1, and 2 indicate
draw, won by player 1, and won by player 2 respectively.
<- ttt_simulate(ttt_ai(), ttt_ai(), N = 100, verbose = FALSE)
res prop.table(table(res))
#> res
#> 0 1 2
#> 0.13 0.57 0.30
Q-learning is implemented to train AI players. The code below trains a random AI through Q-learninig of 500 episodes.
<- ttt_ai()
p <- ttt_qlearn(p, N = 500, verbose = FALSE) o
Now this player is much stronger than the random player.
<- ttt_simulate(ttt_ai(), p, N = 100, verbose = FALSE)
res prop.table(table(res))
#> res
#> 0 1 2
#> 0.15 0.25 0.60
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.