• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

안녕하세요 코드 질문이요

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 });
이런식으로 주고 승자 판단을 해봤는데요. 이렇게 해도 크게 문제가
없는건가요?

답변 1

답변을 작성해보세요.

0

네 코드가 어떻든 잘 돌아간다면 일차적으로는 문제 없습니다.