Type Handling: Type effectiveness is managed through a dictionary for better scalability.
Experience and Leveling: Added experience gain and leveling up mechanism to make battles more engaging.
Error Handling: Improved user input handling for move selection.
Health Calculation: Made the health bar calculation more robust.
Dynamic Opponent Moves: Opponents now choose moves randomly to simulate more realistic battles.
Type Handling: Type effectiveness is managed through a dictionary for better scalability. Experience and Leveling: Added experience gain and leveling up mechanism to make battles more engaging. Error Handling: Improved user input handling for move selection. Health Calculation: Made the health bar calculation more robust. Dynamic Opponent Moves: Opponents now choose moves randomly to simulate more realistic battles.