私は4人のプレイヤーのためのカードゲームをしています。これらのプレイヤーオブジェクトを単純なIDで辞書に保存します。 1、2、3、4。次に、スタートプレイヤーをランダムに決めます。辞書を繰り返してプレイヤーの位置を決定します
ゲームビューでは、4人のプレーヤーが画面の異なる領域に割り当てられています。現在のデバイスのプレーヤーは、常に画面の下部にあるプレーヤーであり、次は画面に残り、3番目は上部にあり、4番目は右側にあります。
プレーヤーのプレイヤーがプレーヤー辞書のID 3のプレーヤーであるとします。選手のスクリーンへの配置は、 1(上)、2(右)、3(下)および4(左)。それらは、辞書の中での位置に応じて時計回りに配置されます。
私はこの位置を決定するコードを持っています。はっきりする。ボトム= 1、左= 2、トップ= 3、右= 4。
func determinePlayerPositions() {
var playerPositionsCount = 0
for i in 1...gamePlayers.count {
let player = gamePlayers[i]
if player?.playerID == playerOfThisDeviceId {
playerOfThisDevice = i
playerPositions[1] = playerOfThisDevice
playerPositionsCount += 1
if playerOfThisDevice == gamePlayers.count && playerPositionsCount != gamePlayers.count {
for i in 1...gamePlayers.count-1 {
playerPositions[i] = i
playerPositionsCount += 1
}
}
if playerOfThisDevice < gamePlayers.count && playerPositionsCount != gamePlayers.count {
for i in playerOfThisDevice+1...gamePlayers.count {
playerPositions[i] = i
playerPositionsCount += 1
}
if playerPositionsCount != gamePlayers.count {
for i in 1...playerPositionsCount {
playerPositions[i] = i
}
playerPositionsCount = 0
}
}
}
}
setLabelTexts()
}
ボトムプレイヤーはゲームをプレイする4つの異なるデバイスで異なります。
だから私の質問です。より効率的なポジションの決定方法があります。これは単純なタスクのための多くのコードのようです。
ありがとうございます!
これは私が必要としていたものです。ありがとう! – Niels