我正在做這個記憶遊戲,我似乎無法弄清楚匹配卡的算法。基本記憶遊戲Java
就像兩張牌相同,它會被禁用,否則會再次隱藏牌。
每次我點擊一張卡時,它都會保持打開狀態,當我隨機選擇另一張卡時,出於某種原因,其他卡會再次關閉。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MemGame extends JFrame implements ActionListener
{
GridLayout three = new GridLayout(4,4);
String dolls[]= {"Ugly1.jpg","Ugly1.jpg","Ugly2.jpg","Ugly2.jpg","Ugly3.jpg","Ugly3.jpg","ugly4.jpg","Ugly4.jpg","Ugly5.jpg","Ugly5.jpg","Ugly6.jpg","Ugly6.jpg","Ugly7.jpg","Ugly7.jpg","Ugly8.jpg","Ugly8.jpg"};
JButton button[]= (new JButton[dolls.length]);
int current,shuffle,trans;
int check=0;
int holder[]=new int [2];
String container[]={"",""};
public MemGame()
{
Container c = getContentPane();
c.setLayout(three);
for(current=0;current<dolls.length;current++)
{
int shuffle=(int)(Math.random()*dolls.length);
String hold=dolls[current];
dolls[current]=dolls[shuffle];
dolls[shuffle]=hold;
}
for(int x=0;x<dolls.length;x++)
{
button[x]=new JButton();
c.add(button[x]);
button[x].addActionListener(this);
}
setVisible(true);
setSize(500,500);
}
public void actionPerformed(ActionEvent e)
{
for(int x=0;x<dolls.length;x++)
{
if(e.getSource()==button[x])
{
button[x].setText("");
button[x].setIcon(new ImageIcon(dolls[x]));
button[x].setEnabled(false);
//This is where my problem starts.... I think
check++;
if(check==1)
{
container[0]=dolls[x];
holder[0]=x;
}
if(check==2)
{
container[1]=dolls[x];
holder[1]=x;
}
if(check==3)
{
if(container[0].equals(container[1]))
{
button[holder[0]].setEnabled(false);
button[holder[1]].setEnabled(false);
}
else
{
button[holder[0]].setEnabled(true);
button[holder[0]].setIcon(new ImageIcon());
button[holder[1]].setEnabled(true);
button[holder[1]].setIcon(new ImageIcon());
}
check=1;
}
}
}
}
public static void main (String args[])
{
new MemGame();
}
}
請注意,您在'dolls'中有一個拼寫錯誤:''ugly4.jpg「'而不是'」Ugly4.jpg「'。 –
耶我得到了那一個嘿嘿對不起:) –