-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
미해결
안녕하세요 코드 질문이요
22.03.10 18:19 작성 조회수 117
0
tictacto 컴포넌트
const reducer = (state, action) => {
switch (action.type) {
case CLICK_CELL: {
const tableData = [...state.tableData];
tableData[action.rowIndex] = [...tableData[action.rowIndex]];
tableData[action.rowIndex][action.cellIndex] = state.turn;
return {
...state,
tableData,
};
}
case CHANGE_TURN: {
return {
...state,
turn: state.turn === "O" ? "X" : "O",
};
}
case CHECK_WINNER: {
const { tableData, turn } = state;
if (
tableData[action.row][0] === turn &&
tableData[action.row][1] === turn &&
tableData[action.row][2] === turn
) {
return { ...state, winner: turn };
}
if (
tableData[0][action.cell] === turn &&
tableData[1][action.cell] === turn &&
tableData[2][action.cell] === turn
) {
return { ...state, winner: turn };
}
if (
tableData[0][0] === turn &&
tableData[1][1] === turn &&
tableData[2][0] === turn
) {
return { ...state, winner: turn };
}
if (
tableData[0][2] === turn &&
tableData[1][1] === turn &&
tableData[2][0] === turn
) {
return { ...state, winner: turn };
}
}
}
};
td 컴포넌트 에서는
dispatch({ type: CHECK_WINNER, row: rowIndex, cell: cellIndex });
이런식으로 주고 승자 판단을 해봤는데요. 이렇게 해도 크게 문제가
없는건가요?
답변을 작성해보세요.
0
답변 1