Sei sulla pagina 1di 3



66666666666 Write a Java program to model Finite State Machine. The class
definition should have following information
- Number of States
- Current State
- Start and Final State
- State Transition Rules
The class should provide the functions for followingi) To set the state to be starting state.
ii) Input one character (This method could throw IllegalStateInputException)
iii) One method to get the current state of Finite State Machine.
iv) methods to initialize following information of State Machine
-Number of States
- Start and Final State
- State Transition Rule
Q.2. Write complete Java Application for implementing Minesweeper Game (in
textual mode). Minesweeper game instance should be presented with an object. At
the starting of game user shall provide the size of board (say p X q).
Your program should initialize the Minesweeper board instance with mines at
random locations. Other board location should be filled with number of mines in the
adjacent 8 locations of board (or neighbouring locations).
While playing the game, user shall see p X q characters on screen. For each
unexplored board location, character + is to be displayed. For each explored board
location, 0,1,2,3....8 or * is to be printed on the screen location depending the mine

or neighbouring mine count.

During the play, user should be asked for exploring a board location or
marking a mine location.
Marked Mine location should be displayed with @ symbol on the board
location. After each play interaction, user should be given the count of correctly
marked mines out of total mines.

Q.3. Implement three classes: Storage, Counter and Printer. The Storage class
should store an integer. The Counter class should create a thread that starts
counting from 0(0, 1, 2, 3....) and stores each value in the Storage class. The Printer
class should create a thread that keeps reading the value in the Storage class and
printing it. Write a program that creates an instance of the Storage class and sets up
a Counter and a Printer object to operate on it.
Q.4. Modify the program from the previous exercise to ensure that each number is
printed exactly once, by adding suitable Synchronization.
Q. 5. (Supermarket Simulation) Write a program that simulates a checkout line at a
supermarket. The line is a queue object. Customers (i.e. customer objects) arrive in
random integer intervals of from 1 to 4 minutes. Also, each customer is serviced in
random integer intervals of from 1 to 4 minutes .Obviously, the rates need to be
balanced. If the average arrival rate is larger than the average service rate, the
queue will grow infinitely. Even with balanced rates, randomness can still cause
long lines. Run the supermarket simulation for a 12-hour day (720 minutes), using
the following algorithm:
a) Choose a random integer between 1 and 4 to determine the minute at
which the first customer arrives.
b) At the first customers arrival time, do the following:
Determine customers service time (random integer from 1 to 4).
Begin servicing the customer.
Schedule arrival time of next customer (random integer 1 to 4 added to the
current time).
c) For each minute of the day, consider the following:
If the next customer arrives, proceed as follows:
Say so.
Enqueue the customer.
Schedule the arrival time of the next customer.
If service was completed for the last customer, do the following:
Say so.
Dequeue next customer to be serviced.
Determine customers service completion time (random integer from 1
to 4 added to the current time).

Now run your simulation for 720 minutes and answer each of the following:
a) What is the maximum number of customers in the queue at any time?
b) What is the longest wait any one customer experiences?
c) What happens if the arrival interval is changed from 1 to 4 minutes to 1 to
3 minutes?