Имитация щелчка AI в Android Studio - PullRequest
0 голосов
/ 21 ноября 2018

Я сделал игру в крестики-нолики в Android Studios.Я также создал ИИ, с которым игрок может играть, однако ИИ не нужно «щелкать», потому что он может просто установить значения определенной строки и столбца на свое значение (X или 0).Есть ли способ симулировать клик от ИИ?

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <Button
            android:id="@+id/button_00"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>

        <Button
            android:id="@+id/button_01"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>

        <Button
            android:id="@+id/button_02"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <Button
            android:id="@+id/button_10"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>

        <Button
            android:id="@+id/button_11"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>

        <Button
            android:id="@+id/button_12"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <Button
            android:id="@+id/button_20"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>

        <Button
            android:id="@+id/button_21"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>

        <Button
            android:id="@+id/button_22"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:textSize="60sp"/>
    </LinearLayout>

Моя раскладка довольно проста, и в режиме «мой игрок против игрока» клики выглядят так:

if(!((Button) v).getText().toString().equals("")){return;}
if(player1turn){ ((Button) v).setText("X"); 
        }else{ ((Button) v).setText("O"); }

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете вызвать Button.performClick()

Вызвать OnClickListener этого представления, если оно определено.Выполняет все обычные действия, связанные с кликом: сообщение о событии доступности, воспроизведение звука и т. Д.

...