• API
• FAQ
• Tools
• Archive
SHARE
TWEET # bruh a guest Oct 17th, 2019 90 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. public class MemoryLane
2. {
3.     private Domino[] board;
4.
5.     /**
6.      * Constructs a Memory Lane game with max^2 + max Dominoes.
7.      *
8.      *      Example: max <-- 2
9.      *                   
10.      *                   
11.      *
12.      *      Example: max <-- 3
13.      *                         
14.      *                         
15.      *
16.      * Postcondition: board is random
17.      *
18.      * @param max the largest number of pips on the Dominoes
19.      */
20.     public MemoryLane(int max)
21.     {
22.         this.board = new Domino[(int)(Math.pow(max, 2) + max)];
23.         int index = 0;
24.         for (int i = 1; i <= max; i++)
25.         {
26.             board[index++] = new Domino(i,i);
27.             for (int j = 1; j <= max; j++)
28.             {
29.                 board[index++] = new Domino(i,j);
30.             }
31.         }
32.         shuffle();
33.     }
34.
35.     /**
36.      * Shuffles board
37.      * Precondition: board does not contain null elements
38.      *
39.      * @return
40.      */
41.     private void shuffle()
42.     {
43.         Domino[] tempBoard = new Domino[board.length]; //creates new array and reinputs board
44.         for (int i = 0; i < board.length; i++)
45.         {
46.             int randy = (int) (Math.random()* board.length);
47.             while(board[randy] == null)
48.                 randy = (int) (Math.random()* board.length);
49.             tempBoard[i] = board[randy];
50.             board[randy] = null;
51.         }
52.         board = tempBoard;
53.
54.     }
55.
56.     /**
57.      * Reveals the Dominoes at index i and k if they match
58.      *
59.      * @param i
60.      * @param k
61.      * @return true if the Dominoes at i and k match; false otherwise
62.      */
63.     public boolean guess(int i, int k)
64.     {
65.         if (board[i].equals(board[k]))
66.         {
67.             board[i].setReveal(true);
68.             board[k].setReveal(true);
69.         }
70.         return board[i].equals(board[k]);
71.     }
72.
73.     /**
74.
75.      *
76.      * Precondition: the elements at the specified indexes are not null
77.      *
78.      * @param indexes variable arguments; any number of indexes;
79.      *                indexes if effectively an int[]
80.      * @return
81.      */
82.     public String peek(int... indexes)
83.     {
84.         String whitHubbard = ""; //basically str or rtn
85.         for (int index: indexes)
86.             whitHubbard += "[" + board[index].getTop() + "]";
87.         whitHubbard += "\n";
88.         for (int index : indexes)
89.             whitHubbard += "[" + board[index].getBottom() + "]";
90.         return whitHubbard;
91.
92.     }
93.
94.     /**
95.      * @return true if the number of revealed Dominoes is equal to the
96.      *          length of the board
97.      */
98.     public boolean gameOver()
99.     {
100.         int counter = 0;
101.         for (Domino domino : board)
102.             if (domino.isReveal())
103.                 counter++;
104.         return counter == board.length;
105.     }
106.
107.     /**
108.      * Returns a String representation of the board in the following format:
109.      *
110.      *        0     1     2     3     4     5
111.      *      [top] [   ] [top] [   ] [top] [top]
112.      *      [bot] [   ] [bot] [   ] [bot] [bot]
113.      *
114.      * Note: the top and bottom numbers of an unrevealed Domino are represented with
115.      *          an empty space
116.      *
117.      * @return
118.      */
119.     public String toString()
120.     {
121.         String no = " ";
122.         int bruh = board.length;
123.         for (int i = 0; i < bruh; i++)
124.             no += i + "  ";
125.         no += "\n";
126.         for (int i = 0; i < bruh; i++)
127.         {
128.             if(board[i].isReveal())
129.                 no += "[" + board[i].getTop() + "]";
130.             else
131.                 no += "[ ]";
132.         }
133.         no += "\n";
134.         for (int i = 0; i < bruh; i++)
135.         {
136.             if(board[i].isReveal())
137.                 no += "[" + board[i].getBottom() + "]";
138.             else
139.                 no += "[ ]";
140.         }
141.         return no;
142.     }
143. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top