ZAMYLA CHAN : 자 보자 열 다섯 재미. 열 다섯는 당신이 얻을 첫 번째 게임이다 구현은 상호 작용의 수 있습니다. 이제 걱정 없습니다. 당신은 작성하지 않아도 모든 것은 자신. 배포 코드를보고 있기 때문에 게임 구조의 많은 이미 당신을 위해 설정합니다. 그것은 허용하고 명령 줄을 구문 분석 사용자로부터 인수를 생성 보드는 입력을 기반으로. 그것은 게임이 승리하면 확인하고 종료 사용자의 게임을 승리하면. 그리고 게임을 이기기 위해, 그것을 가져 사용자로부터의 입력 및 이동 함수를 호출합니다. 그래서 우리는 네 구현 될 것입니다 열 다섯의 게임 기능, 초기화, 그리기, 이동 및 원. 먼저, 초기화를 해결 할 수 있습니다. 초기화에서 초기화를 위해, 우리는 대표 2D 정수 어레이 기판. 그리고 이것은라는 글로벌 변수 치수 MAX, 그리고 MAX와 보드, 보드의 최대 크기. 이제 보드의 실제 치수 표현 사용자에 의해 주어진다 정수 D, 할 수 MAX 이상이어야한다. 그러나, C, 당신은 배열의 크기를 조정할 수 있습니다, 그래서 당신이 함께 붙어있어 그 최대 치수. 초기화에 대한 여러분의 작업은 채우는 것입니다 보드의 값 올바른 값. 이제, 우리는 1 차원 배열을 볼 수 있습니다 만, 한 어떻게 2 차원 배열은 작동합니까?은 이 행의 인덱스입니다, 제로 의 또한 다음 언제나처럼 색인 및 열. 그리고 당신은에있는 그리드를 채울 수 있습니다 다만 다음과 같이 값을 내림차순으로. 그리드, 0, 0, 0 행, 열 0 그리드 0, 1, 7입니다 8입니다. 이것은 예를 들어입니다 D, 작은 D는 3입니다. 이제 열 다섯의 이사회는해야 당신이 이제까지 한 경우 빈 타일을 포함 실제 게임을했다. 그러나, 보드는 정수 배열이며, 그래서 모든 값은 정수 여야합니다. 그래서 정수를 결정하는 당신까지 빈 타일을 나타내는 값. 보드를 초기화하기 위해 사용할 수 있습니다 포함하는 루프 구조 보드의 시작 상태, 위치 보드 내가 J 요소의를 나타냅니다 행 i와 열 j를. 그들은, 내림차순으로 시작 기억이 경우 타일의 수 홀수, 당신은해야 할 것입니다 2의 1의 위치를​​ 교환합니다. 그래서 거기에서, 우리는이 우리의 초기화 보드. 이제, 우리는 초기화 한 우리의 , 그것을 그리는 시간 보드입니다. 무승부의 현재 상태를 인쇄합니다 보드,하지만 당신은 확인해야합니다 동일한 순서로 타일을 인쇄 당신이 그들을 초기화했다고. 그리고 당신은 또한 포맷해야 당신의 번호를 올바르게. 우리는 한 자리를 가지고 있기 때문에 두 자릿수는, 당신은 원하는 전에 빈 공간을 인쇄 단일 자리 숫자. 당신이 사용하여 그 사용 자리 -. 하지만 우리의 빈 공간을 기억합니다. 우리는 실제 번호를 인쇄하지 않을 우리는 표현하기 위해 선택한 것을 그 빈 보드 공간, 그러나 우리는 또한 아무 것도 인쇄하지 않으. 그래서 당신이 할 수있는 것은 기호를 정의하는 것입니다 또는 대표 문자 빈 타일. 앞의 예에서 나는 선택했습니다 강조하고 당신은 인쇄 당신은 빈에 도달 할 때마다 드로우 기능 공간. 그래서 그릴은 루프를 중첩됩니다. 이런 식으로 뭔가. 각 행에 대해, 다음의 각 값에 대한 행, 당신은 인쇄거야 이 공간에있는 값입니다. 당신은 모든 값을 인쇄 한 후에 행에서, 다음 새 줄을 인쇄 할 수 있습니다. 기억하십시오 드로우의 주문 함수의 순서를 에코 또는 미러링합니다 당신의 초기화 함수. 당신은 보드를 초기화하고 지금 당신이 그것을 그려으니 할 시간이다 사용자가 편집하고 그들의 움직임을 확인합니다. 그래서 Fifteen.c 기능에, 이 프로그램은 사용자로부터 입력을 받아, 다음 통과, 이동 함수를 호출 타일​​의 개수가 사용자가 이동하고자합니다. 자, 조심하십시오. 이것은 타일의 실제 수이며 하지의 실제 위치. 그래서, 당신은 타일의 검색해야합니다 어디 알 수있는 위치. 지금, 당신은 사용자에게 허용해야 이 법률의 경우 움직임을 확인합니다. 법적 조치는 어떤 스타일입니다 빈 타일에 인접. 즉,에, 위와 아래, 의미 그리고 왼쪽에서 오른쪽으로. 그래서 당신은 알 필요가 어디 빈 타일은 물론이다. 이제, 모든 당신이 검색하는 이동 사용자 타일,하지만 아마 빈 타일을 검색하는 것이 가장 없습니다 당신이 그 일을하고 있기 때마다 매번 사용자가 이동하고자합니다. 그래서, 대신, 기억하는 것이 가장 좋습니다 곳 빈 타일을 사용하고 있습니다 물론 변수를 지명했다​​. 당신은 사용자가 만들 수 있도록 그래서 일단 자신의 이동, 그들은 잘에 그들의 열 다섯의 게임을 승리하는 방법입니다. 열 다섯, 타일의 게임에서이기려면 특정한 순서로되어 있고, 원 기능이 있는지 여부를 확인 게임에서 이길 수있다. 그것은 게임이 승리하면 True를 반환하고 타일​​이 올바른 순서로되어, 그렇지 않은 경우는 false. 그래서 열 다섯, 타일의 게임에서이기려면 더불어, 순서를 증가해야 오른쪽 하단 모서리에있는 빈 타일. 그래서 당신은 어떻게 확인합니까 여부를 사용자 오른쪽에 보드를 이동했습니다 방향? 글쎄, 당신은 보드를 통해 반복하고 있습니다 있는지 확인하기 위해 값을 확인 그들은 바로 이곳에 있어요. 이렇게하려면, 당신은 중첩 사용할 수 있습니다 당신이 그랬던 것처럼 루프 추첨 및 초기화합니다. 확인하는 방법에는 몇 가지가 있습니다 그리고 보드가 있는지 여부를 확인 정확하고 승리 형성하지만. 당신이 왼쪽에서 오른쪽으로 이동하는 경우, 시작 위에서 아래 행에서 다음의 모든 숫자보다 커야 이전. 당신은했습니다 가치를 무엇에주의 하지만 당신의 빈 타일을 위해 선택. 또는 당신은에 카운터 변수를 사용할 수 있습니다 경우에, 각 값이 제자리에 있도록 당신은 어떤 종류의 마련 이를 대표하는 공식. 그래서 실험 재미를 수학. 당신은 방법, 수익에 도달 한 후에는 사실 사용자가 게임을 수상했다 번. 그러나 어떤 가치가 잘못 반환하는 경우 거짓, 사용자는 계속 이동합니다 그들은 경기를 승리하지 않았기 때문에. 당신은 함께,이 검사를 구현하면 초기화와 함께, 그리기 및 이동 당신은 열 다섯의 게임을 완료했습니다. 축하와 재미를 재생합니다. 내 이름은 Zamyla 그리고 이것은 CS50입니다.