GUIを使ってRで単純なTic Tac Toeゲームを作ろうとしています。 3x3ボタンを設計するのは簡単です。私を悩ましているのは次のステップです。一度ボタンをクリックすると、Oが最初に来て、Xが来るようにします。どのようなコードを書くべきですか? HELP PLEASEGUIを使ってTic Tac Toeゲームを作成するR
0
A
答えて
0
グラフとのやりとりの例については、sudokuパッケージのplaySudoku関数のコードを見てください。 TeachingDemosパッケージにはインタラクティブグラフィックスのいくつかの例があります。
クリックした場所とXまたはOを追加するテキスト関数を指定するためにロケータ関数を使用するのと同じくらい簡単かもしれません.X vs. Oを追跡するのはおそらくifとelseを使用すると最も簡単ですが、 %%。
2
私は最近、素晴らしい新しいRookパッケージを使用してローカルWebアプリケーションを作成するパッケージであるgWidgetsWWW2に取り組んでいます。 gWidgetsWWW2パッケージはキャンバスパッケージを使用し、基本グラフィックスでtic-tac-toeを実行する場合に使用するlocator()関数の機能を模倣できるイベントハンドラを備えています。また、gWidgetsRGtk2を使用して以下のように少し変更してこれを行うこともできます。 a)のものとして保存
に実行するには、次のスクリプトの は、あなたが必要となり、チック・タック・toe.rb)はgWidgetsWWW2をインストールすると言います。今のところ唯一のR-鍛造に:
w <- gwindow("Tic-Tac-Toe")
sb <- gstatusbar("Powered by gWidgetsWWW2 and Rook", cont=w)
ghtml("Tic-Tac-Toe, three in a row", cont=w)
## sizing
margin <- 10
sz <- 130
width <- height <- 3*sz + 2 * margin
state <- matrix(character(9), nrow=3)
x_move <- TRUE
sym <- c("o", "x")
f <- tempfile()
cnv <- gcanvas(f, width=width, height=height, cont=w)
make_board <- function() {
## make board
for(i in seq(margin + sz, margin + 2*sz, by=sz)) {
cnv$lines(c(margin, width-margin), c(i, i))
cnv$lines(c(i, i), c(margin, width-margin))
}
}
draw_x <- function(i, j) {
delta <- sz/10
cnv$lines(margin + sz *c(i-1, i) + delta*c(1,-1),
margin + sz *c(j-1, j) + delta*c(1,-1))
cnv$lines(margin + sz *c(i-1, i) + delta*c(1,-1),
margin + sz *c(j, j-1) + delta*c(-1,1))
}
draw_o <- function(i, j) {
cnv$circle(margin + (i-1/2)*sz, margin + (j-1/2)*sz, r = (3/8)*sz)
}
notify_winner <- function(mark) {
if(mark == "x") {
svalue(sb) <- "Congrats, x won"
} else {
svalue(sb) <- "Congrats, o won"
}
}
check_winner <- function() {
## x
is_winner <- function(mark) {
any(colSums(state == mark) == 3) ||
any(rowSums(state == mark) == 3) ||
sum((state == mark)[c(1,5,9)]) == 3 ||
sum((state == mark)[c(3,5,7)]) == 3
}
if(is_winner("x")) {
notify_winner("x")
removeHandler(cnv, cbid)
return(TRUE)
} else if(is_winner("o")) {
notify_winner("o")
removeHandler(cnv, cbid)
return(TRUE)
}
return(FALSE)
}
cbid <- addHandlerClicked(cnv, handler=function(h,...) {
i <- 1 + (h$X - margin) %/% sz
j <- 1 + (h$Y - margin) %/% sz
if(i %in% 1:3 && j %in% 1:3) {
if(state[i,j] == "") {
state[i,j] <<- sym[1 + x_move]
if(x_move) {
draw_x(i,j)
} else {
draw_o(i,j)
}
x_move <<- !x_move
if(!check_winner())
svalue(sb) <- "Click to move"
} else {
svalue(sb) <- "Already selected that cell"
}
}
})
## Start
make_board()
svalue(sb) <- "Click to move"
関連する問題
- 1. Tic-Tac-Toeゲームのエラー
- 2. Tic Tac Toe Java GUIセットアッププレイフィールド
- 3. NxN tic tac toe GUIを作成するwpf c#
- 4. シングルプレイヤーを作るTic-Tac-Toe
- 5. MouseAdapterを使ったJavaのTic Tac Toeゲーム
- 6. PythonでTkinter .. Tic Tac Toeゲーム..ボタンでエラー!
- 7. Android tic tac toeゲーム - 論理問題
- 8. Tic-Tac-Toeゲーム奇妙なシンボル
- 9. Tic Tac Toeゲーム(Python)のローカルスコープの問題
- 10. javascript tic tac toe
- 11. Minmax tic-tac-toe
- 12. Tic-Tac-Toeプログラミング
- 13. Tic-tac-toe prog
- 14. Tic Tac Toe Program
- 15. Tic Tac Toe Score
- 16. Tic-tac-toeゲームグラフデザイン?
- 17. tic tac toe app
- 18. TIC TAC TOE GAME - python
- 19. C++ Tic-Tac-Toeプログラム
- 20. Tic Tac Toe Board - Java
- 21. React Tic Tac Toeチュートリアル
- 22. Tic Tac Toe WinCheck Def
- 23. C++ Tic Tac Toe Game
- 24. tic-tac-toeのミニマム
- 25. TIC-tac-toe in VHDL
- 26. tic-tac-toe whileと||
- 27. Java Tic Tac Toe Networking
- 28. tic-tac-toeのニューラルネットワーク
- 29. Quantum Tic-Tac-Toe AI
- 30. tic tac toeプログラミングpython
は多分設計するためにあなたのコードを掲載することにより起動します。
install.packages("gWidgetsWWW2", repos="http://R-Forge.R-project.org")
C)ここで
でアプリを実行するスクリプトです3 x 3ボタン。 – Chase
実際、私はこのレベルの対話性を備えたグラフを作っていきたいと思っています –
[あなたは何を試しましたか?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) –