2017-05-24 5 views
0

私はf#の学習を始めましたが、基本的なゲームを開発しましたが、現時点では、単一の配列を使用して再生するセルを指定します。たとえば、中央のセルにXまたはOを配置するには、昇格すると5と入力します。私は、私は、細胞を初期化するために、Fシャープの2D配列

let arrayOfCells = [|" "; " "; " "; " "; " "; " "; " "; " " ;" "|] 


let drawGrid()= 

    Console.Write("\n\n\t\t" + arrayOfCells.[0] + "|" + arrayOfCells.[1]+ "|" + arrayOfCells.[2] + "\n") 
    Console.Write("\t\t------ "+ "\n") 
    Console.Write("\t\t" + arrayOfCells.[3] + "|" + arrayOfCells.[4]+ "|" + arrayOfCells.[5] + "\n") 
    Console.Write("\t\t------ "+ "\n") 
    Console.Write("\t\t" + arrayOfCells.[6] + "|" + arrayOfCells.[7]+ "|" + arrayOfCells.[8] + "\n") 

答えて

2

あなたはarray2D機能を使用してF#で2次元配列を作成することができ、以下のゲームのための私のソースコードをリストした1,1

を受け入れるために、これを変更したいです

let cells = 
    array2D [ 
    [ " "; " "; " " ] 
    [ " "; " "; " " ] 
    [ " "; " "; " " ] 
    ] 

は今、あなたはcells.[0, 0]を使用して要素にアクセスすることができますし、使用して値を変更します:あなたは使用することができ

cells.[1, 1] <- "X" 

インデックスを使用すると、グリッドを描画するすべてのセルを反復処理したい場合は、あなたが必要なので、0から2まで、次のとおりです。

printfn "-------------" 
for x in 0 .. 2 do 
    printf "| " 
    for y in 0 .. 2 do 
    printf " %s |" cells.[x,y] 
    printfn "\n--------------" 

あなたが変更できるようにするためには、あなたの2Dアレイに関するすべての情報を与える必要がありますあなたのゲームのデータ構造 - これを改善する他の方法がありますが、それはおそらくthe Code Review siteの質問です。