basic GUI Python

profileJamalHassan
hw12-2.zip

hw12-2/pokedex.csv

Dex Pokemon Catch Rate Speed
1 Bulbasaur 45 27
2 Ivysaur 45 35
3 Venusaur 45 45
4 Charmander 45 37
5 Charmeleon 45 45
6 Charizard 45 55
7 Squirtle 45 26
8 Wartortle 45 34
9 Blastoise 45 44
10 Caterpie 255 27
11 Metapod 120 20
12 Butterfree 45 40
13 Weedle 255 30
14 Kakuna 120 22
15 Beedrill 45 42
16 Pidgey 255 33
17 Pidgeotto 120 40
18 Pidgeot 45 50
19 Rattata 255 41
20 Raticate 127 53
21 Spearow 255 40
22 Fearow 90 55
23 Ekans 255 32
24 Arbok 90 45
25 Pikachu 190 50
26 Raichu 75 55
27 Sandshrew 255 25
28 Sandslash 90 37
29 NidoranGirl 235 25
30 Nidorina 120 33
31 Nidoqueen 45 43
32 NidoranBoy 235 30
33 Nidorino 120 37
34 Nidoking 45 47
35 Clefairy 150 22
36 Clefable 25 35
37 Vulpix 190 37
38 Ninetales 75 55
39 Jigglypuff 170 15
40 Wigglytuff 50 27
41 Zubat 255 32
42 Golbat 90 50
43 Oddish 255 20
44 Gloom 120 25
45 Vileplume 45 30
46 Paras 190 17
47 Parasect 75 20
48 Venonat 190 27
49 Venomoth 75 50
50 Diglett 255 52
51 Dugtrio 50 65
52 Meowth 255 50
53 Persian 90 62
54 Psyduck 190 32
55 Golduck 75 47
56 Mankey 190 40
57 Primeape 75 52
58 Growlithe 190 35
59 Arcanine 75 52
60 Poliwag 255 50
61 Poliwhirl 120 50
62 Poliwrath 45 40
63 Abra 200 50
64 Kadabra 100 57
65 Alakazam 50 65
66 Machop 180 22
67 Machoke 90 27
68 Machamp 45 32
69 Bellsprout 255 25
70 Weepinbell 120 32
71 Victreebel 45 40
72 Tentacool 190 40
73 Tentacruel 60 55
74 Geodude 255 15
75 Graveler 120 22
76 Golem 45 27
77 Ponyta 190 50
78 Rapidash 60 57
79 Slowpoke 190 12
80 Slowbro 75 20
81 Magnemite 190 27
82 Magneton 60 40
83 Farfetch'd 45 35
84 Doduo 190 42
85 Dodrio 45 55
86 Seel 190 27
87 Dewgong 75 40
88 Grimer 190 17
89 Muk 75 30
90 Shellder 190 25
91 Cloyster 60 40
92 Gastly 190 45
93 Haunter 90 52
94 Gengar 45 60
95 Onix 45 40
96 Drowzee 190 26
97 Hypno 75 38
98 Krabby 225 30
99 Kingler 60 42
100 Voltorb 190 55
101 Electrode 60 75
102 Exeggcute 90 25
103 Exeggutor 45 32
104 Cubone 190 22
105 Marowak 75 27
106 Hitmonlee 45 48
107 Hitmonchan 45 43
108 Lickitung 45 20
109 Koffing 190 22
110 Weezing 60 35
111 Rhyhorn 120 17
112 Rhydon 60 25
113 Chansey 30 30
114 Tangela 45 35
115 Kangaskhan 45 50
116 Horsea 225 35
117 Seadra 75 47
118 Goldeen 225 36
119 Seaking 60 39
120 Staryu 225 47
121 Starmie 60 62
122 Mr. Mime 45 50
123 Scyther 45 57
124 Jynx 45 52
125 Electabuzz 45 57
126 Magmar 45 51
127 Pinsir 45 47
128 Tauros 45 60
129 Magikarp 255 45
130 Gyarados 45 45
131 Lapras 45 35
132 Ditto 35 29
133 Eevee 45 32
134 Vaporeon 45 37
135 Jolteon 45 70
136 Flareon 45 37
137 Porygon 45 25
138 Omanyte 45 22
139 Omastar 45 32
140 Kabuto 45 32
141 Kabutops 45 45
142 Aerodactyl 45 70
143 Snorlax 25 20
144 Articuno 3 47
145 Zapdos 3 55
146 Moltres 3 50
147 Dratini 45 30
148 Dragonair 45 40
149 Dragonite 45 45
150 Mewtwo 3 70
151 Mew 45 55

__MACOSX/hw12-2/._pokedex.csv

hw12-2/sprites/21.gif

__MACOSX/hw12-2/sprites/._21.gif

hw12-2/sprites/35.gif

__MACOSX/hw12-2/sprites/._35.gif

hw12-2/sprites/108.gif

__MACOSX/hw12-2/sprites/._108.gif

hw12-2/sprites/120.gif

__MACOSX/hw12-2/sprites/._120.gif

hw12-2/sprites/134.gif

__MACOSX/hw12-2/sprites/._134.gif

hw12-2/sprites/135.gif

__MACOSX/hw12-2/sprites/._135.gif

hw12-2/sprites/121.gif

__MACOSX/hw12-2/sprites/._121.gif

hw12-2/sprites/109.gif

__MACOSX/hw12-2/sprites/._109.gif

hw12-2/sprites/34.gif

__MACOSX/hw12-2/sprites/._34.gif

hw12-2/sprites/20.gif

__MACOSX/hw12-2/sprites/._20.gif

hw12-2/sprites/36.gif

__MACOSX/hw12-2/sprites/._36.gif

hw12-2/sprites/22.gif

__MACOSX/hw12-2/sprites/._22.gif

hw12-2/sprites/137.gif

__MACOSX/hw12-2/sprites/._137.gif

hw12-2/sprites/123.gif

__MACOSX/hw12-2/sprites/._123.gif

hw12-2/sprites/122.gif

__MACOSX/hw12-2/sprites/._122.gif

hw12-2/sprites/136.gif

__MACOSX/hw12-2/sprites/._136.gif

hw12-2/sprites/23.gif

__MACOSX/hw12-2/sprites/._23.gif

hw12-2/sprites/37.gif

__MACOSX/hw12-2/sprites/._37.gif

hw12-2/sprites/33.gif

__MACOSX/hw12-2/sprites/._33.gif

hw12-2/sprites/27.gif

__MACOSX/hw12-2/sprites/._27.gif

hw12-2/sprites/132.gif

__MACOSX/hw12-2/sprites/._132.gif

hw12-2/sprites/126.gif

__MACOSX/hw12-2/sprites/._126.gif

hw12-2/sprites/127.gif

__MACOSX/hw12-2/sprites/._127.gif

hw12-2/sprites/133.gif

__MACOSX/hw12-2/sprites/._133.gif

hw12-2/sprites/26.gif

__MACOSX/hw12-2/sprites/._26.gif

hw12-2/sprites/32.gif

__MACOSX/hw12-2/sprites/._32.gif

hw12-2/sprites/18.gif

__MACOSX/hw12-2/sprites/._18.gif

hw12-2/sprites/24.gif

__MACOSX/hw12-2/sprites/._24.gif

hw12-2/sprites/30.gif

__MACOSX/hw12-2/sprites/._30.gif

hw12-2/sprites/125.gif

__MACOSX/hw12-2/sprites/._125.gif

hw12-2/sprites/131.gif

__MACOSX/hw12-2/sprites/._131.gif

hw12-2/sprites/119.gif

__MACOSX/hw12-2/sprites/._119.gif

hw12-2/sprites/118.gif

__MACOSX/hw12-2/sprites/._118.gif

hw12-2/sprites/130.gif

__MACOSX/hw12-2/sprites/._130.gif

hw12-2/sprites/124.gif

__MACOSX/hw12-2/sprites/._124.gif

hw12-2/sprites/31.gif

__MACOSX/hw12-2/sprites/._31.gif

hw12-2/sprites/25.gif

__MACOSX/hw12-2/sprites/._25.gif

hw12-2/sprites/19.gif

__MACOSX/hw12-2/sprites/._19.gif

hw12-2/sprites/42.gif

__MACOSX/hw12-2/sprites/._42.gif

hw12-2/sprites/56.gif

__MACOSX/hw12-2/sprites/._56.gif

hw12-2/sprites/4.gif

__MACOSX/hw12-2/sprites/._4.gif

hw12-2/sprites/81.gif

__MACOSX/hw12-2/sprites/._81.gif

hw12-2/sprites/95.gif

__MACOSX/hw12-2/sprites/._95.gif

hw12-2/sprites/143.gif

__MACOSX/hw12-2/sprites/._143.gif

hw12-2/sprites/142.gif

__MACOSX/hw12-2/sprites/._142.gif

hw12-2/sprites/94.gif

__MACOSX/hw12-2/sprites/._94.gif

hw12-2/sprites/80.gif

__MACOSX/hw12-2/sprites/._80.gif

hw12-2/sprites/57.gif

__MACOSX/hw12-2/sprites/._57.gif

hw12-2/sprites/5.gif

__MACOSX/hw12-2/sprites/._5.gif

hw12-2/sprites/43.gif

__MACOSX/hw12-2/sprites/._43.gif

hw12-2/sprites/7.gif

__MACOSX/hw12-2/sprites/._7.gif

hw12-2/sprites/55.gif

__MACOSX/hw12-2/sprites/._55.gif

hw12-2/sprites/41.gif

__MACOSX/hw12-2/sprites/._41.gif

hw12-2/sprites/69.gif

__MACOSX/hw12-2/sprites/._69.gif

hw12-2/sprites/96.gif

__MACOSX/hw12-2/sprites/._96.gif

hw12-2/sprites/82.gif

__MACOSX/hw12-2/sprites/._82.gif

hw12-2/sprites/140.gif

__MACOSX/hw12-2/sprites/._140.gif

hw12-2/sprites/safari_ball.gif

__MACOSX/hw12-2/sprites/._safari_ball.gif

hw12-2/sprites/141.gif

__MACOSX/hw12-2/sprites/._141.gif

hw12-2/sprites/83.gif

__MACOSX/hw12-2/sprites/._83.gif

hw12-2/sprites/97.gif

__MACOSX/hw12-2/sprites/._97.gif

hw12-2/sprites/68.gif

__MACOSX/hw12-2/sprites/._68.gif

hw12-2/sprites/40.gif

__MACOSX/hw12-2/sprites/._40.gif

hw12-2/sprites/6.gif

__MACOSX/hw12-2/sprites/._6.gif

hw12-2/sprites/54.gif

__MACOSX/hw12-2/sprites/._54.gif

hw12-2/sprites/78.gif

__MACOSX/hw12-2/sprites/._78.gif

hw12-2/sprites/50.gif

__MACOSX/hw12-2/sprites/._50.gif

hw12-2/sprites/2.gif

__MACOSX/hw12-2/sprites/._2.gif

hw12-2/sprites/44.gif

__MACOSX/hw12-2/sprites/._44.gif

hw12-2/sprites/151.gif

__MACOSX/hw12-2/sprites/._151.gif

hw12-2/sprites/145.gif

__MACOSX/hw12-2/sprites/._145.gif

hw12-2/sprites/93.gif

__MACOSX/hw12-2/sprites/._93.gif

hw12-2/sprites/87.gif

__MACOSX/hw12-2/sprites/._87.gif

hw12-2/sprites/86.gif

__MACOSX/hw12-2/sprites/._86.gif

hw12-2/sprites/92.gif

__MACOSX/hw12-2/sprites/._92.gif

hw12-2/sprites/144.gif

__MACOSX/hw12-2/sprites/._144.gif

hw12-2/sprites/150.gif

__MACOSX/hw12-2/sprites/._150.gif

hw12-2/sprites/45.gif

__MACOSX/hw12-2/sprites/._45.gif

hw12-2/sprites/51.gif

__MACOSX/hw12-2/sprites/._51.gif

hw12-2/sprites/3.gif

__MACOSX/hw12-2/sprites/._3.gif

hw12-2/sprites/79.gif

__MACOSX/hw12-2/sprites/._79.gif

hw12-2/sprites/47.gif

__MACOSX/hw12-2/sprites/._47.gif

hw12-2/sprites/1.gif

__MACOSX/hw12-2/sprites/._1.gif

hw12-2/sprites/53.gif

__MACOSX/hw12-2/sprites/._53.gif

hw12-2/sprites/146.gif

__MACOSX/hw12-2/sprites/._146.gif

hw12-2/sprites/84.gif

__MACOSX/hw12-2/sprites/._84.gif

hw12-2/sprites/90.gif

__MACOSX/hw12-2/sprites/._90.gif

hw12-2/sprites/91.gif

__MACOSX/hw12-2/sprites/._91.gif

hw12-2/sprites/85.gif

__MACOSX/hw12-2/sprites/._85.gif

hw12-2/sprites/147.gif

__MACOSX/hw12-2/sprites/._147.gif

hw12-2/sprites/52.gif

__MACOSX/hw12-2/sprites/._52.gif

hw12-2/sprites/46.gif

__MACOSX/hw12-2/sprites/._46.gif

hw12-2/sprites/63.gif

__MACOSX/hw12-2/sprites/._63.gif

hw12-2/sprites/77.gif

__MACOSX/hw12-2/sprites/._77.gif

hw12-2/sprites/88.gif

__MACOSX/hw12-2/sprites/._88.gif

hw12-2/sprites/89.gif

__MACOSX/hw12-2/sprites/._89.gif

hw12-2/sprites/76.gif

__MACOSX/hw12-2/sprites/._76.gif

hw12-2/sprites/62.gif

__MACOSX/hw12-2/sprites/._62.gif

hw12-2/sprites/74.gif

__MACOSX/hw12-2/sprites/._74.gif

hw12-2/sprites/60.gif

__MACOSX/hw12-2/sprites/._60.gif

hw12-2/sprites/48.gif

__MACOSX/hw12-2/sprites/._48.gif

hw12-2/sprites/149.gif

__MACOSX/hw12-2/sprites/._149.gif

hw12-2/sprites/148.gif

__MACOSX/hw12-2/sprites/._148.gif

hw12-2/sprites/49.gif

__MACOSX/hw12-2/sprites/._49.gif

hw12-2/sprites/61.gif

__MACOSX/hw12-2/sprites/._61.gif

hw12-2/sprites/75.gif

__MACOSX/hw12-2/sprites/._75.gif

hw12-2/sprites/59.gif

__MACOSX/hw12-2/sprites/._59.gif

hw12-2/sprites/71.gif

__MACOSX/hw12-2/sprites/._71.gif

hw12-2/sprites/65.gif

__MACOSX/hw12-2/sprites/._65.gif

hw12-2/sprites/64.gif

__MACOSX/hw12-2/sprites/._64.gif

hw12-2/sprites/70.gif

__MACOSX/hw12-2/sprites/._70.gif

hw12-2/sprites/58.gif

__MACOSX/hw12-2/sprites/._58.gif

hw12-2/sprites/8.gif

__MACOSX/hw12-2/sprites/._8.gif

hw12-2/sprites/66.gif

__MACOSX/hw12-2/sprites/._66.gif

hw12-2/sprites/72.gif

__MACOSX/hw12-2/sprites/._72.gif

hw12-2/sprites/99.gif

__MACOSX/hw12-2/sprites/._99.gif

hw12-2/sprites/98.gif

__MACOSX/hw12-2/sprites/._98.gif

hw12-2/sprites/73.gif

__MACOSX/hw12-2/sprites/._73.gif

hw12-2/sprites/67.gif

__MACOSX/hw12-2/sprites/._67.gif

hw12-2/sprites/9.gif

__MACOSX/hw12-2/sprites/._9.gif

hw12-2/sprites/14.gif

__MACOSX/hw12-2/sprites/._14.gif

hw12-2/sprites/28.gif

__MACOSX/hw12-2/sprites/._28.gif

hw12-2/sprites/129.gif

__MACOSX/hw12-2/sprites/._129.gif

hw12-2/sprites/101.gif

__MACOSX/hw12-2/sprites/._101.gif

hw12-2/sprites/115.gif

__MACOSX/hw12-2/sprites/._115.gif

hw12-2/sprites/114.gif

__MACOSX/hw12-2/sprites/._114.gif

hw12-2/sprites/100.gif

__MACOSX/hw12-2/sprites/._100.gif

hw12-2/sprites/128.gif

__MACOSX/hw12-2/sprites/._128.gif

hw12-2/sprites/29.gif

__MACOSX/hw12-2/sprites/._29.gif

hw12-2/sprites/15.gif

__MACOSX/hw12-2/sprites/._15.gif

hw12-2/sprites/17.gif

__MACOSX/hw12-2/sprites/._17.gif

hw12-2/sprites/116.gif

__MACOSX/hw12-2/sprites/._116.gif

hw12-2/sprites/102.gif

__MACOSX/hw12-2/sprites/._102.gif

hw12-2/sprites/103.gif

__MACOSX/hw12-2/sprites/._103.gif

hw12-2/sprites/117.gif

__MACOSX/hw12-2/sprites/._117.gif

hw12-2/sprites/16.gif

__MACOSX/hw12-2/sprites/._16.gif

hw12-2/sprites/12.gif

__MACOSX/hw12-2/sprites/._12.gif

hw12-2/sprites/113.gif

__MACOSX/hw12-2/sprites/._113.gif

hw12-2/sprites/_DS_Store

__MACOSX/hw12-2/sprites/.__DS_Store

hw12-2/sprites/107.gif

__MACOSX/hw12-2/sprites/._107.gif

hw12-2/sprites/106.gif

__MACOSX/hw12-2/sprites/._106.gif

hw12-2/sprites/112.gif

__MACOSX/hw12-2/sprites/._112.gif

hw12-2/sprites/13.gif

__MACOSX/hw12-2/sprites/._13.gif

hw12-2/sprites/39.gif

__MACOSX/hw12-2/sprites/._39.gif

hw12-2/sprites/11.gif

__MACOSX/hw12-2/sprites/._11.gif

hw12-2/sprites/104.gif

__MACOSX/hw12-2/sprites/._104.gif

hw12-2/sprites/110.gif

__MACOSX/hw12-2/sprites/._110.gif

hw12-2/sprites/138.gif

__MACOSX/hw12-2/sprites/._138.gif

hw12-2/sprites/139.gif

__MACOSX/hw12-2/sprites/._139.gif

hw12-2/sprites/111.gif

__MACOSX/hw12-2/sprites/._111.gif

hw12-2/sprites/105.gif

__MACOSX/hw12-2/sprites/._105.gif

hw12-2/sprites/10.gif

__MACOSX/hw12-2/sprites/._10.gif

hw12-2/sprites/38.gif

__MACOSX/hw12-2/sprites/._38.gif

__MACOSX/hw12-2/._sprites

hw12-2/hw12.py

import tkinter as tk import random #FIRST: Implement and test your Pokemon class below class Pokemon: print("Implement this and then remove this print statement") #NEXT: Complete the class definition provided below class SafariSimulator(tk.Frame): def __init__(self, master=None): print("In SafariSimulator init") #Read in the data file from pokedex.csv at some point here #It's up to you how you store and handle the data #(e.g., list, dictionary, etc.), #but you must use your Pokemon class in some capacity #Initialize any instance variables you want to keep track of #DO NOT MODIFY: These lines set window parameters and create widgets tk.Frame.__init__(self, master) master.minsize(width=275, height=350) master.maxsize(width=275, height=350) master.title("Safari Zone Simulator") self.pack() self.createWidgets() #Call nextPokemon() method here to initialize your first random pokemon def createWidgets(self): print("In createWidgets") #See the image in the instructions for the general layout required #"Run Away" button has been completed for you as an example: self.runButton = tk.Button(self) self.runButton["text"] = "Run Away" self.runButton["command"] = self.nextPokemon self.runButton.pack() #You need to create an additional "throwButton" #A label for status messages has been completed for you as an example: self.messageLabel = tk.Label(bg="grey") self.messageLabel.pack(fill="x", padx=5, pady=5) #You need to create two additional labels: #Complete and pack the pokemonImageLabel here. #Complete and pack the catchProbLabel here. def nextPokemon(self): print("In nextPokemon") #This method must: #Choose a random pokemon #Get the info for the appropriate pokemon #Ensure text in messageLabel and catchProbLabel matches the pokemon #Change the pokemonImageLabel to show the right pokemon #Hint: to see how to create an image, look at the documentation #for the PhotoImage/Label classes in tkinter. #Once you generate a PhotoImage object, it can be displayed #by setting self.pokemonImageLabel["image"] to it #Note: the PhotoImage object MUST be stored as an instance #variable for some object (you can just set it to self.photo). #Not doing this will, for weird memory reasons, cause the image #to not be displayed. def throwBall(self): print("In throwBall") #This method must: #Decrement the number of balls remaining #Try to catch the pokemon #Check to see if endAdventure() should be called #To determine whether or not a pokemon is caught, generate a random #number between 0 and 1, using random.random(). If this number is #less than min((catchRate+1), 151) / 449.5, then it is caught. #catchRate is the integer in the Catch Rate column in pokedex.csv, #for whatever pokemon is being targetted. #Don't forget to update the throwButton's text to reflect one #less Safari Ball (even if the pokemon is not caught, it still #wastes a ball). #If the pokemon is not caught, you must change the messageLabel #text to "Aargh! It escaped!" #Don't forget to call nextPokemon to generate a new pokemon #if this one is caught. def endAdventure(self): print("In endAdventure") #This method must: #Display adventure completion message #List captured pokemon #Hint: to remove a widget from the layout, you can call the #pack_forget() method. #For example, self.pokemonImageLabel.pack_forget() removes #the pokemon image. #DO NOT MODIFY: These lines start your app app = SafariSimulator(tk.Tk()) app.mainloop()

__MACOSX/hw12-2/._hw12.py

__MACOSX/._hw12-2