Prepare a scenario diagram for problem

Assignment Help Programming Languages
Reference no: EM13324916

Prepare a scenario diagram for Problem 1, Brief discussion for Problem 2, and Ruby source code for Problem 3.

 

Problem 1:

Here is an interaction in a tic-tac-toe game, with user input in bold:
>> gm = Game.new('andy', 'mike')

=> #<Game:0x2e91d78 @players=[Andy, Mike]>

>> gm.play_game('mike')

Mike, enter your next O move (1-9): 1
O - -
- - -
- - -

Andy, enter your next X move (1-9): 3
O - X
- - -
- - -

Mike, enter your next O move (1-9): 5
O - X
- O -
- - -

Andy, enter your next X move (1-9): 3

Bad move dude! You go again.
O - X
- O -
- - -

Andy, enter your next X move (1-9): 6
O - X
- O X
- - -

Mike, enter your next O move (1-9): 9
O - X
- O X
- - O

Mike, you won!
=> nil
>> gm.play_game('karen')

I don't know that player. Please try again. => nil

>> gm.play_game('andy')
Andy, enter your next O move (1-9): 5
- - -
- O -
- - -
When a new game is created, two players register with it by name (the arguments to Game.new). The play_game message is called with one of the player's names and starts a new game where that player plays first using the O marker. (A game can be sent repeated play_game messages so the same pair of players can play multiple games). In each iteration, the current player is prompted for the position of her move and then she enters the move number, where the nine squares are numbered in row-major order from 1 through 9. If a move is illegal (i.e., already occupied), the current player is scolded and prompted again for a move. After each move, the board is redrawn. A game ends when either one of the players forms a horizontal, vertical, or diagonal row of her three markers (in the usual way), or the board is full indicating a tie.

The assignment is not to implement this game in Ruby. Rather, the assignment is to use scenario diagrams to discover the objects, their responsibilities, and the messages they respond to. Specifically, focus on the scenario of a typical iteration: If the current game is not over, the current player is prompted for a legal move which she supplies and then the move is made and the current game board is displayed. Hand in a single scenario diagram that you believe represents your best design.

Problem 2

Here is a class definition in Ruby:
class C
attr_accessor :f

def g(x)
self.f=(x)
end

def h(x)
f = x
end

def i(x)
self.f = x
end
end

What does the following transcript teach us?

>> c = C.new
=> #<C:0x2afabd8>
>> c.g(2)
=> 2
>> c.f
=> 2
>> c.h(5)
=> 5
>> c.f
=> 2
>> c.i(7)
=> 7
>> c.f
=> 7

Problem 3

Write a PhoneContact class that gets initialized with a phone number and a label. The phone number should follow one of the formats of the Phone class from the previous assignment (and you should use the Phone class in this assignment). A label is either a symbol or a string. A phone contact responds to the label, phone_number, and to_s messages. Note that phone_number returns a Phone object:

>> contact1 = PhoneContact.new('(954) 555-1212', :work)
=> (954) 555-1212 (work)
>> contact1.label
=> "work"
>> contact1.phone_number
=> "(954) 555-1212"
>> contact1.to_s
=> "(954) 555-1212 (work)"
>> contact2 = PhoneContact.new(' 955-555-1212', "cell")
=> (955) 555-1212 (cell)
>> contact2.phone_number.area_code
=> 955 

Reference no: EM13324916

Questions Cloud

How to calculate the ph of sodium formate solution : Given 217 mL of a buffer solution that is 0.46 M formic acid and 0.27 M sodium formate, calculate the pH of this solution after the addition of 2.8 mL of 6.3 M hydrochloric acid. The Ka of formic acid is 1.8x10-4
With what temperature does the air emerge : The rear end of an air conditioner dumps 1.2 * 10^7 J/hr of waste heat into the air outside a building. A fan assists in the removal of this heat. With what temperature does the air emerge
Generate a database diagram : For each of these statements, include a screenshot of the SQL. Make sure to include the statement execution, including the resulting data. Display all columns and all rows from the Employees table.
Explain what is the path these electrons use : What is the path these electrons use in the Electron Transport Chain? Answer A. Complex I, Complex II, Complex III, Complex IV, O2 to H2O B. Complex II, Complex III, Complex IV, O2to H2O C.
Prepare a scenario diagram for problem : Write a PhoneContact class that gets initialized with a phone number and a label. The phone number should follow one of the formats of the Phone class from the previous assignment - Prepare a scenario diagram for Problem 1, Brief discussion for Pro..
Compute the ph of a solution made by dissolving of sodium : Calculate the pH of a solution made by dissolving 2.89 g of sodium fluoride and 17.1 mL of 0.309 M hydrofluoric acid in enough water to make 177 mL of solution.
Most influential architecture is michaelangelo : In my opinion, the most influential architecture is Michaelangelo, the work titled "the Creation of Adam." Explain why. The most influential architecture in Nashville is the state capitol building? Explain why. Who was the architect.
Explain daily energy requirement for an active adult human : The daily energy requirement for an active adult human is around 2500 calories per day. A nutritional calorie is equal to 4.2 kJ of energy. If each ATP contains -30 kJ/mol under standard conditions, how many molecules of ATP does the body require ..
Developments in communications technology : Do you think that developments in communications technology would lower the costs of trade? If so what particular costs of trade are likely to be reduced?

Reviews

Write a Review

Programming Languages Questions & Answers

  Explain the problem of storing data in matrix

Each such element is accompanied by its two indexes (the row and the column). Explain in what ways such structure is similar to and/or different than list.

  Write non-recursive to perform algorithm

Write a non-recursive (i.e., iterative) function selectionSort() to perform this algorithm. Use it in a program that reads from a file a sequence of integers.

  Create application to enter number of units sold

Quantity discounts are given according: create an application that allows the user to enter the number of units sold for each software package.

  Write program which exploit string library functions

Write a program which exploit the string library functions to do the following: prompt the user to enter his name (of four parts), count the number of characters in his name (excluding the white spaces).

  Program to calculate overtime pay for salary based employee

To calculate overtime pay for a salary based employee, first find hourly rate by dividing gross pay by 40, and then calculate overtime pay.

  Write a program to read the data from csv file

Write a program that will read the data from the CSV file into an ArrayList of State objects where each State object stores information about all County objects for that state.

  Write program to calculate amount a person earn

Write a program that calculates the amount a person would earn over a period of time if his or her salary is one penny the first day, two pennies the second day.

  Perform a paired t-test to verify your claim

Which type of t-test is most appropriate to investigate your co-investigator's claim? Why is it most appropriate t- test? Please explain your answer in 1-2 lines.

  Create a multi-threaded competition

Create a multi-threaded competition in which opposing Robin Hoods will attack one another and try to take each other's gold coins.

  Program ask user to enter starting amount in savings account

There is a Savings and a Checking account. Your program should begin by asking the user to enter the starting amount in the checking and savings accounts.

  Design implement application displays button-label on screen

Design an implement an application that displays a button and a label on a screen. Every time the button is pushed, the label will display a random number.

  Pseudocode that will generate reports from data files

Develop a mock-up of each of these reports, and get customer approval of these mock-ups. Write pseudo code that will generate these reports from the data files, using a CASE tool;

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