Program that plays the ancient chinese game of nim

Assignment Help Programming Languages
Reference no: EM131985878

Fundamentals of Operating Systems and Programming 

Write an Algorithm/ flowchart and then convert it to a java program for given game of NIM

Purpose of the assessment (with ULO Mapping) This assignment assesses the following Unit Learning Outcomes; students should be able to demonstrate their achievements in them.

c. Apply principles of abstraction and problem solving in an object-oriented programming language

d. Apply knowledge of programming constructs in developing computer programs

e. Create programs based on incremental development processes of designing, coding, testing and debugging.

Assignment Specification

Write a detailed algorithm and a program that plays the ancient Chinese game of NIM. Actually, this is a simplified version of the game. In this game, the person who runs your program will be one of the two human players, your program will be a simple Artificial Intelligence (AI) that will serve as the other player, as well as provide the narrative for the game and keep score, invite a friend to be the third player. Your program must keep score impartially while participating in the game, but this is not a difficult task for the computer.

Rules of the Game:

- Number of participating Players: 2 students and 1 computer

- The player who goes first shall define the number of stones in the pile. The number must be between 30 to 50.

- Each player then removes some number (between 1 to 3) of stones from the pile in turn until one player removes the final stone.

- The player who goes first:

I. Provides the number of stones to be placed in the pile,

ii.Removes the first set of 1 to 3 stones

- Other player removes a set of 1 to 3 stones

- The players then take turns(iteration) until the final stone is removed.

- The player who removes the final stone is the winner (student player 1, student player 2 and the computer).

The program must perform the following:
- Use the System I/O (print (), or println()) to introduce and describe the game, Computer shall introduce itself as the AI player, and prompt the human players for his or her names along with MIT Ids.

- The program must use a Scanner object to receive the inputted response.

- The response must be assigned to a properly typed variable.

- Uses printf() to display a greeting to the human player that incorporates the name provided in response to the prompt: Welcome <user's name> to the game of Taking Stones.4 marks

- The user's name must be output in proper name case (i.e., mixed case starting with upper case for the first letter) regardless of the case the user types in.4 marks

- The users shall input the number of stones to be picked either by using a standard random number generator function or may input according to their own strategy but the number should be less than or equal to three (3).

o Java has two ways to generate random numbers
- Math. Random method from the Java API Math
- java.util.random Class and the appropriate method from that class, to generate this number for the human player

- The program must reject and display a valid message if the number of stones to be removed are either less than one(1) or more than three(3) students and remind them the game constrains.

- Prompt that player to re-enter an appropriate number.

- Your program should have the computer use the optimal playing strategy. The optimal strategy is as follows: Divide the remaining number of stones by three. If the remainder is zero, then two stones are removed, or else one stone is removed. For example, if the remaining number of stones is nine or fifteen, then two stones are removed; if the remaining number of stones is eight or ten, then one stone is removed.

- Both the human players shall have their own strategies to play.

- When one of the player has won a game, the program must output a congratulatory message naming the winner along with ID.

- Your program should allow the users to play additional games of NIM as long as he/she enters a "y" or "yes" (lowercase or uppercase) in response to a "Do you want to play again?" prompt.

Verified Expert

In this assignment we have develop nim chines game.We have use java programming for develop NIM game.In this game, there are three player 1st is computer and another 2 are human .Every one pick the stone from given stone .At last who pick the last stone will be winner.

Reference no: EM131985878

Questions Cloud

Package of chocolate chip cookie dough : What is the cost each of one package of chocolate chip cookie dough and one package of double chocolate cookie dough?
Identifying the different types of conflict : Describe what participants need to know about identifying the different types of conflict and the steps they can take to resolve it.
Determine that a particular client enquiry : How do you determine that a particular client enquiry needs to be conveyed to a veterinarian?
How structure and culture need to work in a healthy company : Everyone is getting the same message now about how structure and culture need to work in a healthy company.
Program that plays the ancient chinese game of nim : MN404 - Fundamentals of Operating Systems and Programming - Write an Algorithm/ flowchart and then convert it to a java program for given game of NIM
Discuss the inconsistencies in leadership practices : Discuss the inconsistencies in leadership practices in each of departments and are concerned that while company is trying to improve its communication protocol.
Compare the two main levels of financial benchmarking : Imagine that a group of physicians who are planning to open a single-specialty group practice has hired you as a consultant.
Prepares routine correspondence and a wide variety of report : Maintains supervision of the Chief, Planning and Policy Division calendar, establishing priorities and making commitments for appointments and attendance.
Total sales earned are : To find out what 37.8% of the total sales earned are, I need to multiply the sum times 37.8%

Reviews

len1985878

5/17/2018 3:59:53 AM

Grades HD>80% DI (70-79%) CR (60-60%) P (50% - 59%) F (<50%) Task Optimal Algorithm devised (logic used) taking into considerations all possible end conditions as defined. Flawless Code implemented for the devised algorithm without and gap between the algorithm and the program. Relevant Algorithm devised (logic used) taking into considerations all possible end conditions. Flawless Code implemented Generally relevant Algorithm devised (logic used) taking into considerations most of the end conditions. Flawless Code implemented. Some relevance in the algorithm and few conditions are considered. The logic used is not relevant.

len1985878

5/17/2018 3:59:46 AM

Draft copy submission in week 10 Students who fail to submit draft copies of both the algorithm and the program shall lose marks. 6 Demonstration and Viva Tutor will see the outputs and assess your understanding of work done for this assignment in the laboratory class. This will be done during Week-11 laboratoryclass. Please Note: In case the student remains absent during week 11 for demonstration and viva without prior permission for special consideration through AMS, he /she may lose Demo and Viva marks. 10 Total 100

len1985878

5/17/2018 3:59:37 AM

Marking criteria: Section to be included in the report Description of the section Marks Algorithm Program All the minute details have to be addressed in the algorithm Error free, well commented java program reflecting each line of the algorithm. 42 42 Following points to be considered: Include appropriate import statements Include a comment at the beginning of your program with basic information and a description of the program Your code should be properly indented Give meaningful names to variables and classes in your code. Correct use of programming structures Your program compiles successfully without any errors Your program is interactive and gives correct output. Your program should follow all the rules mentioned above. Sufficient test cases considering all the requirements must be provided with valid and invalid inputs.

len1985878

5/17/2018 3:59:24 AM

• The assignment must be in MS Word format, 1.5 spacing, 11-pt Calibri (Body) font and 2 cm margins on all four sides of your page with appropriate section headings. • Reference sources must be cited in the text of the report and listed appropriately at the end in a reference list using IEEE referencing style. • Algorithm/flow chart to be submitted in a word doc1. • Draft copy and final version of the program to be submitted in a word doc2 and doc3 respectively. • Both file names must have student Id as part of the file names.

len1985878

5/17/2018 3:59:11 AM

Weight 20% of the total assessments Total Marks 100 Due Date Week10 – Draft copy of the algorithm and java program to be submitted. Week 11 – Submission of final copy of the assignment. Demonstration during laboratory class (week 11)

Write a Review

Programming Languages Questions & Answers

  What are advantages of using menus in a gui application

What are advantages of using menus in a GUI application? Design a menu structure for a program you would find useful in your work or hobbies. Write and post the code for the menu creation

  Write a program that inputs an integer in the range

Write a program that inputs an integer in the range [-32767, 32767] from the Serial Monitor and checks to see if that number is a prime number. If the number is a prime number, have the LED on pin 13 turn on. If not, then turn the LED off.

  Write program to calculate student-s quiz average

Write a program that will calculate a student's quiz average. The program should prompt the user for the number of quizzes and then ask the user for each quiz grade.

  Build a student record managing system application

Build a student record managing system application

  Program to find sum-difference of two complex numbers

Program should ask user to enter two complex numbers and it automatically finds it sum, difference, coefficient, product conjugate.

  Write program to take as input salesperson-s expected sales

Write program to take as input the salesperson's expected weekly sales and outputs the wages paid under each plan as well as announcing the best-paying plan.

  Design a program that allow the user to enter number of room

Design a modular program that allows the user to enter the number of rooms that are to be painted, the approximate square feet of wall space in each room.

  Describe logic why it is not enough to show reduction

If we can only show: if x belongs to A, then y does not belongs to B;explain the logic why it is not enough to show A reduction B.IN other words why the theory needs to prove"if and only if"?

  What are the relational and boolean operators you used

Define some everyday if else statements you use to determine action. What are the branches of your statement? What are the relational and Boolean operators you used in your example?

  Design a driver to test implementation of program

Design a driver to test your implementation. Add various random elements to heap, and then remove & display smallest element.

  Invent a fictitious company in one of the given industries

please provide a step-by-step progression toward the desired product.invent a fictitious company in one of the

  Complete the function function has three parameters

Complete the function: func in the following program. This function has three parameters: The first and second parameters are of type: int. The third one is a function that has two parameters of type: int and returns a value of type: int.

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