Write a function playnovice

Assignment Help Software Engineering
Reference no: EM13324633

Part 1
You will implement a program where the computer plays against a human opponent. The game will start with a random number of marbles between 10 and 100. A random number between 0 and 1 will be used to decide who takes the first turn (0 computer, 1 human opponent) and the human opponent has to decide whether he or she wants the computer to play in a novice or expert mode. In the novice mode the computer will always take a random number between 1 and half of the marbles that there are in the pile at the moment whenever it is its turn. In the expert mode the computer always takes enough marbles to make the number of marbles left on the pile a power of 2 minus 1 (e.g, 3, 7, 31) except if the size of the pile is already one less than the power of 2. In that case the computer will take a random number of marbles. Note that the computer will always win in expert mode if it has the first turn but also a human opponent will always win if he or she knows the winning strategy.

Part 2
Once the game has been implemented you will use it for a Nim on-line Man-Machine competition. Every time that the game is played the result of the game will be updated in a text file. The file consists of two lines: the first line stores the times that the computer has won and lost and the second line the times that any human user has won and lost. At end of the competition the winner will be displayed. To make it more realistic you can ask some of your friends to play the game without telling them the winning strategy.

Question 1
Write a function playNovice(marbles) that given the number of marbles returns a random number between 1 and half of the number of marbles.

>>> playNovice(90)

35

Test your function several times with numbers between 10 and 100

Question 2
Write a function userPlay(marbles) that asks the user for the number of marbles that he or she would like to take and returns that number. The function should keep asking the user for the number of marbles if he or she takes more than half of the marbles.

Question 3
Write a program that creates one pile of marbles with a random number of marbles and decides who starts the game. The program will call userPlay when the user plays and playNovice when it is the computer turns.

Question 4
Modify the code of question 3 so the program keeps playing until there is only one marble left and inform at the end who has won the game.

Test that the program works by displaying the output of running the program.

Question 5
Write a function playExpert(marbles) that given a number of marbles returns the number of marbles that the computer will take following the expert mode rules. The number of marbles left on the pile will be a power of 2 minus 1 (e.g, 3, 7, 31) except if the size of the pile is already one less than the power of 2. In that case the computer will return a random number of marbles.
>>> playExpert(90)
27 (if computer takes 27 there will 90-27= 63 (26-
1) marbles left )

>>playExpert(31) number of marbles a power of 2 minus 1
12
Make sure that your tests show that the function works for both cases.

Question 6
Amend the program in question 4 so the user decides whether the computer plays in novice or expert mode.

Test that the program works by showing the results of playing using the two different modes.

Question 7
Update question 6 (or question 4 if you did not manage to implement playExpert) and a create a function called gameNim() that plays the game and returns 0 if the computer lost and 1 otherwise.

Question 8
Now you have to create a list called scores that stores 4 numbers: the first two numbers are the number of win and lost games for the computer and the other two for the human opponent. Create a text file called scores.txt with notepad with two lines: the first two lines are the computer scores and the second line human scores.

Write a function called initScores to open the file and returns the list scores with the numbers in the text file.

>>initScores(scores)
[0,0,0,0]

Test it by adding numbers manually in the text file

Question 9
Now write a function updateScores(scores) that saves the information on the list scores to the text file scores.txt

Question 10
Write a program that initializes the list scores with the values in the text file scores.txt and calls the gameNim() function, once the game has finished the list scores are updated with the results. The program will play as many games as the users wants. Once the user stops playing the scores.txt file is updated. That means that if you play the games again later, the scores list will start with the values stored in the file and not with all the scores to 0

Question 11
Add a function to display who has won the competition - the machine or the human opponents

Question 12: Analysis and results
Write a report about your final implementation and the results of testing the game. You should talk about:
- Whether or not you have managed to implement the playExpert mode of the game. If you do not manage to implement it you should carry on with the rest of the questions in novice mode.
- Any errors in your program.
- The testing of the final game by displaying the results of running the final game once.
- Results of the competition you should answer questions like: how many times did you play the game? How many people try the game? What can you extract from the final results? Is it the computer better than the human opponent?

Reference no: EM13324633

Questions Cloud

Examples of effective lobbying-electioneering : What are some recent examples of effective lobbying, electioneering, building coalitions, grassroots pressure, and litigation.
Explain what minimum concentration of na2so4 is required : Consider a solution that is 1.1*10^-2 M in Ba2+ and 2.0*10^-2 M in Ca2+. A - If sodium sulfate is used to selectively precipitate one of the cations while leaving the other cation in solution, which cation will precipitate first? Ba2+ precipitates..
Find how high will the ball go : A boy throws up a ball 15m/s, how high will the ball go and what is the duration (total time) in the air from throw to catch
Define the ph at the equivalence point in the titration : What is the pH at the equivalence point in the titration of 25.00 mL of 0.020 M NH3 with 0.015 M HBr? Kb for NH3 = 1.8 x 10^-5
Write a function playnovice : Write a function userPlay(marbles) that asks the user for the number of marbles that he or she would like to take and returns that number. The function should keep asking the user for the number of marbles if he or she takes more than half of the ..
How far from the base of the cliff does the car land : A stunt man drives a car at a speed of 20 m/s off a 24-m-high cliff. The road leading to the cliff is inclined upward at an angle of 20? How far from the base of the cliff does the car land
Find out the minimum concentration of koh : Potassium hydroxide is used to precipitate each of the cations from their respective solution. Determine the minimum concentration of KOH required for precipitation to begin in each case. A - 1.4*10^-2 M CaCl2 B - 2.8*10^-3 M Fe(NO3)2 C - 1.6*10^-..
What is the smallest value can have before the string breaks : A small sphere of mass m= 7.60 g and a charge q1 = 29.9 nC is attracted to the end of a string, what is the smallest value d can have before the string breaks
What are u.s. tax consequences of hans u.s. activities : During Year 1, Hans had rental income of $300,000 and operating expenses (depreciation, interest, insurance, etc.) of $220,000. On the advice of his accountant, Hans made a Code Sec. 871(d) election in Year 1.

Reviews

Write a Review

 

Software Engineering Questions & Answers

  Draw an erd for initial entity list

Draw an ERD for initial entity list. Recognize a primary key for each entity and establish relationships as appropriate. Entity list for this purpose is as follows.

  Produce a software design specification document

Complete the template as best as you can. Make any reasonable assumptions based on your understanding of the problem that allow you to address as many sections of the SDD template as possible.

  Produce e-r diagram which documents entities

Produce an E-R diagram, which documents the entities and relationships involved in the Retail outlet of a Stationary Shop which includes sales, purchases and inventory of various stationary items etc.

  Writing a pseudocode statement

Assume myCar is the name of a class variable that references an object, and go is the name of a method. Create a pseudocode statement that uses myCar variable to call method.

  Explain synchronization problem

There is a one way bridge that can hold up to 3-cars. Cars reach at one end of bridge and exit the bridge at the other end.

  Draw an erd for the parrot palace information system

Parrot Palace works with TV and movie producers who need birds that can perform special tricks, such as playing dead, reciting poetry, ladder climbs, and various other tricks.

  Create and annotate class hierarchy for types of faculty

Create and annotate a class hierarchy to represent various types of faculty at a university. Show what characteristics would be represented in various classes of hierarchy.

  Define the term software architecture

Define the term software architecture A service is a software component of distinctive functional meaning that typically encapsulates a high-level business concept, and is usually made up of three parts. Describe the three sub-components that m..

  Finding example of source code

Discover one example of each label in the following source code and write the line number of the example next to the label.

  Describe what actions you would take and in what sequence

Describe what actions you would take and in what sequence. How would your adjustment actions differ if the person were the lead tester?

  Key drawbacks of the numbered code

Think about the flashlight-messaging (ABC=123); Determine the key drawbacks of the Numbered Code?

  Requirements to analyse-design system of sell-bike software

What are the requirements to analyse and design the system of Sell-Bike software is a SME (small to medium enterprise) company selling students bicycles.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd