Hello All,
I have a java assignment thats supposed to create a memory game, with 10 rows and 10 columns.50 images have been supplied.
The part i'm stuck is the the window with the actual images on the grid.The images are supposed to be generated randomly each time the application is run . So far I have the following code seperated in two files
memoryGame.java
import java.util.Random;
import java.awt.*;
import javax.swing.*;
import java.math.*;
public class MemoryGame {
static final int row = 10;
static final int col = 10;
int size= 0;
String[][] position = new String[row][col];
String[] tile = new String[new java.io.File("icons").list().length*2];
String [] fileNames = new String[new java.io.File("icons").list().length];
public MemoryGame() {
String[] fileNames = new java.io.File("icons").list();
for(int i=0;i<2;i++){
for(int j=0;j<=10;j++){
tile[size] = fileNames[j];
size++;
}
}
}
public String[][] positionMethod(){
String[] icons = new String[size];
for (int row=0; row<=10; row++){
for (int col=0; col<=10; col++) {
int num = RandomNumber();
position [row][col] = tile[num];
icons[size] = tile[num];
size--;
}
}
return position;
}
public int RandomNumber(){
Random rand = new Random();
int num = rand.nextInt(50);
return num;
}
public void isOver(){
}
}
and the actual display class
MemoryGameDisplay.java
import java.awt.*;
import javax.swing.*;
public class MemoryGameDisplay extends JFrame {
JButton buttons;
MemoryGame memoryGame = new MemoryGame();
public MemoryGameDisplay(String title) {
super(title);
getContentPane().setLayout(new GridLayout(10,10));
for (int row=0; row<=10; row++){
for (int col=0; col<=10; col++) {
buttons = new JButton(new ImageIcon("icons" + java.io.File.separator + "blank.jpg"));
buttons.setSelectedIcon(new ImageIcon("icons" + java.io.File.separator + memoryGame.positionMethod()[row][col]));
buttons.setSelected(true);
getContentPane().add(buttons);
}
}
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(350, 350);
}
public static void main(String[] args) {
new MemoryGameDisplay("Memory Game").setVisible(true);
}
}
the code is not compiling and giving me an error message :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 102
at MemoryGame.positionMethod(MemoryGame.java:32)
at MemoryGameDisplay.<init>(MemoryGameDisplay.java:17)
at MemoryGameDisplay.main(MemoryGameDisplay.java:27)
now I know my for loop , most likely in my positionMethod() is causing the ArrayIndexOutOfBoundsException, I'm just not sure how .
Any help would be greatly appreciated