فورس کلوز دادن برنامه(حل شد)
سلام دوستان این کد که مربوط به پروژه ی Tic tac Toe از آموزش فصل هفتم هست وقتی که کد checkWin رو می نویسم فورس کلوز میده
هر چری فکر کردم خودم نتونستم دلیلش رو بدونم اگر ممکن هست شما من رو راهنمایی کنید.
package saramin.app.tic_tac_toe;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class TicTacTotActivity extends Activity {
public ImageView[] images = new ImageView[9];
public boolean playerOne = true;
public Byte[][] cells = new Byte[3][3];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
images[0] = (ImageView) findViewById(R.id.img1);
images[1] = (ImageView) findViewById(R.id.img2);
images[2] = (ImageView) findViewById(R.id.img3);
images[3] = (ImageView) findViewById(R.id.img4);
images[4] = (ImageView) findViewById(R.id.img5);
images[5] = (ImageView) findViewById(R.id.img6);
images[6] = (ImageView) findViewById(R.id.img7);
images[7] = (ImageView) findViewById(R.id.img8);
images[8] = (ImageView) findViewById(R.id.img9);
OnClickListener imageClickListener = new OnClickListener() {
@Override
public void onClick(View view) {
ImageView imageView = (ImageView) view;
int tag = (Integer) imageView.getTag();
int row = (int) Math.floor(tag / 3);
int col = tag % 3;
if (playerOne) {
imageView.setImageResource(R.drawable.circle);
cells[row][col] = 1;
} else {
imageView.setImageResource(R.drawable.cross);
cells[row][col] = 2;
}
checkWin();
playerOne = !playerOne;
}
};
for (int i = 0; i < 9; i++) {
images[i].setTag(i);
images[i].setOnClickListener(imageClickListener);
}
}
public void checkWin() {
for (int i = 0; i < 3; i++) {
if (cells[i][0] != 0 && cells[i][0] == cells[i][1] && cells[i][1] == cells[i][2]) {
Log.i("LOG", "Player " + cells[i][0] + "Win");
}
}
}
}
اینم اروری هست که eclips نشون میده

پی نوشت:
این متن رو دقیقا استاد تا همینجا می نویسند و تست می کنند ولی برای من فورس کلوز میده ولی برای استاد کوچکترین مشکلی ندارد.
البته در کد من با گذاشته یک return در حلقه آخر for مشکل حل میشه ولی من اصلا نمیتونم درکش کنم . دوستان هم توضیح دادن ولی باز درک نکردم. اگه توضیحات دوستان هم درست باشد خب کاملا مشخص است که برای استاد هم که تا همینجا نوشتن و امتحان کردن باید فورس کلوز میداده که نداده است.
یافتم !
اون آخرای کدتون رو نگاه کنید ! شما باید یه return اضافه کنید ! اینجوری باید باشه !
public void checkWin() {
for (int i = 0; i < 3; i++) {
if (cells[i][0] != 0 && cells[i][0] == cells[i][1] && cells[i][1] == cells[i][2]) {
Log.i("LOG", "Player " + cells[i][0] + "Win");
}
return;
}
یافتم !
یه نگاه به اون بالای کد ات بنداز ! byte رو با B بزرگ نوشتی ! درستش اینجوریه !
public byte[][] cells =new byte[3][3];
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
