私は 'Tic Tac Toe'ゲームを作っています。 3x3フィールド、基本。今私はいくつかのロジックを加え、ランダムなコンピュータのために を選択しました。しかし、フィールドをクリックするといつか起こりますが、コンピュータは動きません。私は 問題はarraylistにあると思う。私のXMLとJavaファイルをチェックアウト:Android tic tac toeゲーム - 論理問題
MY XMLファイル:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.tictactoe.ThirdActivity"
android:background="@color/background"
android:padding="16dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/firstLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:elevation="1dp"
android:orientation="horizontal">
<Button
android:id="@+id/buttonOne"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
<Button
android:id="@+id/buttonTwo"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1.00"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
<Button
android:id="@+id/buttonThree"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/secondLayout"
android:layout_weight="4">
<Button
android:id="@+id/buttonFour"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
<Button
android:id="@+id/buttonFive"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
<Button
android:id="@+id/buttonSix"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
</LinearLayout>
<LinearLayout
android:id="@+id/thirdLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:orientation="horizontal">
<Button
android:id="@+id/buttonSeven"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
<Button
android:id="@+id/buttonEight"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
<Button
android:id="@+id/buttonNine"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@color/buttonColor"
android:onClick="onClickButton"
android:layout_margin="5dp"
android:text=" "/>
</LinearLayout>
<LinearLayout
android:id="@+id/fourthLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="4"
android:orientation="horizontal">
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="@string/restart"
android:textColor="@color/text"/>
</LinearLayout>
</LinearLayout>
MY Javaファイル:
package com.tictactoe;
import android.app.ActionBar;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Random;
public class ThirdActivity extends Activity {
Button buttonOne;
Button buttonTwo;
Button buttonThree;
Button buttonFour;
Button buttonFive;
Button buttonSix;
Button buttonSeven;
Button buttonEight;
Button buttonNine;
ArrayList<Button> myList = new ArrayList<Button>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLACK));
actionBar.setIcon(R.mipmap.tictactoe);
actionBar.setTitle("Play Game");
buttonOne = (Button) findViewById(R.id.buttonOne);
buttonTwo = (Button) findViewById(R.id.buttonTwo);
buttonThree = (Button) findViewById(R.id.buttonThree);
buttonFour = (Button) findViewById(R.id.buttonFour);
buttonFive = (Button) findViewById(R.id.buttonFive);
buttonSix = (Button) findViewById(R.id.buttonSix);
buttonSeven = (Button) findViewById(R.id.buttonSeven);
buttonEight = (Button) findViewById(R.id.buttonEight);
buttonNine = (Button) findViewById(R.id.buttonNine);
myList.add(0, buttonOne);
myList.add(1, buttonTwo);
myList.add(2, buttonThree);
myList.add(3, buttonFour);
myList.add(4, buttonFive);
myList.add(5, buttonSix);
myList.add(5, buttonSeven);
myList.add(5, buttonEight);
myList.add(5, buttonNine);
}
public void onClickButton(View view) {
if (view.equals(buttonOne)) {
CharSequence textOne = buttonOne.getText().toString();
if (!textOne.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonOne.setText("X");
buttonOne.setTextColor(Color.GREEN);
myList.remove(buttonOne);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
} else if (view.equals(buttonTwo)) {
CharSequence textTwo = buttonTwo.getText().toString();
if (!textTwo.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonTwo.setText("X");
buttonTwo.setTextColor(Color.GREEN);
myList.remove(buttonTwo);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
} else if (view.equals(buttonThree)) {
CharSequence textThree = buttonThree.getText().toString();
if (!textThree.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonThree.setText("X");
buttonThree.setTextColor(Color.GREEN);
myList.remove(buttonThree);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
} else if (view.equals(buttonFour)) {
CharSequence textFour = buttonFour.getText().toString();
if (!textFour.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonFour.setText("X");
buttonFour.setTextColor(Color.GREEN);
myList.remove(buttonFour);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
} else if (view.equals(buttonFive)) {
CharSequence textFive = buttonFive.getText().toString();
if (!textFive.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonFive.setText("X");
buttonFive.setTextColor(Color.GREEN);
myList.remove(buttonFive);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
}else if (view.equals(buttonSix)) {
CharSequence textSix = buttonSix.getText().toString();
if (!textSix.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonSix.setText("X");
buttonSix.setTextColor(Color.GREEN);
myList.remove(buttonSix);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
}else if (view.equals(buttonSeven)) {
CharSequence textSeven = buttonSeven.getText().toString();
if (!textSeven.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonSeven.setText("X");
buttonSeven.setTextColor(Color.GREEN);
myList.remove(buttonSeven);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
}else if (view.equals(buttonEight)) {
CharSequence textEight = buttonEight.getText().toString();
if (!textEight.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonEight.setText("X");
buttonEight.setTextColor(Color.GREEN);
myList.remove(buttonEight);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
}else if (view.equals(buttonNine)) {
CharSequence textNine = buttonNine.getText().toString();
if (!textNine.equals(" ")) {
Toast.makeText(this, "This filed is not empty, choose another.", Toast.LENGTH_SHORT).show();
} else {
buttonNine.setText("X");
buttonNine.setTextColor(Color.GREEN);
myList.remove(buttonNine);
Button random = myList.get(new Random().nextInt(myList.size()));
if (!random.equals(" ")) {
random.setText("O");
random.setTextColor(Color.RED);
}
}
}
}
}
私は何とか後で追加できますか? Button random = myList .get(新しいランダム()。nextInt(myList.size())); if(!random.equals( "")){ random.setText( "O"); random.setTextColor(Color.RED); 乱数がXまたはOと等しい場合は他の乱数を選択しますか? – SteveYo
とにかく、何が良いアプローチですか?私の友人の時間をありがとう。 – SteveYo
あなたはそれをすることができますが、2番目の乱数もXまたはOで占められたときはどうなりますか?だから、フリーフィールドを見つけてここにOを入れていくのが反復するほうがいい。 – Panczur