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

  Design fraction class to represent numerator and denominator

Design a fraction class. The class should have 2 data members to represent the numerator and denominator. Both of these numbers should obviously be integers.

  Cooks selected by methods are different which one is taller

He orders the shortest man in each column to step aside and chooses the tallest of these twenty-five. The two cooks chosen by the two methods are different. Which one is taller?

  Create link invisible to begin-display after submit button

Create link invisible to begin but display it after Submit button has been clicked. Confirmation page should say "Thank you for your order".

  Writing application to accept loan amount-interest rate

Write down the application to accept a loan amount, annual interest rate, and loan period (in number of years) and displays a table with five columns.

  Program to display aggregate information for state

For each state, display aggregate information for that state, including: the total number of counties in the state, the total number of tax returns.

  Write program to read data for employee and print name

Write a program which reads data for employee and prints name and salary of employee. Data read is: Name. Number of hours worked.

  Write code to takes input from console

Write code using C++ which takes input from console and displays output on console. You will write program which takes user input, does some basic arithmetic, and displays the results.

  Write down pseudo code to find sentinel value

The total of both types have to be printed at end. Suppose 50 as sentinel value. Write down Pseudo Code to perform this function.

  Write application for university admissions office

Write an application for a university admissions office. Prompt the user for a student's High School Grade Point (for example 3.2) and an admission test score (value from 0 to 100).

  Create a work breakdown structure

Create a Work Breakdown Structure (WBS), and assign resources and cost by using a project management tool. As the IT project manager, you have been assigned a project to deploy ten (10) wireless access points in your company's warehouse.

  Formulate integer programming model for permanent operators

Company wishes to know number of permanent and temporary operators to hire to minimize costs. Formulate an integer programming model for this problem and solve it by using the computer.

  Program to read the records until end of file

Zip code, county and number of boxes. The program should read the records until end of file is encountered and produce enough mailing labels for each order.

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