Question: import tkinter as tk from tkinter import messagebox import pandas as pd import random # Read the Pok mon dataset df = pd . read
import tkinter as tk
from tkinter import messagebox
import pandas as pd
import random
# Read the Pokmon dataset
df pdreadcsvpokemoncsv
pokemonlist Bulbasaur 'Ivysaur', 'Venusaur', 'Charmander', 'Charmeleon', 'Charizard', 'Squirtle',
'Wartortle', 'Blastoise', 'Caterpie', 'Metapod', 'Butterfree', 'Weedle', 'Kakuna', 'Beedrill',
'Pidgey', 'Pidgeotto', 'Pidgeot'
df dfdfNameisinpokemonlist
df dfrenamecolumnsType : 'Element'
df dfName 'Element', HP 'Attack'
dfresetindexdropTrue, inplaceTrue
# Function to calculate damage
def calculatedamageattackerattack, defenderhp iselemental, isstronger:
if iselemental and isstronger:
damage random.randintint attackerattack attackerattack
elif iselemental:
damage random.randintint attackerattack attackerattack
else:
damage random.randintint attackerattack attackerattack
return mindamage defenderhp
# Function to handle attacks
def attackattacker defender, elemental:
attackerinfo dflocdfName attacker.get
defenderinfo dflocdfName defender.get
attackerhp attackerinfoHPvalues
attackerattack attackerinfoAttackvalues
defenderhp defenderinfoHPvalues
defenderelement defenderinfoElementvalues
iselemental elemental.get 'Elemental'
isstronger attackerelement 'Fire' and defenderelement 'Grass' or
attackerelement 'Water' and defenderelement 'Fire' or
attackerelement 'Grass' and defenderelement 'Water'
damage calculatedamageattackerattack defenderhp iselemental, isstronger
defenderhp damage
return defenderhp
# Function to handle player turns
def playerturnplayernum:
global playerscore, playerscore
if playernum :
playerbtnconfigstate'disabled'
playerbtnconfigstate'active'
playerscore
playerscorelabel.configtextfPlayer Score: playerscore
else:
playerbtnconfigstate'disabled'
playerbtnconfigstate'active'
if playerscore :
playerscore
playerscorelabel.configtextfPlayer Score: playerscore
if playerscore :
messagebox.showinfoWin "Player Won! Now you can analyze players performance."
return
# Function to handle attacks
def performattack:
global playerhp playerhp
if playerhpget:
messagebox.showinfoLose fplayerselection.get lost! Player chooses a pokemon and player gets evolved!"
# Code to evolve player
elif playerhpget:
messagebox.showinfoLose fplayerselection.get lost! Player chooses a pokemon and player gets evolved!"
# Code to evolve player
else:
if playerbtnstate 'active':
playerhpsetattackplayerselection, playerselection, attacktype
playerturn
else:
playerhpsetattackplayerselection, playerselection, attacktype
playerturn
# Initialize Tkinter
root tkTk
root.titlePokmon Battle"
# Initialize player scores
playerscore
playerscore
# Initialize player HP
playerhp tkIntVar
playerhpset # Assuming HP for a level Pokmon
playerhp tkIntVar
playerhpset
# Initialize attack type
attacktype tkStringVar
attacktype.setPhysical
# Player selection
playerlabel tkLabelroot text"Player
playerlabel.gridrow column
playerselection tkStringVar
playerlistbox tkListboxroot height selectmode'single'
for pokemon in pokemonlist:
playerlistbox.inserttkEND, pokemon
playerlistbox.gridrow column
playerimagelabel tkLabelroot text"Image Placeholder"
playerimagelabel.gridrow column
playerchoosebtn tkButtonroot text"Choose", commandplayerturn
playerchoosebtngridrow column
# Player selection
playerlabel tkLabelroot text"Player
playerlabel.gridrow column
playerselection tkStringVar
playerlistbox tkListboxroot height selectmode'single'
for pokemon in pokemonlist:
playerlistbox.inserttkEND, pokemon
playerlistbox.gridrow column
playerimagelabel tkLabelroot text"Image Placeholder"
playerimagelabel.gridrow column
playerchoosebtn tkButtonroot text"Choose", commandplayerturn
playerchoosebtngridrow column
the gui should be same as this photo
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
