PDA

View Full Version : سوال: مشکل با ساخته بازی حافظه / Memory



java_nith
پنج شنبه 25 تیر 1388, 07:00 صبح
سلام
من در حال درست کردنه یه بازی هستم
بازی حافظه
که فکر کنم همتون میدونید کدوم بعضی‌ رو میگم

طراحیش کار میکنه
ولی‌ نمیدونم چوجوری درستش کنم

ببینید بازی قرار است ۲تا دکمه رو مقایسه کنه
اگه مثل هم بودن اون هارو خامش کنه
ولی‌ اگه ۲تا مثل هم نبودن خمششن نکنه، و روشن باشن

ولی‌ من توی این نقطش مندم و نمیدونم چوجوری طراحی کنم

این کوله کد من است


package MemoryGame;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;
import static java.util.Collections.*;

public class MemoryGame extends JFrame implements ActionListener {

/**
*
*/
private static final long serialVersionUID = 1L;
private JButton exitBtn, replayBtn;
private JButton[] gameBtn = new JButton[16];
private ArrayList<Integer> gameList = new ArrayList<Integer>();
private int count = 0;

public MemoryGame() {
init();
panel();
setArrayListText();
setTitle("MemoryGame");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(500, 500);
setVisible(true);
}

public void init() {
for (int i = 0; i < gameBtn.length; i++) {
gameBtn[i] = new JButton();
gameBtn[i].setFont(new Font("Serif", Font.BOLD, 28));
gameBtn[i].addActionListener(this);
}
exitBtn = new JButton("Exit");
exitBtn.addActionListener(this);
replayBtn = new JButton("Replay");
replayBtn.addActionListener(this);
}

public void panel() {
Panel gamePnl = new Panel();
gamePnl.setLayout(new GridLayout(4, 4));
for (int i = 0; i < gameBtn.length; i++) {
gamePnl.add(gameBtn[i]);
}

Panel buttonPnl = new Panel();
buttonPnl.add(replayBtn);
buttonPnl.add(exitBtn);
buttonPnl.setLayout(new GridLayout(1, 0));

add(gamePnl, BorderLayout.CENTER);
add(buttonPnl, BorderLayout.SOUTH);

}

public void setArrayListText() {
for (int i = 0; i < 2; i++) {
for (int ii = 1; ii < (gameBtn.length / 2) + 1; ii++) {
gameList.add(ii);
}
}
shuffle(gameList);

// ///////////////////
int newLine = 0;
for (int a = 0; a < gameList.size(); a++) {
newLine++;
System.out.print(" " + gameList.get(a));
if (newLine == 4) {
System.out.println();
newLine = 0;
}
}
}

public void chekCout(int btnID, int value){
int[] btnIDList = new int[2];
int[] valueList = new int[2];

if(this.count == 1){
btnIDList[0] = btnID;
valueList[0] = value;
gameBtn[btnIDList[0]].setEnabled(false);
}
if(this.count == 2){
btnIDList[1] = btnID;
valueList[1] = value;
gameBtn[btnIDList[1]].setEnabled(false);
this.count = 0;
if((valueList[0]== valueList[1])&& !(btnIDList[0] == btnIDList[1])){
gameBtn[btnIDList[0]].setEnabled(false);
gameBtn[btnIDList[1]].setEnabled(false);
}
else{
gameBtn[btnIDList[0]].setEnabled(true);
gameBtn[btnIDList[1]].setEnabled(true);
}
}
}

@Override
public void actionPerformed(ActionEvent e) {
if (exitBtn == e.getSource()) {
System.exit(0);
}
if (replayBtn == e.getSource()) {

}
int i = 0;
for (i = 0; i < gameBtn.length; i++) {
if (gameBtn[i] == e.getSource()) {
gameBtn[i].setText("" + gameList.get(i));
count++;
chekCout(i,gameList.get(i));
}
}
}

public static void main(String[] args) {
new MemoryGame();
}
}


و مشکله اصلی‌ من کار نکردن این متد است


public void chekCout(int btnID, int value){
int[] btnIDList = new int[2];
int[] valueList = new int[2];

if(this.count == 1){
btnIDList[0] = btnID;
valueList[0] = value;
gameBtn[btnIDList[0]].setEnabled(false);
}
if(this.count == 2){
btnIDList[1] = btnID;
valueList[1] = value;
gameBtn[btnIDList[1]].setEnabled(false);
this.count = 0;
if((valueList[0]== valueList[1])&& !(btnIDList[0] == btnIDList[1])){
gameBtn[btnIDList[0]].setEnabled(false);
gameBtn[btnIDList[1]].setEnabled(false);
}
else{
gameBtn[btnIDList[0]].setEnabled(true);
gameBtn[btnIDList[1]].setEnabled(true);
}
}
}

تا الان کوله بعضی‌ رو خودم نوشتم
ولی‌ نمیدونم چوجوری بتونم کاره اصلی‌ بازی رو درست کنم

کسی‌ پیشنهادی داره؟

java_nith
پنج شنبه 25 تیر 1388, 22:23 عصر
دوستان اگه خوب توضیح ندادم بگید که بهتر بگم
خیلی‌ مهم که درستش کنم
چند هفته دیگه روی همین باید امتحان بدم