Write a program to show a version of the memory game

Assignment Help Python Programming
Reference no: EM132360835

Question

PYTHON 3.4

You should program a version of the memory game.  The game is usually played with cards. If you do not know what it is, google it or see and play a bit here.

Only your game will not use graphics libraries to display the board, but instead it will print the board with the tools i.e. printing on Python console.

Your game should use a (one dimensional) list as the board. The size of the board should be an even integer, size, between 2 and 52. This number should be obtained from the player. The board should be filled with the first size/2 capital letters of english alphabet such that each
letter appears exactly twice in the list. And the order of these letters in the list should be random. I provided you witha function called create_board, that does this for you.

You will see that in the file i attached, it has a function called play_game(board). That is where you should put your game paying code
(notice the #YOUR CODE GOES HERE comment inside of that function) The function play_game takes the board as input parameter (the board created by the function create_board mentioned above). Once the player completes the game, you should also print the number of guesses it took to solve it and how far it is from the optimal (although impossible without luck) size/2 guesses.

Outside of that function you will obtain the desired size of the board from the player (in the space indicated by #YOUR CODE GOES HERE TOO).

More info about the game.

When your program prints the board, the locations for which paring is not discovered yet should display * and the locations for which the paring is discovered should display the letter that is on that location. In addition under the board each location should be labeled from 1 to size to help the user identify which locations they want opened next.

You may assume that the player will follow your instructions and will input integers (rather than strings say), but your program should test if the player entered integers in the required range and prompt her to repeat the entry until correct input is obtained. You should also fully test your program -- for example, what does your program do if the player does something silly, like entered two locations that are already discovered, etc .. Here is what a run of your program should look like.

Study the below example carefully to understand what your program should do. Among other things, you will see that your program will need to ``clear screen'' (I explain why is this needed more at the end of this file). It is ok to implement that by, for example, simply printing 30 or so new lines.

You will also see that you will need to pause the execution of the program so that the player can look at the newly opened two elements. Once the player has observed the two new elements that she should presse enter and the program will continue (you can assume here that she follows instructions). To have your program pause and wait for the player to press enter use the provided function called wait_for_player.

Also, think of the design of your program. For example, your program should have a function that displays the current board (I provided
that), but it should also have a function that displays the board with two new positions revealed (did not provide that). These functions would be called from your game playing function.

Designing your program by decomposing it into smaller subproblems (to be implemented as functions) makes programming easer, less prone to errors and makes your code more readable. You will be graded on these aspects of your program too.

Here is finally what a run of your program should look like:

Your program:

How many cards do you want to play with?

Enter an even number between 2 and 52:

Player: 5

Your program:

How many cards do you want to play with?

Enter an even number between 2 and 52:

Player: 6

Your program:

* * * * * *
1 2 3 4 5 6

Enter two distinct locations on the board that you want revealed.

i.e two integers in the range [1, 6]

Player: 1

2

Your program:

C B * * * *

1 2 3 4 5 6

Press enter to continue

Player: presses enter

Your program: clears the screen (so that the above board is not visible) and prints

* * * * * *
1 2 3 4 5 6

Enter two distinct locations on the board that you want revealed.

i.e two integers in the range [1, 6]

Player: 3

3

Your program:

Enter two distinct locations on the board that you want revealed.

i.e two integers in the range [1, 6]

Player: 3

4

Your program:

* * A C * *

1 2 3 4 5 6

Press enter to continue

Player: presses enter

Your program: clears the screen and prints

* * * * * *

1 2 3 4 5 6

Enter two distinct locations of the board that you want revealed.

i.e two integers in the range [1, 6]

Player: 1

4

Your program:

C * * C * *

1 2 3 4 5 6

Press enter to continue

Player: presses enter

Your program: clears the screen and prints

C * * C * *

1 2 3 4 5 6

Enter two distinct locations of the board that you want revealed.

i.e two integers in the range [1, 6]

Player: 1

4

Your program:

C * * C * *

1 2 3 4 5 6

Press enter to continue

Player: presses enter

Your program: clears the screen and prints

C * * C * *

1 2 3 4 5 6

Enter two distinct locations of the board that you want revealed.

i.e two integers in the range [1, 6]

Player: 2

5

Your program:

C B * C A *

1 2 3 4 5 6

Press enter to continue

Player: presses enter

Your program: clears the screen and prints

C * * C * *

1 2 3 4 5 6

Enter two distinct locations of the board that you want revealed.

i.e two integers in the range [1, 6]

Player: 3

5

Your program:

C * A C A *

1 2 3 4 5 6

Press enter to continue

Player: presses enter

Your program: clears the screen and prints

C * A C A *

1 2 3 4 5 6

Enter two distinct locations of the board that you want revealed.

i.e two integers in the range [1, 6]

Player: 2

6

C B A C A B

1 2 3 4 5 6

Press enter to continue

Player: presses enter

Your program prints

C B A C A B

1 2 3 4 5 6

Congratulations! You completed the game with 7 guesses.

That is 4 more than the best possible.

an extra note:

Here is a brief clarification about why you need to be able to "clear" the screen and pause the game:

For example, let's say your program just printed the current board.

B * * B * *

1 2 3 4 5 6

Then it asks the player to enter two new locations, and player enters 2 and 3

Then your program will print:

B A C B * *

1 2 3 4 5 6

It is here that you need to pause the program. After the player observed the two new locations, the next thing that needs to be done
is to clear the screen (meaning the above thing should not be visible anymore) and print the board again. Which would print

B * * B * *

1 2 3 4 5 6

If you do not pause where I stated above, the computer will do the above so fast that the player will only see

B * * B * *

1 2 3 4 5 6

Then she will be asked to enter two new locations, but after she enters them she will only get to see this again (since the board with two new locatins is already gone from the screen)

B * * B * *

1 2 3 4 5 6

As for clearing the screen, you can do that by e.g. calling print() about 30 or more times

Reference no: EM132360835

Questions Cloud

Implications for technological breaches : What are the implications for technological breaches when violating privacy laws? Please provide references
Write a program that allows the user to entre a list of num : You have to write a program that allows the user to entre a list of numbers and to return the same list but with the numbers inverse.
What are the attitudes of a company : What are the attitudes of a company must have?
Define why is the concept of family health important : Why is the concept of family health important? Consider the various strategies for health promotion. How does a nurse determine which strategy would.
Write a program to show a version of the memory game : Designing your program by decomposing it into smaller subproblems to be implemented as functions makes programming easer.
Reflexivity used in qualitative research : How are the terms iterative, emergent, epistemology, ontology, and reflexivity used in qualitative research?
Challenges involved in club management in comparison : The major challenges involved in club management in comparison to other management positions in recreation and attractions
Network security-systems security and information security : Discuss the importance of understanding the difference between network security, systems security, and information security
Predict the short and long-term future : Explain in detail how a downturn in the economy affects not-for-profit organizations, as opposed to for-profit ones.

Reviews

Write a Review

Python Programming Questions & Answers

  Write a python program to implement the diff command

Without using the system() function to call any bash commands, write a python program that will implement a simple version of the diff command.

  Write a program for checking a circle

Write a program for checking a circle program must either print "is a circle: YES" or "is a circle: NO", appropriately.

  Prepare a python program

Prepare a Python program which evaluates how many stuck numbers there are in a range of integers. The range will be input as two command-line arguments.

  Python atm program to enter account number

Write a simple Python ATM program. Ask user to enter their account number, and print their initail balance. (Just make one up). Ask them if they wish to make deposit or withdrawal.

  Python function to calculate two roots

Write a Python function main() to calculate two roots. You must input a,b and c from keyboard, and then print two roots. Suppose the discriminant D= b2-4ac is positive.

  Design program that asks user to enter amount in python

IN Python Design a program that asks the user to enter the amount that he or she has budget in a month. A loop should then prompt the user to enter his or her expenses for the month.

  Write python program which imports three dictionaries

Write a Python program called hours.py which imports three dictionaries, and uses the data in them to calculate how many hours each person has spent in the lab.

  Write python program to create factors of numbers

Write down a python program which takes two numbers and creates the factors of both numbers and displays the greatest common factor.

  Email spam filter

Analyze the emails and predict whether the mail is a spam or not a spam - Create a training file and copy the text of several mails and spams in to it And create a test set identical to the training set but with different examples.

  Improve the readability and structural design of the code

Improve the readability and structural design of the code by improving the function names, variables, and loops, as well as whitespace. Move functions close to related functions or blocks of code related to your organised code.

  Create a simple and responsive gui

Please use primarily PHP or Python to solve the exercise and create a simple and responsive GUI, using HTML, CSS and JavaScript.Do not use a database.

  The program is to print the time

The program is to print the time in seconds that the iterative version takes, the time in seconds that the recursive version takes, and the difference between the times.

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