2016-04-18 7 views
4

はRAMDAでグリップを取得しようと、これまでそれを愛し、しかし、私は非常に基本的なようで何かに苦しんだ(申し訳ありませんが、これは重複している場合)RAMDA指数

const move = [[7, 4], [7, 5], [6, 5]] 

私はタイルをマップしたい場所を移動coordiantesの試合:(ゲームボードを表す)配列

const board = [ 
    [4, 0, 2, 2, 0, 3, 0, 2], 
    [4, 3, 3, 1, 2, 3, 4, 3], 
    [4, 4, 3, 2, 4, 1, 1, 4], 
    [0, 2, 4, 1, 0, 3, 2, 2], 
    [4, 1, 0, 1, 2, 2, 4, 1], 
    [3, 3, 4, 3, 2, 0, 1, 3], 
    [2, 2, 4, 2, 2, 1, 2, 2], 
    [3, 3, 2, 3, 1, 1, 2, 3] 
] 

プレイヤーがマッチングのタイルとの間で移動を構築するので、何かのように(例えば、 1これらcoordiantes sで-1なる)

私はRAMDAはR.addIndexでR.mapを強化することができます知っています:const mapWithIndex = R.map(R.addIndex)のでmapWithIndex((i, value) => // do something))は、各タイルのインデックスへのアクセスを得るだろうが、私はダウン渡す方法を確信しています私も一緒にiとjを追加することはできません最低レベル

へのすべての引数は、ような何か試してみました:

const mapWithIndex = R.addIndex(R.map) 
const addIndices = mapWithIndex((i, row) => mapWithIndex((j, tile) => j + i)) 

をしかし、この関数を呼び出すと、関数の配列を返します。

私には何が欠けていますか?任意の助けもいただければ幸いです:)

答えて

1

二つの問題がありました:

  • インナーmapWithIndexニーズはそれが値とインデックスのパラメータは、あなたのサンプルで逆転したタイル
  • を反復処理することができますrowへのアクセスは、コード

これはそれを行う必要があります。

const mapWithIndex = R.addIndex(R.map); 
const addIndices = mapWithIndex((row, i) => mapWithIndex((tile, j) => j + i)(row)); 
+0

すごくおかげさまで、なぜインデックスの議論が最初に来たのか分かりません。私の次の質問は、プレイヤーの動きの配列を引数として渡すことができるより小さな単位に、これをどのように分解することができるかということです。 –