On 10/11/14 20:57, [email protected] wrote:

I wrote the following code as a simulation for the table top game
x-wing.

I don;t know it so can only give some general comments below...

import random
print("X-wing dice simulator")
x = int(input("How many dice will the offensive player be rolling?\n"))
y = int(input("How many dice will the defensive player be rolling?\n"))

Might be better to use more descriptive names like 'offense_turns'
and defense_turns'?

hits = 0
crits = 0
dodges = 0
offense = 0
defense = 0

while offense < x:
     odie = random.randint(1,8)

Is it really an 8 sided dice?

     if odie <= 4:
         hits = hits + 1
         offense = offense + 1
     if odie == 4:
         crits = crits + 1
         offense = offense + 1
     else:
         continue

You don't need the else: continue, the loop does that by itself.
Also by not incrementing the offense counter you effectively let the player have unlimited misses - is that really what you want?

Finally, the Pythonic idiom for incrementing a counter, n, is

n += 1

It saves a few keystrokes...

while defense < y:
     ddie = random.randint(1,8)
     if ddie <= 3:
         dodges = dodges + 1
         defense = defense + 1
     else:
         continue

Same comments as above

To help you debug this it might be worth adding a few print statements inside the loop, like so:

while offense < x:
   odie = random.randint(1,8)
   print('odie is: ',odie)
   if odie <= 4:
       hits = hits + 1
       offense = offense + 1
       print('hits, offense = ',hits,offense)

print("The offensive player lands", hits,"hits and", crits,"crits\n")
print("The defensive player dodges", dodges, "hits\n")
print("The offensive player deals", int((hits + crits) - dodges), "to
the defensive player")

Doing all the printing after the loop finishes gives you a
very limited view of what's happening inside.

hth
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to