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 | #!/usr/bin/python2.6 #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() #frames/s setting #FPS = 1 #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')] 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 'total_score set to 0' elif( dice[0] == 1 or dice[1] ==1): self.round_score = 0 self.turn = False print 'round_score set to 0' else: self.round_score += (dice[0]+dice[1]) self.turn = True print 'round_score = %s' %(self.round_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 >= 100): 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 #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): #if a winner is found. break the loop if(player1.winner()): game_state = False break #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) #determines when the player's next turn will be if (player1.check_turn()): #check status of current player's 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(player2.winner()): game_state = False break if(option.lower() == 'roll'): roll = player2.roll_dice() print 'roll[0], roll[1] =', roll[0], ' ', roll[1] player2.check_dice_status(roll) if (player2.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' |
IyEvdXNyL2Jpbi9weXRob24yLjYKIAojdHJ5IGV4Y2VwdGlvbiBjaGVja2luZyBpbXBvcnRlZCBtb2R1bGVzIGFyZSBsb2FkZWQKdHJ5OgogICAgICAgICNpbXBvcnQgcHlnYW1lCiAgICAgICAgI2Zyb20gcHlnYW1lLmxvY2FscyBpbXBvcnQgKgogICAgICAgIGltcG9ydCByYW5kb20KICAgICAgICAjaW1wb3J0IHRpbWUKZXhjZXB0IEltcG9ydEVycm9yLCBlcnI6CiAgICAgICAgcHJpbnQgIiBUaGUgbW9kdWxlICVzIGZhaWxlZCB0byBsb2FkIiAlKGVycikKICAgICAgICBleGl0KDEpCiAKI3B5Z2FtZS5pbml0KCkKIAojZnJhbWVzL3Mgc2V0dGluZwojRlBTID0gMQogCiNjcmVhdGUgb2JqZWN0IHRvIHRyYWNrIHRpbWUKI3RpbWVyID0gcHlnYW1lLnRpbWUuQ2xvY2soKQogCiNzZXQgc2NyZWVuCiNzY3JlZW4gPSBweWdhbWUuZGlzcGxheS5zZXRfbW9kZSgoNTAwLDMwMCkpCiNweWdhbWUuZGlzcGxheS5zZXRfY2FwdGlvbignVGhlIEdhbWUgb2YgUGlnICgyIGRpY2UpJykKIAojYmFja2dyb3VuZCA9IHB5Z2FtZS5TdXJmYWNlKHNjcmVlbi5nZXRfc2l6ZSgpKQojYmFja2dyb3VuZCA9IGJhY2tncm91bmQuY29udmVydCgpCiNiYWNrZ3JvdW5kLmZpbGwoKDI1MCwyNTAsMjUwKSkKI2Nsb2NrID0gcHlnYW1lLnRpbWUuQ2xvY2soKQogCiNsb2FkIGltYWdlcyBvZiBkaWNlIGZhY2VzICgxLTYpCiNESUUxID0gW3B5Z2FtZS5pbWFnZS5sb2FkKCdGYWNlLTEucG5nJykscHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtMi5wbmcnKSwKICAgICAgICBweWdhbWUuaW1hZ2UubG9hZCgnRmFjZS0zLnBuZycpLHB5Z2FtZS5pbWFnZS5sb2FkKCdGYWNlLTQucG5nJyksCiAgICAgICAgcHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtNS5wbmcnKSxweWdhbWUuaW1hZ2UubG9hZCgnRmFjZS02LnBuZycpXQogCiNESUUyID0gW3B5Z2FtZS5pbWFnZS5sb2FkKCdGYWNlLTEucG5nJykscHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtMi5wbmcnKSwKICAgICAgICBweWdhbWUuaW1hZ2UubG9hZCgnRmFjZS0zLnBuZycpLHB5Z2FtZS5pbWFnZS5sb2FkKCdGYWNlLTQucG5nJyksCiAgICAgICAgcHlnYW1lLmltYWdlLmxvYWQoJ0ZhY2UtNS5wbmcnKSxweWdhbWUuaW1hZ2UubG9hZCgnRmFjZS02LnBuZycpXQogCmNsYXNzIGdhbWUoKToKICAgICAgICAjSW5pdGlhbGl6ZSB2YXJpYWJsZXMgdG8gMCBhbmQgdHJ1ZS4gRnJlc2ggKG5ldykgcGxheWVyCiAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICAgICAgICAgc2VsZi5yb3VuZF9zY29yZSA9IDAKICAgICAgICAgICAgICAgIHNlbGYudG90YWxfc2NvcmUgPSAwCiAgICAgICAgICAgICAgICBzZWxmLnR1cm4gPSBUcnVlCiAKICAgICAgICAjZnVuY3Rpb24gdG8gcm9sbCB0aGUgMiBkaWNlLiBzZXQgdHVybiB0byB0cnVlLgogICAgICAgICNyZXR1cm4gZGljZSBhcyBhIHR1cGxlCiAgICAgICAgZGVmIHJvbGxfZGljZShzZWxmKToKICAgICAgICAgICAgICAgIHNlbGYudHVybiA9IFRydWUKICAgICAgICAgICAgICAgIHJldHVybiAocmFuZG9tLnJhbmRpbnQoMSw2KSwgcmFuZG9tLnJhbmRpbnQoMSw2KSkKIAogICAgICAgICNmdW5jdGlvbiB0byBob2xkLiBBZGQgcGxheWVyJ3MgY3VycmVudCByb3VuZCBzY29yZSB0byB0b3RhbCBzY29yZQogICAgICAgICNzZXQgdHVybiB0byBmYWxzZS4gaW5kaWNhdGluZyBuZXh0IHBsYXllcidzIHR1cm4KICAgICAgICBkZWYgaG9sZF9kaWNlKHNlbGYpOgogICAgICAgICAgICAgICAgc2VsZi50b3RhbF9zY29yZSArPSBzZWxmLnJvdW5kX3Njb3JlCiAgICAgICAgICAgICAgICBzZWxmLnJvdW5kX3Njb3JlID0gMAogICAgICAgICAgICAgICAgc2VsZi50dXJuID0gRmFsc2UKICAgICAgICAgICAgICAgIHByaW50ICdob2xkOlxudG90YWxfc2NvcmUgPSAlcycgJShzZWxmLnRvdGFsX3Njb3JlKQogCiAgICAgICAgI2Z1bmN0aW9uIHRvIGRldGVybWluZToKICAgICAgICAjMS5laXRoZXIgZGllIGlzIDEgaWYgc28gcm91bmQgc2NvcmUgc2V0IHRvIDAgYW5kIHR1cm4gb3ZlcgogICAgICAgICMyLmJvdGggZGljZSBhcmUgMSB0b3RhbCBzY29yZSBzZXQgdG8gMCBhbmQgdHVybiBvdmVyCiAgICAgICAgZGVmIGNoZWNrX2RpY2Vfc3RhdHVzKHNlbGYsIGRpY2UpOgogICAgICAgICAgICAgICAgaWYoIGRpY2VbMF0gPT0gMSBhbmQgZGljZVsxXSA9PSAxKToKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yb3VuZF9zY29yZSwgc2VsZi50b3RhbF9zY29yZSA9IDAsMAogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnR1cm4gPSBGYWxzZQogICAgICAgICAgICAgICAgICAgICAgICBwcmludCAndG90YWxfc2NvcmUgc2V0IHRvIDAnCiAKICAgICAgICAgICAgICAgIGVsaWYoIGRpY2VbMF0gPT0gMSBvciBkaWNlWzFdID09MSk6CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucm91bmRfc2NvcmUgPSAwCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHVybiA9IEZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdyb3VuZF9zY29yZSBzZXQgdG8gMCcKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucm91bmRfc2NvcmUgKz0gKGRpY2VbMF0rZGljZVsxXSkKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50dXJuID0gVHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICBwcmludCAncm91bmRfc2NvcmUgPSAlcycgJShzZWxmLnJvdW5kX3Njb3JlKQogCiAgICAgICAgI2Z1bmN0aW9uIHRvIHJldHVybiBzdGF0dXMgb24gdHVybi4KICAgICAgICAjcmV0dXJuIHR1cm4gKHRydWUvZmFsc2UpCiAgICAgICAgZGVmIGNoZWNrX3R1cm4oc2VsZik6CiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi50dXJuCiAKICAgICAgICAjZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSB0cnVlIGlmIHBsYXllciBpcyB3aW5uZXIgZWxzZSBmYWxzZQogICAgICAgIGRlZiB3aW5uZXIoc2VsZik6CiAgICAgICAgICAgICAgICBpZihzZWxmLnRvdGFsX3Njb3JlID49IDEwMCk6CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAojY3JlYXRlIG9iamVjdHMgb2YgdGhlIGNsYXNzIGdhbWUsIHdoaWNoIGlzIHRoZSBydWxlcwpwbGF5ZXIxLCBwbGF5ZXIyID0gZ2FtZSgpLCBnYW1lKCkKIAojcGljayBhIHBsYXllciB0byBnbyBmaXJzdCByYW5kb21seQpwbGF5ZXJfdHVybiA9cmFuZG9tLnJhbmRpbnQoMSwyKQpwcmludCAnUGxheWVyICVzIGdvZXMgZmlyc3QnICUocGxheWVyX3R1cm4pCiAKI3dheSB0byBzdG9wIGxvb3AKZ2FtZV9zdGF0ZSA9IFRydWUKIAp3aGlsZShnYW1lX3N0YXRlKTojZ2FtZSBsb29wCiAgICAgICAgI3ByaW50IHdoaWNoIHBsYXllcidzIHR1cm4gaXQgaXMKICAgICAgICBwcmludCAnXG5QbGF5ZXIlcyA6JyAlKHBsYXllcl90dXJuKQogICAgICAgIG9wdGlvbiA9IHJhd19pbnB1dCgnUm9sbCBvciBIb2xkPyAnKQogICAgICAgIAogICAgICAgICNpZiBwbGF5ZXIgMSBkbyBiZWxvdyBjb21tYW5kcywgZWxzZSBwbGF5ZXIgMgogICAgICAgIGlmKHBsYXllcl90dXJuID09IDEpOgogCiAgICAgICAgICAgICAgICAjaWYgYSB3aW5uZXIgaXMgZm91bmQuIGJyZWFrIHRoZSBsb29wCiAgICAgICAgICAgICAgICBpZihwbGF5ZXIxLndpbm5lcigpKToKICAgICAgICAgICAgICAgICAgICAgICAgZ2FtZV9zdGF0ZSA9IEZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAjMSBvZiAyIGNvbW1hbmRzLCBST0xMLiBDaGVjayBkaWNlIHN0YXR1cyB0byBkZXRlcm1pbmUgaWYgdGhlaXIgc2NvcmUgaGFzIGRpbWluaXNoZWQgb3IgYWRkZWQgb250bwogICAgICAgICAgICAgICAgaWYob3B0aW9uLmxvd2VyKCkgPT0gJ3JvbGwnKToKIAogICAgICAgICAgICAgICAgICAgICAgICAjcm9sbCBjb250YWlucyBhIHR1cGxlIG9mIHRoZSByYW5kb20gbnVtYmVyKGRpY2Ugcm9sbCkKICAgICAgICAgICAgICAgICAgICAgICAgcm9sbCA9IHBsYXllcjEucm9sbF9kaWNlKCkKIAogICAgICAgICAgICAgICAgICAgICAgICAjZGlzcGxheSB0aGVpciByb2xscwogICAgICAgICAgICAgICAgICAgICAgICBwcmludCAncm9sbFswXSwgcm9sbFsxXSA9JywgIHJvbGxbMF0sICcgJywgcm9sbFsxXQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICNjaGVjayBzdGF0dXMgb2YgZGljZSwgYWRqdXN0IHNjb3JlIGFjY29yZGluZ2x5CiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllcjEuY2hlY2tfZGljZV9zdGF0dXMocm9sbCkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAjZGV0ZXJtaW5lcyB3aGVuIHRoZSBwbGF5ZXIncyBuZXh0IHR1cm4gd2lsbCBiZQogICAgICAgICAgICAgICAgICAgICAgICBpZiAocGxheWVyMS5jaGVja190dXJuKCkpOiAjY2hlY2sgc3RhdHVzIG9mIGN1cnJlbnQgcGxheWVyJ3MgdHVybgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllcl90dXJuID0gMQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllcl90dXJuID0gMgogICAgICAgICAgICAgICAgIzIgb2YgMiBjb21tYW5kcywgSE9MRC4gUGxheWVyIGhvbGRzLCBtZWFuaW5nIHJvdW5kIHNjb3JlIGlzIGFkZGVkIHRvIHRvdGFsIHNjb3JlLgogICAgICAgICAgICAgICAgI25leHQgcGxheWVyJ3MgdHVybgogICAgICAgICAgICAgICAgZWxpZihvcHRpb24ubG93ZXIoKSA9PSAnaG9sZCcpOgogICAgICAgICAgICAgICAgICAgICAgICBwbGF5ZXIxLmhvbGRfZGljZSgpCiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllcl90dXJuID0gMgogCiAgICAgICAgI3BsYXllciAyIGRvZXMgYmVsb3cgY29tbWFuZHMuIEl0ZXJhdGUgY29tbWFuZHMgZnJvbSB0b3AKICAgICAgICBlbGlmKHBsYXllcl90dXJuID09IDIpOgogCiAgICAgICAgICAgICAgICBpZihwbGF5ZXIyLndpbm5lcigpKToKICAgICAgICAgICAgICAgICAgICAgICAgZ2FtZV9zdGF0ZSA9IEZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAKICAgICAgICAgICAgICAgIGlmKG9wdGlvbi5sb3dlcigpID09ICdyb2xsJyk6CiAKICAgICAgICAgICAgICAgICAgICAgICAgcm9sbCA9IHBsYXllcjIucm9sbF9kaWNlKCkKICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ3JvbGxbMF0sIHJvbGxbMV0gPScsICByb2xsWzBdLCAnICcsIHJvbGxbMV0KICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyMi5jaGVja19kaWNlX3N0YXR1cyhyb2xsKQogCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGF5ZXIyLmNoZWNrX3R1cm4oKSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyX3R1cm4gPSAyCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyX3R1cm4gPSAxCiAgICAgICAgCiAgICAgICAgICAgICAgICBlbGlmKG9wdGlvbi5sb3dlcigpID09ICdob2xkJyk6CiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllcjIuaG9sZF9kaWNlKCkKICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyX3R1cm4gPSAxCiAKI2RlY2xhcmUgd2hpY2ggb25lIGlzIHRoZSB3aW5uZXIKaWYocGxheWVyMS53aW5uZXIoKSk6CiAgICAgICAgcHJpbnQgJ1xucGxheWVyMSBpcyB0aGUgV0lOTkVSXG4nCmVsc2U6CiAgICAgICAgcHJpbnQgJ1xucGxheWVyMiBpcyB0aGUgV0lOTkVSXG4n
-
upload with new input
-
result: Runtime error time: 0.02s memory: 4672 kB signal: -1
File "prog.py", line 33 pygame.image.load('Face-5.png'),pygame.image.load('Face-6.png')] ^ SyntaxError: invalid syntax


