Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import sys
- from tkinter import *
- #Funktionen modtager parameteren "file" og retunerer indholdet af filen som en liste.
- def importList(file):
- fileDirectory = open("./generatorfiler/"+file, 'r')
- rawlist =fileDirectory.readlines()
- fileDirectory.close()
- output =[]
- for e in rawlist:
- output.append(e.strip())
- return output
- #For at undgå at programmet importerer de samme filer gentagende gange, gemmer vi de importerede lister i hver sin variabel til senere brug.
- Aldercg = importList("Aldercg.txt")
- Baggrundcg = importList("Baggrundcg.txt")
- Harfarvecg = importList("Harfarvecg.txt")
- Kncg = importList("Kncg.txt")
- Navnecg = importList("Navnecg.txt")
- Racercg = importList("Racercg.txt")
- MEAlder = importList("MaleElvereAlder.txt")
- MEBG = importList("MaleElvereBG.txt")
- MEFrygt = importList("MaleElvereFrygt.txt")
- MEHFarve = importList("MaleElvereHarfarve.txt")
- MENavne = importList("MaleElvereNavne.txt")
- MESVaner = importList("MaleElvereSærhederVaner.txt")
- MEOFarve = importList("MaleElvereOjenFarve.txt")
- MOAlder = importList("MaleOrkerAlder.txt")
- MOBG = importList("MaleOrkerBG.txt")
- MOFrygt = importList("MaleOrkerFrygt.txt")
- MOHFarve = importList("MaleOrkerHarfarve.txt")
- MONavne = importList("MaleOrkerNavne.txt")
- MOSVaner = importList("MaleOrkerSærhederVaner.txt")
- MOOFarve = importList("MaleOrkerOjenFarve.txt")
- MMAlder = importList("MaleMenneskerAlder.txt")
- MMBG = importList("MaleMenneskerBG.txt")
- MMFrygt = importList("MaleMenneskerFrygt.txt")
- MMHFarve = importList("MaleMenneskerHarfarve.txt")
- MMNavne = importList("MaleMenneskerNavne.txt")
- MMSVaner = importList("MaleMenneskerSærhederVaner.txt")
- MMOFarve = importList("MaleMenneskerOjenFarve.txt")
- #Denne klasse styrer karakter generation. Den modtager en læng række tekst og tal lister fra tidligere importlist.
- class CharacterGenerator:
- #Funktionen modtager en liste som parametre og returnerer et tilfældigt tekst eller tal element fra listen.
- def getRandom(self, list):
- return random.choice(list)
- #Denne funktion skaber en tilfældig karakter ud fra min udvalgte skabelon. Funktionen modtager tilfældige parametre fra getRandom (Aldercg, Baggrundcg, Harfarvecg, Kncg og Navnecg)
- def makeRandomCharacter(self):
- return("Dit navn er " + self.getRandom(Navnecg) + " Og din race er " + self.getRandom(Racercg) + " Du er i en alder af " + self.getRandom(Aldercg) + " Dit køn er " + self.getRandom(Kncg) + " Og din baggrund er " + self.getRandom(Baggrundcg) + " Din haarfarve er " + self.getRandom(Harfarvecg))
- #Denne funktion skaber en tilfældig mandlig elver ud fra min udvalgte skabelon. Funktionen modtager tilfældige parametre fra getRandom, denne gang med elvere i stedet for 100% tilfældigt.
- def MaleElver(self):
- return("Du er en Elver, og dit navn er " + self.getRandom(MENavne) + " Du er " + self.getRandom(MEAlder) + " år Gammel. Du er en mand, og din øjenfarve er " + self.getRandom(MEOFarve) + " " + self.getRandom(MESVaner) + " Din største frygt er " + self.getRandom(MEFrygt) + " Din baggrund er " + self.getRandom(MEBG))
- #Samme som ovenstående, andre parametre
- def MaleOrk(self):
- return("Du er en Ork, og dit navn er " + self.getRandom(MONavne) + " Du er " + self.getRandom(MOAlder) + " år Gammel. Du er en mand, og din øjenfarve er " + self.getRandom(MOOFarve) + " " + self.getRandom(MOSVaner) + " Din største frygt er " + self.getRandom(MOFrygt) + " Din baggrund er " + self.getRandom(MOBG))
- #Samme som ovenstående, andre parametre
- def MaleMenneske(self):
- return("Du er et menneske, og dit navn er " + self.getRandom(MMNavne) + " Du er " + self.getRandom(MMAlder) + " år Gammel. Du er en mand, og din øjenfarve er " + self.getRandom(MMOFarve) + " " + self.getRandom(MMSVaner) + " Din største frygt er " + self.getRandom(MMFrygt) + " Din baggrund er " + self.getRandom(MMBG))
- #Denne klasse styrer user UserInterfacet, og sørger for at brugeren nemmere kan interagere med systemet ved hjælp af knapper, som starter karakter generationen.
- #Denne klasse arver funktioner fra CharacterGenerator
- class UserInterface:
- #Denne funktion benytter sig af funktioner fra Character generator, sådan at den kan bruge funktionen i denne klasse.
- def MakeRandomC(self):
- a=self.CGenerator.makeRandomCharacter()
- print(a)
- #Samme som ovenstående, anden funktion.
- def MakeMaleElver(self):
- a=self.CGenerator.MaleElver()
- print(a)
- ##Samme som ovenstående, anden funktion.
- def MakeMaleOrk(self):
- a=self.CGenerator.MaleOrk()
- print(a)
- ##Samme som ovenstående, anden funktion.
- def MakeMaleMenneske(self):
- a=self.CGenerator.MaleMenneske()
- print(a)
- # Denne funktion henter tilfældig karakter, og updatererer labelet i user interface med denne karakter.
- def knapperne(self):
- self.MakeRandomC()
- self.updaterlabel.set(self.CGenerator.makeRandomCharacter())
- #Samme som ovenstående, blot med specifik karakter
- def knapperne2(self):
- self.MakeMaleElver()
- self.updaterlabel.set(self.CGenerator.MaleElver())
- #Samme som ovenstående, blot med specifik karakter
- def knapperne3(self):
- self.MakeMaleOrk()
- self.updaterlabel.set(self.CGenerator.MaleOrk())
- #Samme som ovenstående, blot med specifik karakter
- def knapperne4(self):
- self.MakeMaleMenneske()
- self.updaterlabel.set(self.CGenerator.MaleMenneske())
- CGenerator=CharacterGenerator()
- #Her laves user interfacet. Det består af 2 frames som bruges til layout, 1 label hvori tekst printes, 4 print buttons som bruges
- #Til at kalde på karakter generation ved klik. Indeholder en sluk knap kaldet quit.
- def __init__(self, master):
- topFrame = Frame(root)
- topFrame.pack()
- bottomFrame = Frame(root)
- bottomFrame.pack()
- self.updaterlabel = StringVar()
- self.updaterlabel.set("Her printes teksten")
- self.testlabel = Label(bottomFrame, textvariable = self.updaterlabel)
- self.testlabel.grid(columnspan=3)
- self.printButton = Button(topFrame, text="Print Tilfældig karakter", command=self.knapperne)
- self.printButton.grid(columnspan=1)
- self.printButton = Button(topFrame, text="Print Tilfældig Mande Elver", command=self.knapperne2)
- self.printButton.grid(columnspan=1)
- self.printButton = Button(topFrame, text="Print Tilfældig Mande Ork", command=self.knapperne3)
- self.printButton.grid(columnspan=1)
- self.printButton = Button(topFrame, text="Print Tilfældig Mande Menneske", command=self.knapperne4)
- self.printButton.grid(columnspan=1)
- self.quitButton = Button(bottomFrame, text="Quit", command=topFrame.quit)
- self.quitButton.grid(columnspan=3)
- #Bruges til at køre user interfacet i et mainloop.
- root=Tk()
- f = UserInterface(root)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement