title: memory game java
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/10310661/memory-game-graphics-java">memory game graphics java</a>  </p>
  </blockquote>
  
  
  
  <p>I'm coding a program that is a 4x4 memory game. Within these 16 boxes will be a pair of integers from 0-7. I have all of that already randomized and coded correctly. Now I'm trying to figure out how to pair the colors with the corresponding integers each time the mouse clicks over the box.</p>
  
  <p>Here most of the code. I know the logic for this game isn't started yet, but I'm more focused on the displayHit method and setColor method right now. Just posting the whole code because maybe I messed up somewhere else.</p>
  
  <pre><code>/*Sets the background of your memory board to black*/
  public void init() 
  {
      setSize(400,400);
      setBackground(Color.BLACK);
      buildBoard(4);
  
  }   
  /*This is main in java applets
      You may need to add (not change) a couple things in this method
   */
  public void paint(Graphics canvas)
  {
      if(firstRun) //for the first run we need to build our random board
      {
  
          print2DArray(board);
          buildBoard(4);
          firstRun = false;
      } 
      else // once our board is built we will display the game
      {
          displayGame(canvas);
          if (mouseClicked) // if the mouse has been clicked
          {
              displayHit(canvas);//find which box the user clicked
              mouseClicked = false;
          }
      }
  }
  
  /*
      DO NOT change this method
      determines if the mouse has been pressed
      sets x and y Mouse to the location of the mouse arrow
      redraws the image
   */
  public boolean mouseDown(Event e, int x, int y ) 
  {
      mouseClicked = true; 
      xMouse = x;
      yMouse = y;
      repaint();
      return true;
  }
  
  /*DO NOT change this method
      redraws the scene
   */
  
  public void update ( Graphics g ) 
  {
      paint(g);
  }
  
  /*
      pre: none
      post: build an array that holds the memory values for a board of size x size
      the board will hold two of each int from 0 to size randomly placed in the array
   */
  
  
  public void buildBoard(int s)
  
  {
      int a = 4;
      for (int row = 0; row &lt; a; row++)
          for (int column = 0; column &lt; a; column++)
          {
  
              board[row][column] = count++ % 8;
          }
      for(int row = 0; row &lt; 4; row++)
  
          for(int column = 0; column &lt; 4; column ++) 
          {
              int x = (int)Math.floor(Math.random()*4);
              int y = (int)Math.floor(Math.random()*4);
              temp = board[row][column];
              board[row][column] = board[x][y];
              board[x][y] = temp;
  
  
          }
  }
  public static void print2DArray(int[][] arr)
  {
      for (int row = 0; row &lt; arr.length; row++)
      {
          for (int col = 0; col &lt; arr[row].length; col++)
          {
              System.out.print(arr[row][col] + " ");
          }
          System.out.println();
      }
  }
  
  
  
  
  
  public void displayGame(Graphics canvas)
  {
      canvas.setColor(Color.WHITE);
  
      for(int i =0; i &lt; 400; i+= WIDTH)
          for(int j = 0; j &lt; 400; j+= WIDTH)
              canvas.drawRect(i, j, WIDTH, WIDTH);
  }
  
  /*
      Pre: xMouse and yMouse have been initialized
      Post: A circle is displayed in the correct box on the screen
      Currently the circle is displayed at the mouse location
   */
  public void displayHit(Graphics g)
  {
  
      setColor(g);
      centerHit(xMouse, xMouse);
      g.fillOval(xMouse, yMouse, 40, 40);
  }
  
  public void setColor(Graphics g)
  {
  
      switch(temp)
      {
      case 0: g.setColor(Color.RED);
      break;
      case 1: g.setColor(Color.GREEN);
      break;
      case 2: g.setColor(Color.BLUE);
      break;
      case 3: g.setColor(Color.ORANGE);
      break;
      case 4: g.setColor(Color.CYAN);
      break;
      case 5: g.setColor(Color.MAGENTA);
      break;
      case 6: g.setColor(Color.PINK);
      break;
      case 7: g.setColor(Color.YELLOW);
      break;
      }
  
  }
  public void centerHit(int centerX, int centerY)
  {
      {
          if ((xMouse &gt; 0) &amp;&amp; (xMouse &lt;=100))
              xMouse = 33;
          else if ((xMouse &gt; 100) &amp;&amp; (xMouse &lt;=200))
              xMouse = 133;
          else if ((xMouse &gt; 200) &amp;&amp; (xMouse &lt;=300))
              xMouse = 233;
          else if ((xMouse &gt; 300) &amp;&amp; (xMouse &lt;=400))
              xMouse = 333;
      }
      {
          if ((yMouse &gt; 0) &amp;&amp; (yMouse &lt;=100))
              yMouse = 33;
          else if ((yMouse &gt; 100) &amp;&amp; (yMouse &lt;=200))
              yMouse = 133;
          else if ((yMouse &gt; 200) &amp;&amp; (yMouse &lt;=300))
              yMouse = 233;
          else if ((yMouse &gt; 300) &amp;&amp; (yMouse &lt;=400))
              yMouse = 333;
      }
  
  
  
  }
  </code></pre>
  
  <p>}</p>