Guest User

Untitled

a guest
Nov 22nd, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.01 KB | None | 0 0
  1. # Hovedoppgave 3, Vetle Christensen Ågotnes
  2. # A)
  3. import random
  4. import time
  5. import sys
  6. import pickle
  7. sparSymbol = '\u2660'
  8. ruterSymbol = '\u2666'
  9. kløverSymbol = '\u2663'
  10. hjerterSymbol = '\u2665'
  11. symbol, royals = [hjerterSymbol, ruterSymbol, kløverSymbol, sparSymbol], ["J", "Q", "K", "A"]
  12.  
  13.  
  14. def kort():
  15. global dealerDeck, bunke1, bunke2, bunke3, bunke4, bunke5, bunke6, bunke7, bunke8, bunker, tom_liste
  16. dealerDeck, bunke1, bunke2, bunke3, bunke4, bunke5, bunke6, bunke7, bunke8 = [], [], [], [], [], [], [], [], []
  17. for i in range(7, 11):
  18. dealerDeck.append(str(i) + sparSymbol), dealerDeck.append(str(i) + ruterSymbol)
  19. dealerDeck.append(str(i) + kløverSymbol), dealerDeck.append(str(i) + hjerterSymbol)
  20.  
  21. for i in royals:
  22. dealerDeck.append(str(i) + sparSymbol), dealerDeck.append(str(i) + ruterSymbol)
  23. dealerDeck.append(str(i) + kløverSymbol), dealerDeck.append(str(i) + hjerterSymbol)
  24.  
  25. random.shuffle(dealerDeck)
  26.  
  27. tom_liste = ["[]"] # Legger denne til på slutten av alle bunkene for å ha noe å "vise" når det er tomt for kort.
  28. bunke1.extend(dealerDeck[:4] + tom_liste), bunke2.extend(dealerDeck[4:8] + tom_liste)
  29. bunke3.extend(dealerDeck[8:12] + tom_liste), bunke4.extend(dealerDeck[12:16] + tom_liste)
  30. bunke5.extend(dealerDeck[16:20] + tom_liste), bunke6.extend(dealerDeck[20:24] + tom_liste)
  31. bunke7.extend(dealerDeck[24:28] + tom_liste), bunke8.extend(dealerDeck[28:32] + tom_liste)
  32.  
  33. bunker = {
  34. 'A': bunke1,
  35. 'B': bunke2,
  36. 'C': bunke3,
  37. 'D': bunke4,
  38. 'E': bunke5,
  39. 'F': bunke6,
  40. 'G': bunke7,
  41. 'H': bunke8
  42. }
  43.  
  44.  
  45. def lagre():
  46. global bunke1, bunke2, bunke3, bunke4, bunke5, bunke6, bunke7, bunke8, bunker
  47. try:
  48. with open("h3_data.txt", "wb") as f:
  49. pickle.dump(bunker, f)
  50. print("Spill lagret.")
  51. except:
  52. print("Start et spill før du kan lagre.")
  53. meny()
  54.  
  55.  
  56. def hentSpill():
  57. global bunke1, bunke2, bunke3, bunke4, bunke5, bunke6, bunke7, bunke8, bunker
  58. try:
  59. with open("h3_data.txt", "rb") as f:
  60. bunker = pickle.load(f)
  61.  
  62. bunke1 = bunker.get("A")
  63. bunke2 = bunker.get("B")
  64. bunke3 = bunker.get("C")
  65. bunke4 = bunker.get("D")
  66. bunke5 = bunker.get("E")
  67. bunke6 = bunker.get("F")
  68. bunke7 = bunker.get("G")
  69. bunke8 = bunker.get("H")
  70. print("Spill hentet.")
  71. spill()
  72. except:
  73. print("Spill ikke funnet.")
  74. meny()
  75.  
  76.  
  77. def vinn():
  78. global bunker, dealerDeck
  79. lst = []
  80. for i in bunker.values():
  81. if len(i) == 1:
  82. lst.append(1)
  83. if len(lst) == 8:
  84. print("Du har vunnet!")
  85. vinnAnimasjon(dealerDeck)
  86. meny()
  87.  
  88.  
  89. def tap():
  90. lst = []
  91. for i in bunker.values():
  92. lst.append(i[0][0])
  93. for x in lst:
  94. if x == "[":
  95. lst.remove(x)
  96.  
  97. if len(lst) == len(set(lst)):
  98. print("Ingen mulige trekk.")
  99. meny()
  100.  
  101.  
  102. def meny():
  103. print("1 - Nytt spill", "2 - Fortsett lagret spill", "3 - Lagre spill", "4 - Avslutt", sep="\n")
  104. bruker = input("Velg handling> ")
  105. if bruker == "1":
  106. kort()
  107. spill()
  108. elif bruker == "2":
  109. hentSpill()
  110. elif bruker == "3":
  111. lagre()
  112. meny()
  113. elif bruker == "4":
  114. hadeMeld = input("Vil du lagre før du går? (J/N)> ")
  115. if hadeMeld == "J":
  116. lagre()
  117. exit()
  118. elif hadeMeld == "N":
  119. exit()
  120. else:
  121. print("Skriv en riktig kommando.")
  122. meny()
  123. while bruker not in "1" or "2" or "3" or "4":
  124. print("Ugyldig kommando.")
  125. meny()
  126.  
  127.  
  128. def spill():
  129. print("A B C D E F G H")
  130. print(bunke1[0] + " " + bunke2[0] + " " + bunke3[0] + " " + bunke4[0] + " " + bunke5[0] + " " + bunke6[
  131. 0] + " " + bunke7[0] + " " + bunke8[0])
  132. vinn()
  133. tap()
  134. valg = input("Trekk to kort (tast 0 for meny): ")
  135. if len(valg) == 2:
  136. kombinasjon = []
  137. for bokstav in valg:
  138. if bokstav not in bunker.keys():
  139. ugyldigTrekk()
  140. else:
  141. kombinasjon.append(bokstav)
  142. kort1 = bunker.get(f"{kombinasjon[0]}")
  143. kort2 = bunker.get(f"{kombinasjon[1]}")
  144. if kort1[0][0] == kort2[0][0]:
  145. kort1.pop(0)
  146. kort2.pop(0)
  147. spill()
  148. else:
  149. ugyldigTrekk()
  150. elif valg == "0":
  151. meny()
  152. elif valg == "GMO":
  153. gmode()
  154. else:
  155. ugyldigTrekk()
  156.  
  157.  
  158. def ugyldigTrekk():
  159. print("Ugyldig trekk.")
  160. spill()
  161.  
  162.  
  163. def vinnAnimasjon(s):
  164. for c in s:
  165. sys.stdout.write(c + " ")
  166. sys.stdout.flush()
  167. time.sleep(0.25)
  168. print()
  169.  
  170.  
  171. def gmode():
  172. del bunke1[:4], bunke2[:4], bunke3[:4], bunke4[:4],\
  173. bunke5[:4], bunke6[:4], bunke7[:4], bunke8[:4]
  174. spill()
  175.  
  176.  
  177. meny()
Advertisement
Add Comment
Please, Sign In to add comment