2016-04-12 24 views
0

üstünde kaldırılabilir Kuyruk üzerinde çalışıyorum bir proje için pygame kullanarak kart oyunu "tükürmek" bilgisayarlı bir sürümünü oluşturuyorum. Spit'te, oyuncunun 5 kart biriktirdiğini, 5 karta kadar sakladığını, üstteki kartın yüzü yukarı bakacak ve geri kalanı aşağı bakacak şekilde yerleştirdi. Bir kart bir kart destesinden çıkarıldığında ve bir oyun yığınının üzerine yerleştirildiğinde, el yığınının kalan değerlerinin "yukarı doğru" olmasını istiyorum, böylece listedeki ikinci değer şimdi birincidir.Değerler

Bunun için bir sıra kullanmayı planlıyorum, ancak bununla ilgili bir sorun var. Oyunda, bir el yığını boş olduğunda, başka bir el yığından bir yüzü aşağı doğru kart alabilir, çevirebilir ve boş el yığınına yerleştirerek boş el yığınına yerleştirebilirsiniz. Buna stoklama denir.

Ve işte benim sorunum, sıraya göre bu mümkün değil. Bunun etrafında bir iş var mı? Ya da bunu değiştirmek için kullanabileceğim başka bir form yığını? Zaman ayırdığınız için teşekkür ederim ve cevaplarınızı bekliyoruz.

cevap

0

Listeler burada iş yapabilirdi gibi görünüyor. Her el yığını, en altta bulunan kart 0 olan bir listeyle temsil edebilirsiniz. Daha sonra, tahtada oynatıldığında listenin son kartını (görünür olan) almak ve kaldırmak için list.pop() yöntemini kullanabilirsiniz.

Stoklama için, doğru bir şekilde anlarsam, herhangi bir yığında herhangi bir kartı (görünür olan en üstteki hariç) alabilir, çıkartabilir ve boş yığının üstüne koyabilirsiniz (liste). Bunu aşağıdakilerle yapabilirsiniz:

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)