java井字棋编程的收获_Java 井字棋小结
1.井字棋獲勝的四種情況
橫行全為同一符號
豎行全為同一符號
斜對角線為同一符號
反對角線為同一符號
2.編程思路
構建數組(二維)讀入數據
分四個部分,分別判斷橫行,豎行,對角線,反對角線是否滿足條件
輸出結果,存在兩種情況,有勝負,無勝負
3.上代碼
import java.util.Scanner;
public class 井字棋 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int size = 3;
int [][] board = new int[3][3];
boolean getresult = false;
int xnum = 0;
int ynum = 0;
for(int i=0;i
{
//內層循環的board[i].length是防止索引超出范圍,若是j.length會出現board[3].length的情況
for(int j=0;j
{
board[i][j] = in.nextInt();
}
}
for(int i=0;i
{
for(int j=0;j
{
if (board[i][j] == 1)
{
xnum += 1;
}
else
{
ynum += 1;
}
}
if(xnum ==3|| ynum==3)
{
getresult = true;
break;
}
xnum = 0;
ynum = 0;
//初始化計數,防止到下一行疊加
}
// 判斷豎行
if(!getresult)
{ for(int j=0;j
{
for(int i=0;i
{
if (board[i][j] == 1)
{
xnum += 1;
}
else
{
ynum += 1;
}
}
if(xnum ==3|| ynum==3)
{
getresult = true;
break;
}
xnum = 0;
ynum = 0;
}
}
// 判斷斜對角
if(!getresult)
{
for(int i=0;i
{
for(int j=0;j
{
if(i==j)
{
if(board[i][j]==1)
{
xnum += 1;
}
else
{
ynum += 1;
}
}
}
if(xnum ==3|| ynum==3)
{
getresult = true;
break;
}
}
}
//判斷反斜對角線
if(!getresult)
{
for(int i=0;i
{
for(int j=0;j
{
if(i+j==2)
{
if(board[i][j]==1)
{
xnum += 1;
}
else
{
ynum += 1;
}
}
}
if(xnum ==3|| ynum==3)
{
getresult = true;
break;
}
}
}
if(getresult)
{
if(xnum ==3)
{
System.out.println("x");
}
else
{
System.out.println("o");
}
}
else
{
System.out.println("NO");
}
}
}
4.小結
遍歷二維數組時可以讓第二維度的j放到外循環,從而達到控制列不變行變
數據處理過后要考慮數據的初始化,以防下次處理數據造成數據疊加
可以定義一個布爾值來判斷是否達成條件,分隔不同的程序情況
總結
以上是生活随笔為你收集整理的java井字棋编程的收获_Java 井字棋小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mediawiki
- 下一篇: 2020 双 11 京东全民营业一键自动