By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,907 Members | 2,039 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,907 IT Pros & Developers. It's quick & easy.

What is the the best and easiest way to remove elements from a list?

P: 3
Hi!
I'm working on a solitaire game, with a different card deck. First I create a big list with 81 elements (cards in this case), cardList. From this list, six cards are ramdomly picked and put into another list, playerCardList, and printed on the court.

Once the cards are printed the player is asked to remove three cards. I would like these cards to be removed from cardList so they don't appear again. I would also like them to be put into a new list where I can compare them to one another.

Expand|Select|Wrap|Line Numbers
  1. class Kortlek():
  2.     def __init__(self,colors=[], forms=[], numbers=[], grades=[]):
  3.         self.cardList = []
  4.         self.playerCardList = []
  5.         for color in colors:
  6.             for form in forms:
  7.                 for number in numbers:
  8.                     for grade in grades:
  9.                         tmp= Kort(color, form, number, grade)
  10.                         self.cardList.append(tmp)
  11.  
  12.     def cards(self):
  13.         for a in random.sample(self.cardList, 6):
  14.             self.playerCardList.append(a)
  15.  
  16.         self.write()
  17.  
  18.         self.question()
  19.  
  20.     def question(self):
  21.         val = raw_input("Would you like to remove three cards?\n1.Yes\n2.Quit\n")
  22.         if val == "1":
  23.             for kort in range(3):
  24.                 txt = "Write the number of card " + str(card) + ":\n"
  25.                 kortID = int(raw_input(txt))
  26.                 try:
  27.                     self.playerCardList.pop(kortID-1)
  28.                 except IndexError:
  29.                     print "That card is not in your pile"
  30.                     kortID = int(raw_input(txt))
  31.                     self.playerCardList.pop(kortID-1)
  32.  
  33.  
  34.             self.addCard()
  35.  
  36.         elif val == "2":
  37.             quit()
  38.  
  39.         else:
  40.             print "Pick either 1 or 2"
  41.  
  42.  
  43.  
  44.     def addCard(self):
  45.         for a in random.sample(self.cardList, 3):
  46.             self.playerCardList.append(a)
  47.  
  48.         self.write()
  49.         self.question()
  50.  
  51.     def write(self):
  52.         for b in self.playerCardList:
  53.             b.visa()
  54.  
  55. def cardShuffle():
  56.     card = Kortlek(["blue   ", "yellow ", "red    "],["triangel", "circle  ", "square  "],[1, 2, 3],[1, 2, 3])
  57.     card.cards()
  58.  
  59.  
  60.  
Thankful for any help! :)
Dec 5 '10 #1
Share this Question
Share on Google+
2 Replies


Sean Pedersen
P: 30
the pop(elementNumber) removes and returns an item at offset elementNumber
Dec 5 '10 #2

P: 3
Expand|Select|Wrap|Line Numbers
  1. # -*- coding: utf-8 -*-
  2. import random
  3.  
  4.  
  5. class Kortlek():
  6.     def __init__(self,colors=[], forms=[], numbers=[], grades=[]):
  7.         self.cardList = []
  8.         self.playerCardList = []
  9.         for color in colors:
  10.             for form in forms:
  11.                 for number in numbers:
  12.                     for grade in grades:
  13.                         tmp= Kort(color, form, number, grade)
  14.                         self.cardList.append(tmp)
  15.  
  16.     def spelkorten(self):
  17.         for a in random.sample(self.cardList, 6):
  18.             self.playerCardList.append(a)
  19.  
  20.         self.skrivUt()
  21.  
  22.         self.fraga()
  23.  
  24.  
  25.     def kortval():
  26.         kortvalen=[]
  27.  
  28.  
  29.     def fraga(self):
  30.         val = raw_input("Vill du ta bort tre korta blalba??\n1.Ja\n2.Avsluta\n")
  31.         if val == "1":
  32.             for kort in range(3):
  33.                 txt = "Skriv in nummret på kort " + str(kort) + ":\n"
  34.                 kortID = int(raw_input(txt))
  35.                 try:
  36.                     self.playerCardList.remove(kortID-1)
  37.                 except IndexError:
  38.                     print "Det angivna kortet finns inte i din hög!"
  39.                     kortID = int(raw_input(txt))
  40.                     self.playerCardList.remove(kortID-1)
  41.  
  42.  
  43.             #CurrentItem = playerCardList(INDEX_NUMBER_OF_ITEM_1)
  44.  
  45.             #cardList.remove(CurrentItem)
  46.  
  47.             #CurrentItem = playerCardList(INDEX_NUMBER_OF_ITEM_2)
  48.  
  49.             #cardList.remove(CurrentItem)
  50.  
  51.             #CurrentItem = playerCardList(INDEX_NUMBER_OF_ITEM_3)
  52.  
  53.             #cardList.remove(CurrentItem)
  54.  
  55.             self.laggTill()
  56.  
  57.         elif val == "2":
  58.             quit()
  59.  
  60.         else:
  61.             print "Välj aningen 1 eller 2"
  62.  
  63.  
  64.  
  65.     def laggTill(self):
  66.         for a in random.sample(self.cardList, 3):
  67.             self.playerCardList.append(a)
  68.  
  69.         self.skrivUt()
  70.         self.fraga()
  71.  
  72.     def skrivUt(self):
  73.         for b in self.playerCardList:
  74.             b.visa()
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. class Kort():
  82.     def __init__(self,color,form,number,grade):
  83.         self.color = color
  84.         self.form = form
  85.         self.number = number
  86.         self.grade = grade
  87.     def visa(self):
  88.         text = str(self.color) + "\t"
  89.         text += str(self.form) + "\t"
  90.         text += str(self.number) + "\t"
  91.         text += str(self.grade)
  92.         print text
  93.  
  94.  
  95.  
  96. def spelregler():
  97.     print " "
  98.     print "1. Vad går spelet ut på?"
  99.     print "2. Hur får jag poäng?"
  100.     print "3. Tillbaka till huvudmenyn\n"
  101.     spelregelsVal = raw_input("Vilket alternativ väljer du?")
  102.  
  103.     if spelregelsVal == "1":
  104.         print "\nFörst kommer sex olika kort att slumpas ut på spelplanen.\nSpelet går sedan ut på att du ska välja ut tre av\ndessa kort som sedan kommer att jämföras med varann."
  105.         spelregler()         
  106.  
  107.     elif spelregelsVal == "2":
  108.         print "\nTvå poäng ges om du väljer ut \nTre päng...."
  109.         spelregler()
  110.  
  111.     elif spelregelsVal == "3":
  112.         meny()
  113.  
  114.  
  115.     else:
  116.         print "Välj antingen val 1, 2 eller 3"
  117.  
  118.  
  119.  
  120.  
  121. def kortutdelning():
  122.     kort = Kortlek(["blue   ", "yellow ", "red    "],["triangel", "circle  ", "square  "],[1, 2, 3],[1, 2, 3])
  123.     kort.spelkorten()
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130. def fraga1(fragan):
  131.     return raw_input (fragan)
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145. def meny():
  146.     print "\n" * 2 + "*" * 80
  147.     print "Hej och välkommen till patiens med en annorlunda kortlek"
  148.     print "*" * 80 + "\n" * 2
  149.     print "1. Börja spela?"
  150.     print "2. Hur spelar jag?"
  151.     print "3. Avsluta?"
  152.     print " "
  153.     return fraga1("Vad väljer du? ")
  154.  
  155. val = "1"
  156.  
  157. while val != "3":
  158.     val = meny()    
  159.     if val == "1":
  160.         kortutdelning()
  161.  
  162.         val2 = raw_input("Vill du spela igen? Ja/Nej")
  163.  
  164.         val2 = "Ja"
  165.  
  166.         while val2 != "Ja":
  167.  
  168.             if val2 =="Ja":
  169.                 kortutdelning()
  170.                 print "Då kör vi! /n"
  171.  
  172.             elif val2 == "Nej":
  173.                 quit()
  174.                 print "På återseende"
  175.  
  176.             else:
  177.                 print "Välj antingen Ja eller Nej!"
  178.  
  179.  
  180.     elif val == "2":
  181.         spelregler()
  182.  
  183.  
  184.     elif val == "3":
  185.         print "På återseende"
  186.         quit()
  187.  
  188.     else:
  189.         print "Välj antingen val 1 eller 2"
  190.  
  191.  
  192.  
  193. meny()
  194.  
Dec 5 '10 #3

Post your reply

Sign in to post your reply or Sign up for a free account.