0
我想編寫一個井字遊戲。R如何在井字遊戲中定義[]函數?面向對象編程
print(state)
1 | 2 | 3
---------
4 | 5 | 6
---------
7 | 8 | 9
我如何定義[]
功能,使下面的代碼工作:
state[5] <- "x"
state
1 | 2 | 3
---------
4 | x | 6
---------
7 | 8 | 9
下面是我的完整代碼:
state <- as.character(c(1:9))
ttt<-function(state=NULL)
{
if(is.null(state)==TRUE)
state<-character(9)
state<-as.character(state)
rtrn<-list()
class(rtrn)<-"ttt"
rtrn$state<-state
return(rtrn)
}
state<-ttt(state)
print.ttt<-function(ttt)
{
state<-ttt$state
print(cat(state[1]," | ",state[2]," | ",state[3],"\n",state[4]," | ",state[5]," | ",state[6],"\n",state[7]," | ",state[8]," | ",state[9],"\n",sep=""))
}
state
的print
功能工作。是。但
state[2]<-"x" ##this code do not work, I don't know how to program [] function in this case
我會建議問兩個單獨的問題,對於'print'和'['''''來說答案會有很大的不同。總之,對於'print',我很困惑你爲什麼被卡住。你有嘗試過什麼嗎?對於''',實現你自己的方法可能會很複雜,但是如果你讓你的'ttt'類繼承自一個向量或矩陣,你應該只能使用默認的方法。 – Gregor
是的,對於「打印」,我可以做到這一點。但在這種情況下,我想使用一個類。所以我不知道如何在一個類中使用這兩個函數 –
R中的方法沒有在類中定義,你只需要創建一個'print.ttt'函數,它會在你執行'print()狀態)'或'狀態'。你所要做的就是編寫函數並適當地命名它。如果您以某種方式編寫了該功能並仍然有問題,請將您的代碼置於該問題中。 – Gregor