SHARE
TWEET

Untitled

a guest Apr 24th, 2019 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import random
  2. import sys
  3. from tkinter import *
  4. #Funktionen modtager parameteren "file" og retunerer indholdet af filen som en liste.
  5. def importList(file):
  6.     fileDirectory = open("./generatorfiler/"+file, 'r')
  7.     rawlist =fileDirectory.readlines()
  8.     fileDirectory.close()
  9.  
  10.     output =[]
  11.     for e in rawlist:
  12.         output.append(e.strip())
  13.     return output
  14.  
  15. #For at undgå at programmet importerer de samme filer gentagende gange, gemmer vi de importerede lister i hver sin variabel til senere brug.
  16. Aldercg = importList("Aldercg.txt")
  17. Baggrundcg = importList("Baggrundcg.txt")
  18. Harfarvecg = importList("Harfarvecg.txt")
  19. Kncg = importList("Kncg.txt")
  20. Navnecg = importList("Navnecg.txt")
  21. Racercg = importList("Racercg.txt")
  22. MEAlder = importList("MaleElvereAlder.txt")
  23. MEBG = importList("MaleElvereBG.txt")
  24. MEFrygt = importList("MaleElvereFrygt.txt")
  25. MEHFarve = importList("MaleElvereHarfarve.txt")
  26. MENavne = importList("MaleElvereNavne.txt")
  27. MESVaner = importList("MaleElvereSærhederVaner.txt")
  28. MEOFarve = importList("MaleElvereOjenFarve.txt")
  29. MOAlder = importList("MaleOrkerAlder.txt")
  30. MOBG = importList("MaleOrkerBG.txt")
  31. MOFrygt = importList("MaleOrkerFrygt.txt")
  32. MOHFarve = importList("MaleOrkerHarfarve.txt")
  33. MONavne = importList("MaleOrkerNavne.txt")
  34. MOSVaner = importList("MaleOrkerSærhederVaner.txt")
  35. MOOFarve = importList("MaleOrkerOjenFarve.txt")
  36. MMAlder = importList("MaleMenneskerAlder.txt")
  37. MMBG = importList("MaleMenneskerBG.txt")
  38. MMFrygt = importList("MaleMenneskerFrygt.txt")
  39. MMHFarve = importList("MaleMenneskerHarfarve.txt")
  40. MMNavne = importList("MaleMenneskerNavne.txt")
  41. MMSVaner = importList("MaleMenneskerSærhederVaner.txt")
  42. MMOFarve = importList("MaleMenneskerOjenFarve.txt")
  43. #Denne klasse styrer karakter generation. Den modtager en læng række tekst og tal lister fra tidligere importlist.
  44. class CharacterGenerator:
  45.     #Funktionen modtager en liste som parametre og returnerer et tilfældigt tekst eller tal element fra listen.
  46.     def getRandom(self, list):
  47.         return random.choice(list)
  48.  
  49.     #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)
  50.     def makeRandomCharacter(self):
  51.         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))
  52.     #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.
  53.     def MaleElver(self):
  54.         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))
  55.     #Samme som ovenstående, andre parametre
  56.     def MaleOrk(self):
  57.         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))
  58.     #Samme som ovenstående, andre parametre
  59.     def MaleMenneske(self):
  60.         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))
  61.  
  62. #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.
  63. #Denne klasse arver funktioner fra CharacterGenerator
  64. class UserInterface:
  65. #Denne funktion benytter sig af funktioner fra Character generator, sådan at den kan bruge funktionen i denne klasse.
  66.     def MakeRandomC(self):
  67.  
  68.         a=self.CGenerator.makeRandomCharacter()
  69.  
  70.         print(a)
  71.     #Samme som ovenstående, anden funktion.
  72.     def MakeMaleElver(self):
  73.  
  74.         a=self.CGenerator.MaleElver()
  75.         print(a)
  76.     ##Samme som ovenstående, anden funktion.
  77.     def MakeMaleOrk(self):
  78.  
  79.         a=self.CGenerator.MaleOrk()
  80.         print(a)
  81.     ##Samme som ovenstående, anden funktion.
  82.     def MakeMaleMenneske(self):
  83.  
  84.         a=self.CGenerator.MaleMenneske()
  85.         print(a)
  86.     # Denne funktion henter tilfældig karakter, og updatererer labelet i user interface med denne karakter.
  87.     def knapperne(self):
  88.         self.MakeRandomC()
  89.         self.updaterlabel.set(self.CGenerator.makeRandomCharacter())
  90.     #Samme som ovenstående, blot med specifik karakter
  91.     def knapperne2(self):
  92.         self.MakeMaleElver()
  93.         self.updaterlabel.set(self.CGenerator.MaleElver())
  94.     #Samme som ovenstående, blot med specifik karakter
  95.     def knapperne3(self):
  96.         self.MakeMaleOrk()
  97.         self.updaterlabel.set(self.CGenerator.MaleOrk())
  98.     #Samme som ovenstående, blot med specifik karakter
  99.     def knapperne4(self):
  100.         self.MakeMaleMenneske()
  101.         self.updaterlabel.set(self.CGenerator.MaleMenneske())
  102.  
  103.  
  104.  
  105.     CGenerator=CharacterGenerator()
  106.     #Her laves user interfacet. Det består af 2 frames som bruges til layout, 1 label hvori tekst printes, 4 print buttons som bruges
  107.     #Til at kalde på karakter generation ved klik. Indeholder en sluk knap kaldet quit.
  108.     def __init__(self, master):
  109.         topFrame = Frame(root)
  110.         topFrame.pack()
  111.         bottomFrame = Frame(root)
  112.         bottomFrame.pack()
  113.  
  114.         self.updaterlabel = StringVar()
  115.         self.updaterlabel.set("Her printes teksten")
  116.  
  117.         self.testlabel = Label(bottomFrame, textvariable = self.updaterlabel)
  118.         self.testlabel.grid(columnspan=3)
  119.  
  120.         self.printButton = Button(topFrame, text="Print Tilfældig karakter", command=self.knapperne)
  121.         self.printButton.grid(columnspan=1)
  122.  
  123.         self.printButton = Button(topFrame, text="Print Tilfældig Mande Elver", command=self.knapperne2)
  124.         self.printButton.grid(columnspan=1)
  125.  
  126.         self.printButton = Button(topFrame, text="Print Tilfældig Mande Ork", command=self.knapperne3)
  127.         self.printButton.grid(columnspan=1)
  128.  
  129.         self.printButton = Button(topFrame, text="Print Tilfældig Mande Menneske", command=self.knapperne4)
  130.         self.printButton.grid(columnspan=1)
  131.  
  132.         self.quitButton = Button(bottomFrame, text="Quit", command=topFrame.quit)
  133.         self.quitButton.grid(columnspan=3)
  134. #Bruges til at køre user interfacet i et mainloop.
  135. root=Tk()
  136. f = UserInterface(root)
  137. root.mainloop()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top