• 售前

  • 售后

热门帖子
入门百科

在 Android Studio 中创建井字游戏

[复制链接]
V刘晨曦 显示全部楼层 发表于 2022-1-12 13:41:13 |阅读模式 打印 上一主题 下一主题
  1. MainActivity.java
复制代码
  1. import android.content.Intent;
  2. import android.os.Bundle;
  3. import android.view.View;
  4. import android.widget.Button;
  5. import android.widget.Toast;
  6. import androidx.appcompat.app.AppCompatActivity;
  7. public class MainActivity extends AppCompatActivity {
  8.     Button b1, b2, b3, b4, b5, b6, b7, b8, b9;
  9.     int turn;
  10.     int draw;
  11.     Button playAgainButton;
  12.     @Override
  13.     protected void onCreate(Bundle savedInstanceState) {
  14.         super.onCreate(savedInstanceState);
  15.         setContentView(R.layout.activity_main);
  16.         b1 = (Button) findViewById(R.id.b1);
  17.         b2 = (Button) findViewById(R.id.b2);
  18.         b3 = (Button) findViewById(R.id.b3);
  19.         b4 = (Button) findViewById(R.id.b4);
  20.         b5 = (Button) findViewById(R.id.b5);
  21.         b6 = (Button) findViewById(R.id.b6);
  22.         b7 = (Button) findViewById(R.id.b7);
  23.         b8 = (Button) findViewById(R.id.b8);
  24.         b9 = (Button) findViewById(R.id.b9);
  25.         playAgainButton = (Button) findViewById(R.id.playAgainButton);
  26.         turn = 1;
  27.         draw = 1;
  28.         playAgainButton.setOnClickListener(new View.OnClickListener() {
  29.             public void onClick(View view) {
  30.                 Intent intent = new Intent(getApplicationContext(), MainActivity.class);
  31.                 startActivity(intent);
  32.                 finish();
  33.             }
  34.         });
  35.         b1.setOnClickListener(new View.OnClickListener() {
  36.             @Override
  37.             public void onClick(View view) {
  38.                 if (b1.getText().toString().equals("")) {
  39.                     if (turn == 1) {
  40.                         turn = 2;
  41.                         b1.setText("X");
  42.                     } else if (turn == 2) {
  43.                         turn = 1;
  44.                         b1.setText("O");
  45.                     }
  46.                 }
  47.                 endGame();
  48.                 draw++;
  49.             }
  50.         });
  51.         b2.setOnClickListener(new View.OnClickListener() {
  52.             @Override
  53.             public void onClick(View view) {
  54.                 if (b2.getText().toString().equals("")) {
  55.                     if (turn == 1) {
  56.                         turn = 2;
  57.                         b2.setText("X");
  58.                     } else if (turn == 2) {
  59.                         turn = 1;
  60.                         b2.setText("O");
  61.                     }
  62.                 }
  63.                 endGame();
  64.                 draw++;
  65.             }
  66.         });
  67.         b3.setOnClickListener(new View.OnClickListener() {
  68.             @Override
  69.             public void onClick(View view) {
  70.                 if (b3.getText().toString().equals("")) {
  71.                     if (turn == 1) {
  72.                         turn = 2;
  73.                         b3.setText("X");
  74.                     } else if (turn == 2) {
  75.                         turn = 1;
  76.                         b3.setText("O");
  77.                     }
  78.                 }
  79.                 endGame();
  80.                 draw++;
  81.             }
  82.         });
  83.         b4.setOnClickListener(new View.OnClickListener() {
  84.             @Override
  85.             public void onClick(View view) {
  86.                 if (b4.getText().toString().equals("")) {
  87.                     if (turn == 1) {
  88.                         turn = 2;
  89.                         b4.setText("X");
  90.                     } else if (turn == 2) {
  91.                         turn = 1;
  92.                         b4.setText("O");
  93.                     }
  94.                 }
  95.                 endGame();
  96.                 draw++;
  97.             }
  98.         });
  99.         b5.setOnClickListener(new View.OnClickListener() {
  100.             @Override
  101.             public void onClick(View view) {
  102.                 if (b5.getText().toString().equals("")) {
  103.                     if (turn == 1) {
  104.                         turn = 2;
  105.                         b5.setText("X");
  106.                     } else if (turn == 2) {
  107.                         turn = 1;
  108.                         b5.setText("O");
  109.                     }
  110.                 }
  111.                 endGame();
  112.                 draw++;
  113.             }
  114.         });
  115.         b6.setOnClickListener(new View.OnClickListener() {
  116.             @Override
  117.             public void onClick(View view) {
  118.                 if (b6.getText().toString().equals("")) {
  119.                     if (turn == 1) {
  120.                         turn = 2;
  121.                         b6.setText("X");
  122.                     } else if (turn == 2) {
  123.                         turn = 1;
  124.                         b6.setText("O");
  125.                     }
  126.                 }
  127.                 endGame();
  128.                 draw++;
  129.             }
  130.         });
  131.         b7.setOnClickListener(new View.OnClickListener() {
  132.             @Override
  133.             public void onClick(View view) {
  134.                 if (b7.getText().toString().equals("")) {
  135.                     if (turn == 1) {
  136.                         turn = 2;
  137.                         b7.setText("X");
  138.                     } else if (turn == 2) {
  139.                         turn = 1;
  140.                         b7.setText("O");
  141.                     }
  142.                 }
  143.                 endGame();
  144.                 draw++;
  145.             }
  146.         });
  147.         b8.setOnClickListener(new View.OnClickListener() {
  148.             @Override
  149.             public void onClick(View view) {
  150.                 if (b8.getText().toString().equals("")) {
  151.                     if (turn == 1) {
  152.                         turn = 2;
  153.                         b8.setText("X");
  154.                     } else if (turn == 2) {
  155.                         turn = 1;
  156.                         b8.setText("O");
  157.                     }
  158.                 }
  159.                 endGame();
  160.                 draw++;
  161.             }
  162.         });
  163.         b9.setOnClickListener(new View.OnClickListener() {
  164.             @Override
  165.             public void onClick(View view) {
  166.                 if (b9.getText().toString().equals("")) {
  167.                     if (turn == 1) {
  168.                         turn = 2;
  169.                         b9.setText("X");
  170.                     } else if (turn == 2) {
  171.                         turn = 1;
  172.                         b9.setText("O");
  173.                     }
  174.                 }
  175.                 endGame();
  176.                 draw++;
  177.             }
  178.         });
  179.     }
  180.     public void endGame() {
  181.         String a, b, c, d, e, f, g, h, i;
  182.         boolean end = false;
  183.         a = b1.getText().toString();
  184.         b = b2.getText().toString();
  185.         c = b3.getText().toString();
  186.         d = b4.getText().toString();
  187.         e = b5.getText().toString();
  188.         f = b6.getText().toString();
  189.         g = b7.getText().toString();
  190.         h = b8.getText().toString();
  191.         i = b9.getText().toString();
  192.         if (a.equals("X") && b.equals("X") && c.equals("X")) {
  193.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  194.             end = true;
  195.         }
  196.         if (a.equals("X") && e.equals("X") && i.equals("X")) {
  197.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  198.             end = true;
  199.         }
  200.         if (a.equals("X") && d.equals("X") && g.equals("X")) {
  201.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  202.             end = true;
  203.         }
  204.         if (b.equals("X") && e.equals("X") && h.equals("X")) {
  205.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  206.             end = true;
  207.         }
  208.         if (c.equals("X") && f.equals("X") && i.equals("X")) {
  209.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  210.             end = true;
  211.         }
  212.         if (d.equals("X") && e.equals("X") && f.equals("X")) {
  213.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  214.             end = true;
  215.         }
  216.         if (g.equals("X") && h.equals("X") && i.equals("X")) {
  217.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  218.             end = true;
  219.         }
  220.         if (g.equals("X") && e.equals("X") && c.equals("X")) {
  221.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  222.             end = true;
  223.         }
  224.         if (a.equals("O") && b.equals("O") && c.equals("O")) {
  225.             Toast.makeText(MainActivity.this, "Winner Player O!", Toast.LENGTH_LONG).show();
  226.             end = true;
  227.         }
  228.         if (a.equals("O") && e.equals("O") && i.equals("O")) {
  229.             Toast.makeText(MainActivity.this, "Winner Player O!", Toast.LENGTH_LONG).show();
  230.             end = true;
  231.         }
  232.         if (a.equals("O") && d.equals("O") && g.equals("O")) {
  233.             Toast.makeText(MainActivity.this, "Winner Player O!", Toast.LENGTH_LONG).show();
  234.             end = true;
  235.         }
  236.         if (b.equals("O") && e.equals("O") && h.equals("O")) {
  237.             Toast.makeText(MainActivity.this, "Winner Player O!", Toast.LENGTH_LONG).show();
  238.             end = true;
  239.         }
  240.         if (c.equals("O") && f.equals("O") && i.equals("O")) {
  241.             Toast.makeText(MainActivity.this, "Winner Player O!", Toast.LENGTH_LONG).show();
  242.             end = true;
  243.         }
  244.         if (d.equals("O") && e.equals("O") && f.equals("O")) {
  245.             Toast.makeText(MainActivity.this, "Winner Player O!", Toast.LENGTH_LONG).show();
  246.             end = true;
  247.         }
  248.         if (g.equals("O") && h.equals("O") && i.equals("O")) {
  249.             Toast.makeText(MainActivity.this, "Winner Player O!", Toast.LENGTH_LONG).show();
  250.             end = true;
  251.         }
  252.         if (g.equals("O") && e.equals("O") && c.equals("O")) {
  253.             Toast.makeText(MainActivity.this, "Winner Player X!", Toast.LENGTH_LONG).show();
  254.             end = true;
  255.         }
  256.         if (end) {
  257.             b1.setEnabled(false);
  258.             b2.setEnabled(false);
  259.             b3.setEnabled(false);
  260.             b4.setEnabled(false);
  261.             b5.setEnabled(false);
  262.             b6.setEnabled(false);
  263.             b7.setEnabled(false);
  264.             b8.setEnabled(false);
  265.             b9.setEnabled(false);
  266.             playAgainButton.setVisibility(View.VISIBLE);
  267.         }
  268.         if (draw == 9 && !end) {
  269.             Toast.makeText(MainActivity.this, "Draw Game!", Toast.LENGTH_LONG).show();
  270.             playAgainButton.setVisibility(View.VISIBLE);
  271.         }
  272.     }
  273. }
复制代码
activity_main.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     xmlns:tools="http://schemas.android.com/tools"
  4.     android:layout_width="match_parent"
  5.     android:layout_height="wrap_content"
  6.     android:orientation="vertical"
  7.     android:paddingLeft="@dimen/activity_horizontal_margin"
  8.     android:paddingTop="@dimen/activity_horizontal_margin"
  9.     android:paddingRight="@dimen/activity_horizontal_margin"
  10.     android:paddingBottom="@dimen/activity_vertical_margin"
  11.     android:weightSum="3"
  12.     tools:context="com.boriskonan.tictactoe.MainActivity">
  13.     <LinearLayout
  14.         android:layout_width="match_parent"
  15.         android:layout_height="120dp"
  16.         android:weightSum="3">
  17.         <Button
  18.             android:id="@+id/b1"
  19.             android:layout_width="match_parent"
  20.             android:layout_height="match_parent"
  21.             android:layout_weight="1"
  22.             android:textSize="50dp" />
  23.         <Button
  24.             android:id="@+id/b2"
  25.             android:layout_width="match_parent"
  26.             android:layout_height="match_parent"
  27.             android:layout_weight="1"
  28.             android:textSize="50dp" />
  29.         <Button
  30.             android:id="@+id/b3"
  31.             android:layout_width="match_parent"
  32.             android:layout_height="match_parent"
  33.             android:layout_weight="1"
  34.             android:textSize="50dp" />
  35.     </LinearLayout>
  36.     <LinearLayout
  37.         android:layout_width="match_parent"
  38.         android:layout_height="120dp"
  39.         android:weightSum="3">
  40.         <Button
  41.             android:id="@+id/b4"
  42.             android:layout_width="match_parent"
  43.             android:layout_height="match_parent"
  44.             android:layout_weight="1"
  45.             android:textSize="50dp" />
  46.         <Button
  47.             android:id="@+id/b5"
  48.             android:layout_width="match_parent"
  49.             android:layout_height="match_parent"
  50.             android:layout_weight="1"
  51.             android:textSize="50dp" />
  52.         <Button
  53.             android:id="@+id/b6"
  54.             android:layout_width="match_parent"
  55.             android:layout_height="match_parent"
  56.             android:layout_weight="1"
  57.             android:textSize="50dp" />
  58.     </LinearLayout>
  59.     <LinearLayout
  60.         android:layout_width="match_parent"
  61.         android:layout_height="120dp"
  62.         android:weightSum="3">
  63.         <Button
  64.             android:id="@+id/b7"
  65.             android:layout_width="match_parent"
  66.             android:layout_height="match_parent"
  67.             android:layout_weight="1"
  68.             android:textSize="50dp" />
  69.         <Button
  70.             android:id="@+id/b8"
  71.             android:layout_width="match_parent"
  72.             android:layout_height="match_parent"
  73.             android:layout_weight="1"
  74.             android:textSize="50dp" />
  75.         <Button
  76.             android:id="@+id/b9"
  77.             android:layout_width="match_parent"
  78.             android:layout_height="match_parent"
  79.             android:layout_weight="1"
  80.             android:textSize="50dp" />
  81.     </LinearLayout>
  82.     <Button
  83.         android:id="@+id/playAgainButton"
  84.         android:layout_width="wrap_content"
  85.         android:layout_height="wrap_content"
  86.         android:onClick="playAgain"
  87.         android:text="Play Again"
  88.         android:visibility="invisible"
  89.         tools:ignore="OnClick" />
  90. </LinearLayout>
复制代码




来源:https://blog.caogenba.net/allway2/article/details/122432952
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作