A community for students.
Here's the question you clicked on:
 0 viewing
anonymous
 4 years ago
Ex 2.6The game of Nims/Stones.
Could someone please show me how they did this one. I just can't figure it all out..
anonymous
 4 years ago
Ex 2.6The game of Nims/Stones. Could someone please show me how they did this one. I just can't figure it all out..

This Question is Closed

andrew.m.higgs
 4 years ago
Best ResponseYou've already chosen the best response.1Hi Peter Check other messages. There was a thread sharing their nims code. At least 3 people did submit working examples. Hope this helps.

anonymous
 4 years ago
Best ResponseYou've already chosen the best response.0Found it, thanks. Typical, i'd not completed the while loops with the if else statements!

anonymous
 4 years ago
Best ResponseYou've already chosen the best response.0Clear 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.(ifelse condition, n==0 to break loop)

anonymous
 4 years ago
Best ResponseYou've already chosen the best response.0I 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!)

anonymous
 4 years ago
Best ResponseYou've already chosen the best response.0lol 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!

anonymous
 4 years ago
Best ResponseYou've already chosen the best response.0Cheers for the tip! :0)

anonymous
 4 years ago
Best ResponseYou've already chosen the best response.0def 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 twoperson 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

anonymous
 4 years ago
Best ResponseYou've already chosen the best response.0A lot more comprehensive than mine!...Well done!
Ask your own question
Sign UpFind more explanations on OpenStudy
Your question is ready. Sign up for free to start getting answers.
spraguer
(Moderator)
5
→ View Detailed Profile
is replying to Can someone tell me what button the professor is hitting...
23
 Teamwork 19 Teammate
 Problem Solving 19 Hero
 Engagement 19 Mad Hatter
 You have blocked this person.
 ✔ You're a fan Checking fan status...
Thanks for being so helpful in mathematics. If you are getting quality help, make sure you spread the word about OpenStudy.