Blog

퍼즐 게임 – 개발일지 : 1일차

February 26, 2014

퍼즐 게임 – 개발일지 : 1일차

핵심 알고리즘? 로직?을 구현중이다. 뭐 딱히 핵심은 아니지만 그래도 중요한 부분이니. 

애니팡이나 비쥬얼드와 같은 게임 초기 보드 생성 알고리즘에서 처음에는 복잡하게 하나하나씩 비교해서 적어도 3개가 연속으로 안되게 생각했었는데, 그냥 무식하게 가로 또는 세로가 3개 연속이 되면 무조건 보드를 생성하게 만드는것도 복잡하지 않고 괜찮은 방법 같다. 


7×7 보드 기준으로, 적으면 20번 내외, 많아도 수천번 내외로 1초 내로 무조건 생성되는 것 같다. 물론 다른 기기도 한 번 테스트는 필요하나 크게 부담을 없을 것 같음. 


– (void)buildBoard{

  SJPoint point;

  NSInteger sameCount = 0;

  for(int i = 0; i < kMAX; i++){

    for(int j = 0; j < kMAX; j++){

      point.x = j;

      point.y = i;

      int rand = [self random];

      [self insertNumber:rand ToPoint:point];

      if(j >= 2){

        if((boardArray[i][j] == boardArray[i][j-1] && boardArray[i][j-1] == boardArray[i][j-2])){

          i = 0;

          j = 0;

          sameCount++;

          break;

        }

      }

      if( i >= 2 ){

        if((boardArray[i][j] == boardArray[i-1][j] && boardArray[i-1][j] == boardArray[i-2][j])){

          i = 0;

          j = 0;

          sameCount++;

          break;

        }

      }

    }

  }

  NSLog(@”%d”, sameCount);

}


iPhone 5 기준 

2014-02-26 21:33:06.577 [26042:60b] 90

2014-02-26 21:33:06.579 [26042:60b] 0.006682

2014-02-26 21:33:38.236 [26049:60b] 178

2014-02-26 21:33:38.237 [26049:60b] 0.011494


2014-02-26 21:33:49.827 [26055:60b] 389

2014-02-26 21:33:49.828 [26055:60b] 0.021833


2014-02-26 21:34:23.628 [26062:60b] 1107

2014-02-26 21:34:23.629 [26062:60b] 0.068760


2014-02-26 21:35:03.441 [26083:60b] 2126

2014-02-26 21:35:03.442 [26083:60b] 0.127345


저작자 표시
비영리