這篇文章並不是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 任意三個標記形成一條直線,則為獲勝。遊戲的難點在於,如何判斷連線成了...