1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | #!/usr/bin/python #try exception checking imported modules are loaded try: import pygame from pygame.locals import * import random import time except ImportError, err: print " The module %s failed to load" %(err) exit(1) #pygame.init() #create object to track time #timer = pygame.time.Clock() #set screen #screen = pygame.display.set_mode((500,300)) #pygame.display.set_caption('The Game of Pig (2 dice)') #background = pygame.Surface(screen.get_size()) #background = background.convert() #background.fill((250,250,250)) #clock = pygame.time.Clock() #load images of dice faces (1-6) DIE1 = [pygame.image.load('Face-1.png'),pygame.image.load('Face-2.png'), pygame.image.load('Face-3.png'),pygame.image.load('Face-4.png'), pygame.image.load('Face-5.png'),pygame.image.load('Face-6.png')] DIE2 = [pygame.image.load('Face-1.png'),pygame.image.load('Face-2.png'), pygame.image.load('Face-3.png'),pygame.image.load('Face-4.png'), pygame.image.load('Face-5.png'),pygame.image.load('Face-6.png')] set_score = 20 class game(): #Initialize variables to 0 and true. Fresh (new) player def __init__(self): self.round_score = 0 self.total_score = 0 self.turn = True #function to roll the 2 dice. set turn to true. #return dice as a tuple def roll_dice(self): self.turn = True return (random.randint(1,6), random.randint(1,6)) #function to hold. Add player's current round score to total score #set turn to false. indicating next player's turn def hold_dice(self): self.total_score += self.round_score self.round_score = 0 self.turn = False print 'hold:\ntotal_score = %s' %(self.total_score) #function to determine: #1.either die is 1 if so round score set to 0 and turn over #2.both dice are 1 total score set to 0 and turn over def check_dice_status(self, dice): if( dice[0] == 1 and dice[1] == 1): self.round_score, self.total_score = 0,0 self.turn = False print '2total_score set to 0' elif( dice[0] == 1 or dice[1] ==1): self.total_score -= self.round_score self.round_score = 0 self.turn = False print 'round_score set to 0' else: if(self.total_score >= set_score): self.turn = False #BELOW ADDED else: self.round_score += (dice[0]+dice[1]) self.total_score += self.round_score self.turn = True print 'round_score = %s' %(self.round_score) print 'total_score = %s' %(self.total_score) #function to return status on turn. #return turn (true/false) def check_turn(self): return self.turn #function that returns the true if player is winner else false def winner(self): if(self.total_score >= set_score): return True else: return False #create objects of the class game, which is the rules player1, player2 = game(), game() #pick a player to go first randomly player_turn =random.randint(1,2) print 'Player %s goes first' %(player_turn) #way to stop loop game_state = True while(game_state):#game loop #BELOW ADDED if(player1.winner() or player2.winner()): player_turn = None game_state = False break else: #print which player's turn it is print '\nPlayer%s :' %(player_turn) option = raw_input('Roll or Hold? ') #if player 1 do below commands, else player 2 if(player_turn == 1): #1 of 2 commands, ROLL. Check dice status to determine if their score has diminished or added onto if(option.lower() == 'roll'): #roll contains a tuple of the random number(dice roll) roll = player1.roll_dice() #display their rolls print 'roll[0], roll[1] =', roll[0], ' ', roll[1] #check status of dice, adjust score accordingly player1.check_dice_status(roll) #BELOW ADDED #determines when the player's next turn will be if (player1.check_turn() and player1.winner()): break elif (player1.check_turn()): player_turn = 1 else: player_turn = 2 #2 of 2 commands, HOLD. Player holds, meaning round score is added to total score. #next player's turn elif(option.lower() == 'hold'): player1.hold_dice() player_turn = 2 #player 2 does below commands. Iterate commands from top elif(player_turn == 2): if(option.lower() == 'roll'): roll = player2.roll_dice() print 'roll[0], roll[1] =', roll[0], ' ', roll[1] player2.check_dice_status(roll) #BELOW ADDED #check status of current player's turn if (player2.check_turn() and player2.winner()): break elif (player1.check_turn()): player_turn = 2 else: player_turn = 1 elif(option.lower() == 'hold'): player2.hold_dice() player_turn = 1 #declare which one is the winner if(player1.winner()): print '\nplayer1 is the WINNER\n' else: print '\nplayer2 is the WINNER\n' |
IyEvdXNyL2Jpbi9weXRob24KCiN0cnkgZXhjZXB0aW9uIGNoZWNraW5nIGltcG9ydGVkIG1vZHVsZXMgYXJlIGxvYWRlZAp0cnk6CglpbXBvcnQgcHlnYW1lCglmcm9tIHB5Z2FtZS5sb2NhbHMgaW1wb3J0ICoKCWltcG9ydCByYW5kb20KCWltcG9ydCB0aW1lCmV4Y2VwdCBJbXBvcnRFcnJvciwgZXJyOgoJcHJpbnQgIiBUaGUgbW9kdWxlICVzIGZhaWxlZCB0byBsb2FkIiAlKGVycikKCWV4aXQoMSkKCiNweWdhbWUuaW5pdCgpCgojY3JlYXRlIG9iamVjdCB0byB0cmFjayB0aW1lCiN0aW1lciA9IHB5Z2FtZS50aW1lLkNsb2NrKCkKCiNzZXQgc2NyZWVuCiNzY3JlZW4gPSBweWdhbWUuZGlzcGxheS5zZXRfbW9kZSgoNTAwLDMwMCkpCiNweWdhbWUuZGlzcGxheS5zZXRfY2FwdGlvbignVGhlIEdhbWUgb2YgUGlnICgyIGRpY2UpJykKCiNiYWNrZ3JvdW5kID0gcHlnYW1lLlN1cmZhY2Uoc2NyZWVuLmdldF9zaXplKCkpCiNiYWNrZ3JvdW5kID0gYmFja2dyb3VuZC5jb252ZXJ0KCkKI2JhY2tncm91bmQuZmlsbCgoMjUwLDI1MCwyNTApKQojY2xvY2sgPSBweWdhbWUudGltZS5DbG9jaygpCgojbG9hZCBpbWFnZXMgb2YgZGljZSBmYWNlcyAoMS02KQpESUUxID0gW3B5Z2FtZS5pbWFnZS5sb2FkKCdGYWNlLTEucG5nJykscHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtMi5wbmcnKSwKCXB5Z2FtZS5pbWFnZS5sb2FkKCdGYWNlLTMucG5nJykscHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtNC5wbmcnKSwKCXB5Z2FtZS5pbWFnZS5sb2FkKCdGYWNlLTUucG5nJykscHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtNi5wbmcnKV0KCkRJRTIgPSBbcHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtMS5wbmcnKSxweWdhbWUuaW1hZ2UubG9hZCgnRmFjZS0yLnBuZycpLAoJcHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtMy5wbmcnKSxweWdhbWUuaW1hZ2UubG9hZCgnRmFjZS00LnBuZycpLAoJcHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtNS5wbmcnKSxweWdhbWUuaW1hZ2UubG9hZCgnRmFjZS02LnBuZycpXQoKc2V0X3Njb3JlID0gMjAKCmNsYXNzIGdhbWUoKToKCSNJbml0aWFsaXplIHZhcmlhYmxlcyB0byAwIGFuZCB0cnVlLiBGcmVzaCAobmV3KSBwbGF5ZXIKCWRlZiBfX2luaXRfXyhzZWxmKToKCQlzZWxmLnJvdW5kX3Njb3JlID0gMAoJCXNlbGYudG90YWxfc2NvcmUgPSAwCgkJc2VsZi50dXJuID0gVHJ1ZQoKCSNmdW5jdGlvbiB0byByb2xsIHRoZSAyIGRpY2UuIHNldCB0dXJuIHRvIHRydWUuCgkjcmV0dXJuIGRpY2UgYXMgYSB0dXBsZQoJZGVmIHJvbGxfZGljZShzZWxmKToKCQlzZWxmLnR1cm4gPSBUcnVlCgkJcmV0dXJuIChyYW5kb20ucmFuZGludCgxLDYpLCByYW5kb20ucmFuZGludCgxLDYpKQoKCSNmdW5jdGlvbiB0byBob2xkLiBBZGQgcGxheWVyJ3MgY3VycmVudCByb3VuZCBzY29yZSB0byB0b3RhbCBzY29yZQoJI3NldCB0dXJuIHRvIGZhbHNlLiBpbmRpY2F0aW5nIG5leHQgcGxheWVyJ3MgdHVybgoJZGVmIGhvbGRfZGljZShzZWxmKToKCQlzZWxmLnRvdGFsX3Njb3JlICs9IHNlbGYucm91bmRfc2NvcmUKCQlzZWxmLnJvdW5kX3Njb3JlID0gMAoJCXNlbGYudHVybiA9IEZhbHNlCgkJcHJpbnQgJ2hvbGQ6XG50b3RhbF9zY29yZSA9ICVzJyAlKHNlbGYudG90YWxfc2NvcmUpCgoJI2Z1bmN0aW9uIHRvIGRldGVybWluZToKCSMxLmVpdGhlciBkaWUgaXMgMSBpZiBzbyByb3VuZCBzY29yZSBzZXQgdG8gMCBhbmQgdHVybiBvdmVyCgkjMi5ib3RoIGRpY2UgYXJlIDEgdG90YWwgc2NvcmUgc2V0IHRvIDAgYW5kIHR1cm4gb3ZlcgoJZGVmIGNoZWNrX2RpY2Vfc3RhdHVzKHNlbGYsIGRpY2UpOgoJCWlmKCBkaWNlWzBdID09IDEgYW5kIGRpY2VbMV0gPT0gMSk6CgkJCXNlbGYucm91bmRfc2NvcmUsIHNlbGYudG90YWxfc2NvcmUgPSAwLDAKCQkJc2VsZi50dXJuID0gRmFsc2UKCQkJcHJpbnQgJzJ0b3RhbF9zY29yZSBzZXQgdG8gMCcKCgkJZWxpZiggZGljZVswXSA9PSAxIG9yIGRpY2VbMV0gPT0xKToKCQkJc2VsZi50b3RhbF9zY29yZSAtPSBzZWxmLnJvdW5kX3Njb3JlCgkJCXNlbGYucm91bmRfc2NvcmUgPSAwCgkJCXNlbGYudHVybiA9IEZhbHNlCgkJCXByaW50ICdyb3VuZF9zY29yZSBzZXQgdG8gMCcKCQllbHNlOgoJCQlpZihzZWxmLnRvdGFsX3Njb3JlID49IHNldF9zY29yZSk6CgkJCQlzZWxmLnR1cm4gPSBGYWxzZQoJCQkjQkVMT1cgQURERUQKCQkJZWxzZToKCQkJCXNlbGYucm91bmRfc2NvcmUgKz0gKGRpY2VbMF0rZGljZVsxXSkKCQkJCXNlbGYudG90YWxfc2NvcmUgKz0gc2VsZi5yb3VuZF9zY29yZQoJCQkJc2VsZi50dXJuID0gVHJ1ZQoJCQkJcHJpbnQgJ3JvdW5kX3Njb3JlID0gJXMnICUoc2VsZi5yb3VuZF9zY29yZSkKCQkJCXByaW50ICd0b3RhbF9zY29yZSA9ICVzJyAlKHNlbGYudG90YWxfc2NvcmUpCgoJI2Z1bmN0aW9uIHRvIHJldHVybiBzdGF0dXMgb24gdHVybi4KCSNyZXR1cm4gdHVybiAodHJ1ZS9mYWxzZSkKCWRlZiBjaGVja190dXJuKHNlbGYpOgoJCXJldHVybiBzZWxmLnR1cm4KCgkjZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSB0cnVlIGlmIHBsYXllciBpcyB3aW5uZXIgZWxzZSBmYWxzZQoJZGVmIHdpbm5lcihzZWxmKToKCQlpZihzZWxmLnRvdGFsX3Njb3JlID49IHNldF9zY29yZSk6CgkJCXJldHVybiBUcnVlCgkJZWxzZToKCQkJcmV0dXJuIEZhbHNlCgojY3JlYXRlIG9iamVjdHMgb2YgdGhlIGNsYXNzIGdhbWUsIHdoaWNoIGlzIHRoZSBydWxlcwpwbGF5ZXIxLCBwbGF5ZXIyID0gZ2FtZSgpLCBnYW1lKCkKCiNwaWNrIGEgcGxheWVyIHRvIGdvIGZpcnN0IHJhbmRvbWx5CnBsYXllcl90dXJuID1yYW5kb20ucmFuZGludCgxLDIpCnByaW50ICdQbGF5ZXIgJXMgZ29lcyBmaXJzdCcgJShwbGF5ZXJfdHVybikKCiN3YXkgdG8gc3RvcCBsb29wCmdhbWVfc3RhdGUgPSBUcnVlCgp3aGlsZShnYW1lX3N0YXRlKTojZ2FtZSBsb29wCgkjQkVMT1cgQURERUQKCWlmKHBsYXllcjEud2lubmVyKCkgb3IgcGxheWVyMi53aW5uZXIoKSk6CgkJcGxheWVyX3R1cm4gPSBOb25lCQoJCWdhbWVfc3RhdGUgPSBGYWxzZQoJCWJyZWFrCgllbHNlOgoJCSNwcmludCB3aGljaCBwbGF5ZXIncyB0dXJuIGl0IGlzCgkJcHJpbnQgJ1xuUGxheWVyJXMgOicgJShwbGF5ZXJfdHVybikKCQlvcHRpb24gPSByYXdfaW5wdXQoJ1JvbGwgb3IgSG9sZD8gJykKCQoJI2lmIHBsYXllciAxIGRvIGJlbG93IGNvbW1hbmRzLCBlbHNlIHBsYXllciAyCglpZihwbGF5ZXJfdHVybiA9PSAxKToKCgkJIzEgb2YgMiBjb21tYW5kcywgUk9MTC4gQ2hlY2sgZGljZSBzdGF0dXMgdG8gZGV0ZXJtaW5lIGlmIHRoZWlyIHNjb3JlIGhhcyBkaW1pbmlzaGVkIG9yIGFkZGVkIG9udG8KCQlpZihvcHRpb24ubG93ZXIoKSA9PSAncm9sbCcpOgoKCQkJI3JvbGwgY29udGFpbnMgYSB0dXBsZSBvZiB0aGUgcmFuZG9tIG51bWJlcihkaWNlIHJvbGwpCgkJCXJvbGwgPSBwbGF5ZXIxLnJvbGxfZGljZSgpCgoJCQkjZGlzcGxheSB0aGVpciByb2xscwoJCQlwcmludCAncm9sbFswXSwgcm9sbFsxXSA9JywgIHJvbGxbMF0sICcgJywgcm9sbFsxXQoJCQoJCQkjY2hlY2sgc3RhdHVzIG9mIGRpY2UsIGFkanVzdCBzY29yZSBhY2NvcmRpbmdseQoJCQlwbGF5ZXIxLmNoZWNrX2RpY2Vfc3RhdHVzKHJvbGwpCgoJCQkjQkVMT1cgQURERUQKCQkJI2RldGVybWluZXMgd2hlbiB0aGUgcGxheWVyJ3MgbmV4dCB0dXJuIHdpbGwgYmUKCQkJaWYgKHBsYXllcjEuY2hlY2tfdHVybigpIGFuZCBwbGF5ZXIxLndpbm5lcigpKTogCgkJCQlicmVhawoJCQllbGlmIChwbGF5ZXIxLmNoZWNrX3R1cm4oKSk6CgkJCQlwbGF5ZXJfdHVybiA9IDEKCQkJZWxzZToKCQkJCXBsYXllcl90dXJuID0gMgoKCQkjMiBvZiAyIGNvbW1hbmRzLCBIT0xELiBQbGF5ZXIgaG9sZHMsIG1lYW5pbmcgcm91bmQgc2NvcmUgaXMgYWRkZWQgdG8gdG90YWwgc2NvcmUuCgkJI25leHQgcGxheWVyJ3MgdHVybgoJCWVsaWYob3B0aW9uLmxvd2VyKCkgPT0gJ2hvbGQnKToKCQkJcGxheWVyMS5ob2xkX2RpY2UoKQoJCQlwbGF5ZXJfdHVybiA9IDIKCgkjcGxheWVyIDIgZG9lcyBiZWxvdyBjb21tYW5kcy4gSXRlcmF0ZSBjb21tYW5kcyBmcm9tIHRvcAoJZWxpZihwbGF5ZXJfdHVybiA9PSAyKToKCgkJaWYob3B0aW9uLmxvd2VyKCkgPT0gJ3JvbGwnKToKCgkJCXJvbGwgPSBwbGF5ZXIyLnJvbGxfZGljZSgpCgkJCXByaW50ICdyb2xsWzBdLCByb2xsWzFdID0nLCAgcm9sbFswXSwgJyAnLCByb2xsWzFdCgkJCXBsYXllcjIuY2hlY2tfZGljZV9zdGF0dXMocm9sbCkKCgkJCSNCRUxPVyBBRERFRAoJCQkjY2hlY2sgc3RhdHVzIG9mIGN1cnJlbnQgcGxheWVyJ3MgdHVybgoJCQlpZiAocGxheWVyMi5jaGVja190dXJuKCkgYW5kIHBsYXllcjIud2lubmVyKCkpOiAKCQkJCWJyZWFrCgkJCWVsaWYgKHBsYXllcjEuY2hlY2tfdHVybigpKToKCQkJCXBsYXllcl90dXJuID0gMgoJCQllbHNlOgoJCQkJcGxheWVyX3R1cm4gPSAxCgkKCQllbGlmKG9wdGlvbi5sb3dlcigpID09ICdob2xkJyk6CgkJCXBsYXllcjIuaG9sZF9kaWNlKCkKCQkJcGxheWVyX3R1cm4gPSAxCgojZGVjbGFyZSB3aGljaCBvbmUgaXMgdGhlIHdpbm5lcgppZihwbGF5ZXIxLndpbm5lcigpKToKCXByaW50ICdcbnBsYXllcjEgaXMgdGhlIFdJTk5FUlxuJwplbHNlOgoJcHJpbnQgJ1xucGxheWVyMiBpcyB0aGUgV0lOTkVSXG4n
-
upload with new input
-
result: Runtime error time: 0.02s memory: 4676 kB signal: -1
The module No module named pygame failed to load


