-1

スネーク ドラフト スクリプトを作成しようとしています。配列を上に移動してから下に戻す順序が必要です。

 $teams = array('mike','jim','chris','tim');

注文してほしい

 Round 1
 Mike, Jim, Chris, Tim
 Round 2
 Tim, Chris, Jim, Mike

それは2ラウンドになります。それを順番にして繰り返したいのですが、PHPではわかりません。データベースのドラフトから最後のピックを取得しようとしました。$lastpick = (データベースに送信された最後のチーム名);

if(empty($lastpick) && $teams(0) == 'mike'){
  //do this
}else if($lastpick == $teams(0) && $teams(1) == 'jim'){
 // do this
}else if($lastpick == $teams(1) && $teams(2) == 'chris'){
  // do this
}else if($lastpick == $teams(2) && $teams(3) == 'tim'){
  // do this
}else if($lastpick == $teams(3) && $teams(3) == 'tim'){
  // do this
}

次に何をしますか?これは、マイク、ジム、クリス、ティム、ティムの順序を取得しますが、配列の 3 番目のチームに戻すことはできません。どんな助けでも大歓迎です。

4

1 に答える 1

1

各ステートメントで必要な理由は完全には&& $teams(x) == 'yyy'わかりません。順序が定義されているため、それらが何であるかは既にわかっています。変更された場合は、これらすべてのステートメントを更新する必要があります。

現在上または下に移動している方法を定義するには、何らかの形のフラグが必要です。

boolean movingUp = true;

if(empty($lastpick)) { // first team }
else if(movingUp && $lastpick == $teams(0)) { // second team }
else if(movingUp && $lastpick == $teams(1)) { // third team }
else if(movingUp && $lastpick == $teams(2)) { movingUp = false; // fourth team }
else if(!movingUp && $lastpick == $teams(3)) { // fourth team }
else if(!movingUp && $lastpick == $teams(2)) { // third team }
else if(!movingUp && $lastpick == $teams(1)) { // second team }
else if(!movingUp && $lastpick == $teams(1)) { movingUp = true; $lastpick = null; // first team }

$lastpick == $teams(3)最後から 2 番目のチームを選択すると、上に移動している間に次のアクションが最後のチームになることがわかっているため、 は必要ありません。

于 2013-07-29T15:19:57.870 に答える