2016-04-12 10 views
0

私が作業しているプロジェクトにpygameを使用して、カードゲーム "spit"のコンピュータ化されたバージョンを作成しています。 Spitでは、プレイヤーは5枚の手札を持ち、5枚までのカードを保管し、一番上のカードを上に、残りのカードを下にして置く。カードをカード더미から取り出してゲームパイルに置くと、リストの2番目の値が最初の値になるように、ハンドパイルの残りの値を "上に移動"します。キューの上にない値を取り除くことができる

このため、キューを使用する予定でしたが、問題があります。 手札が空である場合、別の手札からフェイスダウンカードを取り出し、それを裏返して空の手札に置き、空の手札がなくなるようにすることができます。これは備蓄と呼ばれます。

これは私の問題です。それはキューでは不可能です。これを回避する方法はありますか?または私はこれを置き換えるために使用することができます別のフォームスタック? ありがとう、私はあなたの答えを楽しみにしています。

答えて

0

リストはここで仕事をすることができるようです。それぞれのハンドスタックをリストで表し、インデックス0を一番下のカードとします。次に、list.pop()メソッドを使用して、ボード上で再生されたときにリストの最後のカード(目に見えるもの)を取得して削除することができます。

私が正しく理解していれば、スタック内のカード(最上位のカードは見えません)を取り出し、取り出して空のスタックの上に置くことができますリスト)。あなたはそれを行うことができます:

firstList[0] = chosenCard #Get the chosen card from the first pile 
del firstList[0]    #Delete the downmost card. The new list will have element 
          #firstList[0] equal to the old firstList[1], like a stack 
secondList.append(chosenCard) #Add the card to the end of the list (top of the stack) 
関連する問題