1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA CHAN : 자 보자 열 다섯 재미. 3 00:00:11,332 --> 00:00:15,680 열 다섯는 당신이 얻을 첫 번째 게임이다 구현은 상호 작용의 수 있습니다. 4 00:00:15,680 --> 00:00:16,410 이제 걱정 없습니다. 5 00:00:16,410 --> 00:00:18,830 당신은 작성하지 않아도 모든 것은 자신. 6 00:00:18,830 --> 00:00:22,320 배포 코드를보고 있기 때문에 게임 구조의 많은 이미 7 00:00:22,320 --> 00:00:23,880 당신을 위해 설정합니다. 8 00:00:23,880 --> 00:00:28,160 그것은 허용하고 명령 줄을 구문 분석 사용자로부터 인수를 생성 9 00:00:28,160 --> 00:00:31,230 보드는 입력을 기반으로. 10 00:00:31,230 --> 00:00:35,570 그것은 게임이 승리하면 확인하고 종료 사용자의 게임을 승리하면. 11 00:00:35,570 --> 00:00:38,340 그리고 게임을 이기기 위해, 그것을 가져 사용자로부터의 입력 및 12 00:00:38,340 --> 00:00:40,610 이동 함수를 호출합니다. 13 00:00:40,610 --> 00:00:44,600 >> 그래서 우리는 네 구현 될 것입니다 열 다섯의 게임 기능, 14 00:00:44,600 --> 00:00:48,110 초기화, 그리기, 이동 및 원. 15 00:00:48,110 --> 00:00:50,340 먼저, 초기화를 해결 할 수 있습니다. 16 00:00:50,340 --> 00:00:55,150 초기화에서 초기화를 위해, 우리는 대표 2D 정수 어레이 기판. 17 00:00:55,150 --> 00:01:01,070 그리고 이것은라는 글로벌 변수 치수 MAX, 그리고 MAX와 보드, 18 00:01:01,070 --> 00:01:03,880 보드의 최대 크기. 19 00:01:03,880 --> 00:01:07,310 이제 보드의 실제 치수 표현 사용자에 의해 주어진다 20 00:01:07,310 --> 00:01:10,620 정수 D, 할 수 MAX 이상이어야한다. 21 00:01:10,620 --> 00:01:14,660 그러나, C, 당신은 배열의 크기를 조정할 수 있습니다, 그래서 당신이 함께 붙어있어 22 00:01:14,660 --> 00:01:16,730 그 최대 치수. 23 00:01:16,730 --> 00:01:19,870 >> 초기화에 대한 여러분의 작업은 채우는 것입니다 보드의 값 24 00:01:19,870 --> 00:01:21,860 올바른 값. 25 00:01:21,860 --> 00:01:26,910 이제, 우리는 1 차원 배열을 볼 수 있습니다 만, 한 어떻게 2 차원 배열은 작동합니까?은 26 00:01:26,910 --> 00:01:30,985 이 행의 인덱스입니다, 제로 의 또한 다음 언제나처럼 색인 및 27 00:01:30,985 --> 00:01:32,100 열. 28 00:01:32,100 --> 00:01:36,120 그리고 당신은에있는 그리드를 채울 수 있습니다 다만 다음과 같이 값을 내림차순으로. 29 00:01:36,120 --> 00:01:43,260 그리드, 0, 0, 0 행, 열 0 그리드 0, 1, 7입니다 8입니다. 30 00:01:43,260 --> 00:01:48,500 이것은 예를 들어입니다 D, 작은 D는 3입니다. 31 00:01:48,500 --> 00:01:52,690 >> 이제 열 다섯의 이사회는해야 당신이 이제까지 한 경우 빈 타일을 포함 32 00:01:52,690 --> 00:01:54,280 실제 게임을했다. 33 00:01:54,280 --> 00:01:59,210 그러나, 보드는 정수 배열이며, 그래서 모든 값은 정수 여야합니다. 34 00:01:59,210 --> 00:02:06,950 그래서 정수를 결정하는 당신까지 빈 타일을 나타내는 값. 35 00:02:06,950 --> 00:02:10,460 보드를 초기화하기 위해 사용할 수 있습니다 포함하는 루프 구조 36 00:02:10,460 --> 00:02:16,440 보드의 시작 상태, 위치 보드 내가 J 요소의를 나타냅니다 37 00:02:16,440 --> 00:02:19,380 행 i와 열 j를. 38 00:02:19,380 --> 00:02:23,035 그들은, 내림차순으로 시작 기억이 경우 타일의 수 39 00:02:23,035 --> 00:02:29,590 홀수, 당신은해야 할 것입니다 2의 1의 위치를​​ 교환합니다. 40 00:02:29,590 --> 00:02:33,790 그래서 거기에서, 우리는이 우리의 초기화 보드. 41 00:02:33,790 --> 00:02:37,440 >> 이제, 우리는 초기화 한 우리의 , 그것을 그리는 시간 보드입니다. 42 00:02:37,440 --> 00:02:41,260 무승부의 현재 상태를 인쇄합니다 보드,하지만 당신은 확인해야합니다 43 00:02:41,260 --> 00:02:44,260 동일한 순서로 타일을 인쇄 당신이 그들을 초기화했다고. 44 00:02:44,260 --> 00:02:47,300 그리고 당신은 또한 포맷해야 당신의 번호를 올바르게. 45 00:02:47,300 --> 00:02:51,700 우리는 한 자리를 가지고 있기 때문에 두 자릿수는, 당신은 원하는 46 00:02:51,700 --> 00:02:54,540 전에 빈 공간을 인쇄 단일 자리 숫자. 47 00:02:54,540 --> 00:03:00,150 당신이 사용하여 그 사용 자리 -. 48 00:03:00,150 --> 00:03:02,550 >> 하지만 우리의 빈 공간을 기억합니다. 49 00:03:02,550 --> 00:03:05,970 우리는 실제 번호를 인쇄하지 않을 우리는 표현하기 위해 선택한 것을 50 00:03:05,970 --> 00:03:10,410 그 빈 보드 공간, 그러나 우리는 또한 아무 것도 인쇄하지 않으. 51 00:03:10,410 --> 00:03:15,310 그래서 당신이 할 수있는 것은 기호를 정의하는 것입니다 또는 대표 문자 52 00:03:15,310 --> 00:03:17,050 빈 타일. 53 00:03:17,050 --> 00:03:21,030 앞의 예에서 나는 선택했습니다 강조하고 당신은 인쇄 54 00:03:21,030 --> 00:03:26,970 당신은 빈에 도달 할 때마다 드로우 기능 공간. 55 00:03:26,970 --> 00:03:29,850 >> 그래서 그릴은 루프를 중첩됩니다. 56 00:03:29,850 --> 00:03:31,150 이런 식으로 뭔가. 57 00:03:31,150 --> 00:03:35,660 각 행에 대해, 다음의 각 값에 대한 행, 당신은 인쇄거야 58 00:03:35,660 --> 00:03:36,940 이 공간에있는 값입니다. 59 00:03:36,940 --> 00:03:39,470 당신은 모든 값을 인쇄 한 후에 행에서, 다음 60 00:03:39,470 --> 00:03:41,180 새 줄을 인쇄 할 수 있습니다. 61 00:03:41,180 --> 00:03:47,730 기억하십시오 드로우의 주문 함수의 순서를 에코 또는 미러링합니다 62 00:03:47,730 --> 00:03:48,980 당신의 초기화 함수. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> 당신은 보드를 초기화하고 지금 당신이 그것을 그려으니 할 시간이다 65 00:03:55,160 --> 00:03:58,500 사용자가 편집하고 그들의 움직임을 확인합니다. 66 00:03:58,500 --> 00:04:03,840 그래서 Fifteen.c 기능에, 이 프로그램은 사용자로부터 입력을 받아, 67 00:04:03,840 --> 00:04:07,690 다음 통과, 이동 함수를 호출 타일​​의 개수가 68 00:04:07,690 --> 00:04:09,270 사용자가 이동하고자합니다. 69 00:04:09,270 --> 00:04:10,380 자, 조심하십시오. 70 00:04:10,380 --> 00:04:14,200 이것은 타일의 실제 수이며 하지의 실제 위치. 71 00:04:14,200 --> 00:04:19,010 그래서, 당신은 타일의 검색해야합니다 어디 알 수있는 위치. 72 00:04:19,010 --> 00:04:23,440 >> 지금, 당신은 사용자에게 허용해야 이 법률의 경우 움직임을 확인합니다. 73 00:04:23,440 --> 00:04:27,910 법적 조치는 어떤 스타일입니다 빈 타일에 인접. 74 00:04:27,910 --> 00:04:32,020 즉,에, 위와 아래, 의미 그리고 왼쪽에서 오른쪽으로. 75 00:04:32,020 --> 00:04:34,680 그래서 당신은 알 필요가 어디 빈 타일은 물론이다. 76 00:04:34,680 --> 00:04:39,720 이제, 모든 당신이 검색하는 이동 사용자 타일,하지만 아마 77 00:04:39,720 --> 00:04:43,030 빈 타일을 검색하는 것이 가장 없습니다 당신이 그 일을하고 있기 때마다 78 00:04:43,030 --> 00:04:45,270 매번 사용자가 이동하고자합니다. 79 00:04:45,270 --> 00:04:50,300 그래서, 대신, 기억하는 것이 가장 좋습니다 곳 빈 타일을 사용하고 있습니다 80 00:04:50,300 --> 00:04:52,650 물론 변수를 지명했다​​. 81 00:04:52,650 --> 00:04:55,970 당신은 사용자가 만들 수 있도록 그래서 일단 자신의 이동, 그들은 잘에 그들의 82 00:04:55,970 --> 00:04:59,700 열 다섯의 게임을 승리하는 방법입니다. 83 00:04:59,700 --> 00:05:03,940 >> 열 다섯, 타일의 게임에서이기려면 특정한 순서로되어 있고, 84 00:05:03,940 --> 00:05:06,970 원 기능이 있는지 여부를 확인 게임에서 이길 수있다. 85 00:05:06,970 --> 00:05:10,290 그것은 게임이 승리하면 True를 반환하고 타일​​이 올바른 순서로되어, 86 00:05:10,290 --> 00:05:12,210 그렇지 않은 경우는 false. 87 00:05:12,210 --> 00:05:15,830 그래서 열 다섯, 타일의 게임에서이기려면 더불어, 순서를 증가해야 88 00:05:15,830 --> 00:05:19,230 오른쪽 하단 모서리에있는 빈 타일. 89 00:05:19,230 --> 00:05:23,630 그래서 당신은 어떻게 확인합니까 여부를 사용자 오른쪽에 보드를 이동했습니다 90 00:05:23,630 --> 00:05:25,010 방향? 91 00:05:25,010 --> 00:05:29,200 >> 글쎄, 당신은 보드를 통해 반복하고 있습니다 있는지 확인하기 위해 값을 확인 92 00:05:29,200 --> 00:05:30,550 그들은 바로 이곳에 있어요. 93 00:05:30,550 --> 00:05:33,910 이렇게하려면, 당신은 중첩 사용할 수 있습니다 당신이 그랬던 것처럼 루프 94 00:05:33,910 --> 00:05:36,520 추첨 및 초기화합니다. 95 00:05:36,520 --> 00:05:40,430 확인하는 방법에는 몇 가지가 있습니다 그리고 보드가 있는지 여부를 확인 96 00:05:40,430 --> 00:05:42,860 정확하고 승리 형성하지만. 97 00:05:42,860 --> 00:05:47,330 당신이 왼쪽에서 오른쪽으로 이동하는 경우, 시작 위에서 아래 행에서 다음의 모든 98 00:05:47,330 --> 00:05:50,590 숫자보다 커야 이전. 99 00:05:50,590 --> 00:05:54,530 당신은했습니다 가치를 무엇에주의 하지만 당신의 빈 타일을 위해 선택. 100 00:05:54,530 --> 00:05:59,250 >> 또는 당신은에 카운터 변수를 사용할 수 있습니다 경우에, 각 값이 제자리에 있도록 101 00:05:59,250 --> 00:06:03,660 당신은 어떤 종류의 마련 이를 대표하는 공식. 102 00:06:03,660 --> 00:06:06,250 그래서 실험 재미를 수학. 103 00:06:06,250 --> 00:06:10,930 당신은 방법, 수익에 도달 한 후에는 사실 사용자가 게임을 수상했다 번. 104 00:06:10,930 --> 00:06:15,950 그러나 어떤 가치가 잘못 반환하는 경우 거짓, 사용자는 계속 이동합니다 105 00:06:15,950 --> 00:06:18,440 그들은 경기를 승리하지 않았기 때문에. 106 00:06:18,440 --> 00:06:23,030 당신은 함께,이 검사를 구현하면 초기화와 함께, 그리기 및 이동 107 00:06:23,030 --> 00:06:25,110 당신은 열 다섯의 게임을 완료했습니다. 108 00:06:25,110 --> 00:06:27,620 축하와 재미를 재생합니다. 109 00:06:27,620 --> 00:06:30,600 내 이름은 Zamyla 그리고 이것은 CS50입니다. 110 00:06:30,600 --> 00:06:37,632