私はvar cards : [Card]
を繰り返し実行し、各エントリに関数を実行しています。これらのエントリの一部は、その前にカードを変更します。配列の "私"の前のオブジェクト
1)「前のオブジェクト」と言う簡単な方法はありますか?
2)「コレクション内のインデックス」と言っても簡単な方法はありますか?その後、私はそのインデックス-1を使って前のカードを入手することができました。
今私はループしていますが、Swiftは私が知らなかったより簡単な解決策で私を驚かせました。私はこれがそうだと思っています。
更新: ここに基本コードがあります。 Deck
は、Card
で構成され、それぞれの3Dジオメトリが記述されています。だから私は、パラメータd
としてDeck
を取り、その後、これを行いドローと呼ばれる方法があります。
for g in d.cards {
switch g.info["type"] ?? "" {
case "GA" : arc(g)
case "GE" : ground(g)
case "GH" : helix(g)
case "GW" : wire(g)
case "SP" : patch(g)
case "SM" : multi(g)
case "GM" : duplicate(g, deck:d)
case "GR" : cylinder(g, deck:d)
default : continue
}
}
を今すぐそれらのカードの一部を、GMのようなインスタンスのために、以前のCard
を複製します。だから私は以前にDeck
全体をループして、g
を探して、前のものを取った。これは準最適です! @ vadianの解決策はその問題をきちんと解決しました。
両方があなたのアルゴリズムの詳細を記述することができる提供しますか?あなたが具体的でない場合には、どの解決策が最善になるかを言うのは少し難しいです。 – Sulthan
はいスルタン、私はこれをたくさん広げておくべきだった。私は元の質問を更新しています。 –