Memory-Spiel Grafiken Java

Ich programmiere ein Programm, das ein 4x4-Memory-Spiel ist. In diesen 16 Feldern wird ein Paar von ganzen Zahlen von 0-7 sein. Ich habe das alles schon randomisiert und richtig codiert. Jetzt versuche ich herauszufinden, wie die Farben bei jedem Mausklick über das Feld mit den entsprechenden Ganzzahlen gekoppelt werden.

Hier der größte Teil des Codes. Ich weiß, dass die Logik für dieses Spiel noch nicht gestartet ist, aber ich konzentriere mich jetzt mehr auf die displayHit-Methode und die setColor-Methode. Ich habe nur den ganzen Code gepostet, weil ich ihn vielleicht woanders durcheinander gebracht habe.

<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 < a; row++)
        for (int column = 0; column < a; column++)
        {

            board[row][column] = count++ % 8;
        }
    for(int row = 0; row < 4; row++)

        for(int column = 0; column < 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 < arr.length; row++)
    {
        for (int col = 0; col < 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 < 400; i+= WIDTH)
        for(int j = 0; j < 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)
{
    buildBoard(temp);
    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 > 0) && (xMouse <=100))
            xMouse = 33;
        else if ((xMouse > 100) && (xMouse <=200))
            xMouse = 133;
        else if ((xMouse > 200) && (xMouse <=300))
            xMouse = 233;
        else if ((xMouse > 300) && (xMouse <=400))
            xMouse = 333;
    }
    {
        if ((yMouse > 0) && (yMouse <=100))
            yMouse = 33;
        else if ((yMouse > 100) && (yMouse <=200))
            yMouse = 133;
        else if ((yMouse > 200) && (yMouse <=300))
            yMouse = 233;
        else if ((yMouse > 300) && (yMouse <=400))
            yMouse = 333;
    }



}
</code>

}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage