At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
Hi Peter Check other messages. There was a thread sharing their nims code. At least 3 people did submit working examples. Hope this helps.
Found it, thanks. Typical, i'd not completed the while loops with the if else statements!
Clear objectives can aid in programming. The game function objectives are: there are n stones.(variable n is initiated) there are k players, (k>2) (constant k is initiated) players take turns.(there will be function take takes (k) to rotate turns) players take 1/2/3/4/5 stones in one turn.(expect input from player to change n) players play until there is a winner. (while loop until a condition) player to take last stones win.(if-else condition, n==0 to break loop)
I used a while loop for each player, both inside a bigger while loop. But i got mixed up with the logic flow and wasn't getting the ordering quite right! Thanks to looking at others programs i tidied the ends of the loops OK ! I've deliberately held myself back quite a bit, practicing different loops! (I instinctively found 'if, elif, else' , and working with string slices quite easy...But not loops!)
lol yeah, it's tough to understand them, but a general rule is to avoid loops unless you really need to go through the process repetitively. It took me sometime to remember a loop always need a breaking statement. Good luck with your other projects!
Cheers for the tip! :0)
def ask(numStones, num, player): ques = False while ques == False: if player == 1: ans = input("Player1 enter number of stones to take from pile. ") if ans >= 1 and ans <= num: ques = True else:continue if ans > numStones: return numStones else: ans = input("Player2 enter number of stones to take from pile. ") if ans >= 1 and ans <= num: ques = True else:continue if ans > numStones: return numStones return numStones - ans def play_nims(pile, max_stones): ''' An interactive two-person game; also known as Stones. @param pile: the number of stones in the pile to start @param max_stones: the maximum number of stones you can take on one turn ''' while pile != 0: while True: pile = ask(pile, max_stones, 1) if pile == 0: print "player1 WINS!" break pile = ask(pile, max_stones, 2) if pile == 0: print "player2 WINS!" break else:continue def play(): print "This is the game of stones. It is a 2 person game." print while True: reply = raw_input("Please enter an N for a new game or a . to exit the game. ") print if reply == 'N' or reply == 'n': reply1 = input("Please enter the number of stones to put in the pile. ") reply2 = input("Please enter the maximum number of stones to remove during a turn. ") print play_nims(reply1, reply2) continue else: break
A lot more comprehensive than mine!...Well done!