본문 바로가기

카테고리 없음

React 틱택토 게임 2편

1편에서 

state (상태)를 선언하고 setState 메소드를 통해서 플레이어 구분까지 완료했다.

 

 


한번 클릭한 버튼에 조건을 걸어서 중복클릭 금지하기.

위 이미지에서 ||뒤에 코드는  WINNER 후에 승자예측후 winner 가 없으면 계속 게임을 진행하게 하는 코드이다.

 

우선 앞의 코드를 설명해야 하는데 

- squares배열의 값이 null이 아닌경우 ( X 나 O 로 클릭되어있음)

 해당 함수 밑에 코드를 읽지않고 함수를 종료시킨다.

 

여기서 해당함수는 handleClcik함수이다.  

따라서 위의 조건문을 선언할 때는 위치가 굉장히 중요하다. 

 


승자결정

마지막으로 승자 결정 함수를 작성해보자

 

 

0 1 2
3 4 5
6 7 8

 

이라 생각하고 , 빙고가 되는 경우를 모두 찾아서 line이라는 변수에 넣어준다.

( ex 0,1,2가 되어야 1 line이 됨) 그리고 반복문과 if문을 이용한 비교를 통해 세 값이 일치하는 경우를 찾아보자

 

for문의 경우 i가 0일때 를 생각해보자

 

line[[0]] 은 = [[0,1,2]]가 된다. 

따라서 각각의 sqaures 배열이 가르키는 index 값은

다음과 같다.

sqaures[a]  = 0 , squares[b] = 1 , squares[c] =2 

 

if문은 세 값을 비교하는 것이고, 

세값이 같으면 a, b,c 중 하나를 return한다. 

 


return null; 은 승자가 나오지 않는 경우를 위해 작성한다.(게임이 계속 되어야 함)