Ryan Strunk wrote:
Hello everyone, I am still learning to program by writing this boxing game. I'm running into a problem with how to organize data. My current setup looks something like this: """This feels incredibly disgusting to me."""
You might find it a little less disgusting with the application of some helper classes and a slightly different data format.
Combos probably should be treated as a sequence of moves. For simplicity, I'm going to assume each move takes the same time, and once a combo is entered, the opponent can't interrupt it. You may want to make it more complicated/realistic.
The hard part is deciding what fields you need. Here's my guess: class Move: def __init__(self, speed, strength, side, purpose, kind, foul=False): self.speed = speed self.strength = strength self.side = side self.purpose = purpose self.kind = kind self.foul = foul CENTRE = NEUTRAL = '' LEFT, RIGHT = 'left right'.split() ATTACK, DEFENSE = 'attack defense'.split() right_cross = Move(2, 3, RIGHT, ATTACK, 'punch') left_lead = Move(3, 4, LEFT, ATTACK, 'punch') left_jab = Move(1, 1, LEFT, ATTACK, 'punch') headbutt = Move(1, 3, CENTRE, ATTACK, 'headbutt', True) step_in = Move(2, 0, NEUTRAL, NEUTRAL, 'footwork') weave = Move(1, 0, NEUTRAL, DEFENSE, 'footwork') rabbit_punch = Move(1, 2, CENTRE, ATTACK, 'punch', True) class Combo: def __init__(self, *moves): self.moves = moves old_one_two = Combo(left_lead, right_cross) liverpool_kiss = Combo(step_in, headbutt) combos = { 1: old_one_two, 2: liverpool_kiss, 3: Combo(weave, weave, step_in, rabbit_punch), 4: Combo(left_jab, left_jab, left_jab, step_in, uppercut), } Does that help? -- Steven _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor