Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Hovedoppgave 3, Vetle Christensen Ågotnes
- # A)
- import random
- import time
- import sys
- import pickle
- sparSymbol = '\u2660'
- ruterSymbol = '\u2666'
- kløverSymbol = '\u2663'
- hjerterSymbol = '\u2665'
- symbol, royals = [hjerterSymbol, ruterSymbol, kløverSymbol, sparSymbol], ["J", "Q", "K", "A"]
- def kort():
- global dealerDeck, bunke1, bunke2, bunke3, bunke4, bunke5, bunke6, bunke7, bunke8, bunker, tom_liste
- dealerDeck, bunke1, bunke2, bunke3, bunke4, bunke5, bunke6, bunke7, bunke8 = [], [], [], [], [], [], [], [], []
- for i in range(7, 11):
- dealerDeck.append(str(i) + sparSymbol), dealerDeck.append(str(i) + ruterSymbol)
- dealerDeck.append(str(i) + kløverSymbol), dealerDeck.append(str(i) + hjerterSymbol)
- for i in royals:
- dealerDeck.append(str(i) + sparSymbol), dealerDeck.append(str(i) + ruterSymbol)
- dealerDeck.append(str(i) + kløverSymbol), dealerDeck.append(str(i) + hjerterSymbol)
- random.shuffle(dealerDeck)
- tom_liste = ["[]"] # Legger denne til på slutten av alle bunkene for å ha noe å "vise" når det er tomt for kort.
- bunke1.extend(dealerDeck[:4] + tom_liste), bunke2.extend(dealerDeck[4:8] + tom_liste)
- bunke3.extend(dealerDeck[8:12] + tom_liste), bunke4.extend(dealerDeck[12:16] + tom_liste)
- bunke5.extend(dealerDeck[16:20] + tom_liste), bunke6.extend(dealerDeck[20:24] + tom_liste)
- bunke7.extend(dealerDeck[24:28] + tom_liste), bunke8.extend(dealerDeck[28:32] + tom_liste)
- bunker = {
- 'A': bunke1,
- 'B': bunke2,
- 'C': bunke3,
- 'D': bunke4,
- 'E': bunke5,
- 'F': bunke6,
- 'G': bunke7,
- 'H': bunke8
- }
- def lagre():
- global bunke1, bunke2, bunke3, bunke4, bunke5, bunke6, bunke7, bunke8, bunker
- try:
- with open("h3_data.txt", "wb") as f:
- pickle.dump(bunker, f)
- print("Spill lagret.")
- except:
- print("Start et spill før du kan lagre.")
- meny()
- def hentSpill():
- global bunke1, bunke2, bunke3, bunke4, bunke5, bunke6, bunke7, bunke8, bunker
- try:
- with open("h3_data.txt", "rb") as f:
- bunker = pickle.load(f)
- bunke1 = bunker.get("A")
- bunke2 = bunker.get("B")
- bunke3 = bunker.get("C")
- bunke4 = bunker.get("D")
- bunke5 = bunker.get("E")
- bunke6 = bunker.get("F")
- bunke7 = bunker.get("G")
- bunke8 = bunker.get("H")
- print("Spill hentet.")
- spill()
- except:
- print("Spill ikke funnet.")
- meny()
- def vinn():
- global bunker, dealerDeck
- lst = []
- for i in bunker.values():
- if len(i) == 1:
- lst.append(1)
- if len(lst) == 8:
- print("Du har vunnet!")
- vinnAnimasjon(dealerDeck)
- meny()
- def tap():
- lst = []
- for i in bunker.values():
- lst.append(i[0][0])
- for x in lst:
- if x == "[":
- lst.remove(x)
- if len(lst) == len(set(lst)):
- print("Ingen mulige trekk.")
- meny()
- def meny():
- print("1 - Nytt spill", "2 - Fortsett lagret spill", "3 - Lagre spill", "4 - Avslutt", sep="\n")
- bruker = input("Velg handling> ")
- if bruker == "1":
- kort()
- spill()
- elif bruker == "2":
- hentSpill()
- elif bruker == "3":
- lagre()
- meny()
- elif bruker == "4":
- hadeMeld = input("Vil du lagre før du går? (J/N)> ")
- if hadeMeld == "J":
- lagre()
- exit()
- elif hadeMeld == "N":
- exit()
- else:
- print("Skriv en riktig kommando.")
- meny()
- while bruker not in "1" or "2" or "3" or "4":
- print("Ugyldig kommando.")
- meny()
- def spill():
- print("A B C D E F G H")
- print(bunke1[0] + " " + bunke2[0] + " " + bunke3[0] + " " + bunke4[0] + " " + bunke5[0] + " " + bunke6[
- 0] + " " + bunke7[0] + " " + bunke8[0])
- vinn()
- tap()
- valg = input("Trekk to kort (tast 0 for meny): ")
- if len(valg) == 2:
- kombinasjon = []
- for bokstav in valg:
- if bokstav not in bunker.keys():
- ugyldigTrekk()
- else:
- kombinasjon.append(bokstav)
- kort1 = bunker.get(f"{kombinasjon[0]}")
- kort2 = bunker.get(f"{kombinasjon[1]}")
- if kort1[0][0] == kort2[0][0]:
- kort1.pop(0)
- kort2.pop(0)
- spill()
- else:
- ugyldigTrekk()
- elif valg == "0":
- meny()
- elif valg == "GMO":
- gmode()
- else:
- ugyldigTrekk()
- def ugyldigTrekk():
- print("Ugyldig trekk.")
- spill()
- def vinnAnimasjon(s):
- for c in s:
- sys.stdout.write(c + " ")
- sys.stdout.flush()
- time.sleep(0.25)
- print()
- def gmode():
- del bunke1[:4], bunke2[:4], bunke3[:4], bunke4[:4],\
- bunke5[:4], bunke6[:4], bunke7[:4], bunke8[:4]
- spill()
- meny()
Advertisement
Add Comment
Please, Sign In to add comment