React井字棋改進需求實現

2022-05-07 16:21:12 字數 1864 閱讀 4265

這篇文章並不是react教程。

主流前端框架:vue, react, angular,工作這兩年用過一次ag,其它都在使用vue,只有react接觸的實在是少。今天下班之餘開啟 react官網 想輕過一遍教程,看過教程的都知道上面提供了乙個井字棋遊戲實現的教程,官網那裡也寫的超級詳細,我就不再說了,我想實現的是教程末尾的改進:

我想完成的就是把官網教程末,改進遊戲的想法在前面的基礎上進行實現。

我本地是有安裝了較新版本的 node.js。

安裝完成 使用yarn start跑起這個專案

然後跟著教程走一遍,我這裡略過......,

到這,你就已經完成官方提供的教程例子。我開始往下:

需求1:在遊戲歷史記錄列表顯示每一步棋的座標,格式為 (列號, 行號)。

簡單分析:

完成前面內容的都知道九個格仔是可以用0-8作為下標index的,那這個需求就簡單了,只要把下標簡單換成橫縱座標,比如const arr = [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]]這樣乙個陣列取arr[index]就可以拿到橫縱座標,我用redercontent()實現了乙個落子詳情

const text = `第$步: $`

const text1 = `落子第$行,第$列`

return (

);});

return content}}

需求2:在歷史記錄列表中加粗顯示當前選擇的專案。

這個也很快,當前有存乙個stepnumber,那和對應的步驟找到關係,相等時去增加區分的樣式

classname=)}

return content

} // 渲染行內容

renderrow(x, y)

return content

}這樣你想渲染幾行幾列的**都是由你來決定了

需求4:新增乙個可以公升序或降序顯示歷史記錄的按鈕

jumptonext(v)  else )

}} else else )}}

}

如**所示,根據當前步驟,所在位置,首末的時候做個判斷。

需求5:每當有人獲勝時,高亮顯示連成一線的 3 顆棋子

分析:取到勝利時的三子座標,之前有個方法是用來判斷是否三子連線,我做了修改,加個引數flag,true的時候讓其返回對應的三子座標,再把對應座標的棋子加個樣式

calculatewinner(squares, flag = false)  else }}

return null;

}

效果:

需求6:當無人獲勝時,顯示乙個平局的訊息

當無子可下的時候,加個平局提醒,當沒出現勝利者,而步數為9則是平局

unity實現井字棋

一 簡介 井字棋是乙個很古老很簡單的遊戲,兩名玩家在乙個3x3的網格上畫上自己的圖示,每回合玩家只能選擇乙個格仔,率先將三個自己圖示連成一條直線的玩家獲勝 如果在九個格仔都被填充後仍沒有獲勝者,則判為平局。本遊戲用unity的imgui實現。二 實現效果 三 具體實現 1.基本資料 private ...

C 實現井字棋遊戲

初步實現雙玩家輸入,操作遊戲 下一步將實現人機博弈 include lwww.cppcns.comt iostream using namespace std void player1 void 玩家1輸入 操作 函式 void player2 void 玩家2輸入 操作 函式 void game ...

python實現簡單井字棋遊戲

井字棋,英文名叫tic tac toe,是一種在3 3格仔上進行的連珠遊戲,和五子棋類似,由於棋盤一般不畫邊框,格線排成井字故得名。遊戲需要的工具僅為紙和筆,然後由分別代表o和x的兩個遊戲者輪流在格仔裡留下標記 一般來說先手者為x 任意三個標記形成一條直線,則為獲勝。遊戲的難點在於,如何判斷連線成了...