1 00:00:00,000 --> 00:00:09,870 2 00:00:09,870 --> 00:00:13,360 >> ZAMYLA CHAN : 음, 여기에 우리가 있습니다, 마지막으로 P-설정 CS50에. 3 00:00:13,360 --> 00:00:17,040 데에서 자신을 축하드립니다 지금까지 온 첫 번째 헬로 이후 4 00:00:17,040 --> 00:00:20,090 세계 및 인쇄하기 마리오 피라미드. 5 00:00:20,090 --> 00:00:21,930 당신은 지난 주 웹 사이트를했다. 6 00:00:21,930 --> 00:00:25,110 그리고 우리는 또 다른 하나를 만드는 될 것입니다 이번 주, 한 당신은 할 수 있다는 7 00:00:25,110 --> 00:00:28,570 따기, 하버드 캠퍼스 드라이브 CS50 직원들과 최대 8 00:00:28,570 --> 00:00:31,910 그들을 다시 데려 자신의 주거 주택. 9 00:00:31,910 --> 00:00:35,400 >> 이제, 지난 주에 우리는 PHP에서 근무 서버 측 언어. 10 00:00:35,400 --> 00:00:38,250 이 P-세트를 위해, 우리는 도입한다는 거 입니다 자바 스크립트에 11 00:00:38,250 --> 00:00:40,610 클라이언트 측 언어. 12 00:00:40,610 --> 00:00:44,020 그럼 몇 가지를 살펴 보자 제공의 유통 코드 13 00:00:44,020 --> 00:00:46,210 이 P-세트에 대한. 14 00:00:46,210 --> 00:00:49,700 자바 스크립트를 폴더에,이 것 자바 스크립트 파일들을합니다. 15 00:00:49,700 --> 00:00:53,600 >> 를 포함 buildings.js은있다 하버드 주변 건물의 배열 16 00:00:53,600 --> 00:00:57,340 자신의 정보와 캠퍼스 및 위치. 17 00:00:57,340 --> 00:01:01,630 Houses.js 하버드의 배열 주거 주택들은 18 00:01:01,630 --> 00:01:04,030 위도와 경도. 19 00:01:04,030 --> 00:01:08,600 Passengers.js는 배열을 포함 승객, CS50 직원들 20 00:01:08,600 --> 00:01:11,640 당신은 다시 데려 할 거라고 그들의 주거 주택. 21 00:01:11,640 --> 00:01:16,450 >> 많이 포함 Math3D.js, 운동과 함께 할 수있는 기능. 22 00:01:16,450 --> 00:01:19,500 당신이 수학적으로 마음이 있다면, 다음 난 당신이 봐 오신 것을 환영합니다. 23 00:01:19,500 --> 00:01:23,530 하지만 당신은 이해 할 필요가 없습니다 거기에있는 모든. 24 00:01:23,530 --> 00:01:26,710 Shuttle.js, 그 다루는 셔틀의 움직임. 25 00:01:26,710 --> 00:01:31,450 그리고 index.html을 홈 페이지입니다 모든 것이 정말 일어나는 곳 26 00:01:31,450 --> 00:01:33,610 사용자가 사이트와 상호 작용한다. 27 00:01:33,610 --> 00:01:39,110 >> Service.css는 CSS 스타일 시트입니다, 이는 트위터에 추가 28 00:01:39,110 --> 00:01:43,960 부트 스트랩 라이브러리, 컨트롤 방법 index.html을 보인다. 29 00:01:43,960 --> 00:01:48,190 그리고 우리는 또한 service.js을 가지고있는 에 대한 서비스 기능이 포함되어 30 00:01:48,190 --> 00:01:49,010 셔틀 버스 운행. 31 00:01:49,010 --> 00:01:53,010 그리고 여기 당신이 될 것입니다 어디에 해야 할 일의 일부에 작성합니다. 32 00:01:53,010 --> 00:01:56,600 >> 이제 개체에 대해 살펴 보겠습니다과 자바 스크립트에서 연관 배열, 33 00:01:56,600 --> 00:01:59,360 하는 모든 의도와 목적을 위해, 교환 할 수있다. 34 00:01:59,360 --> 00:02:03,030 나는 개체에게 변수를 확인하고 싶다면 나는 지팡이 것이다라고 35 00:02:03,030 --> 00:02:04,290 그것을 선언한다. 36 00:02:04,290 --> 00:02:09,350 그리고 그 중괄호, 나는 것 지정의 핵심은, 나무 유니콘입니다 37 00:02:09,350 --> 00:02:12,710 체리이고, 길이는 13이다. 38 00:02:12,710 --> 00:02:16,370 >> 이제, 또한 값에 액세스 할 수 있습니다 사용하여 객체의 39 00:02:16,370 --> 00:02:18,270 연관 배열 표기법. 40 00:02:18,270 --> 00:02:22,610 그래서 지팡이 인덱스 코어, I 설정할 수 있습니다 유니콘 같거나 41 00:02:22,610 --> 00:02:24,710 내가 필요로하는 경우에 그 확인. 42 00:02:24,710 --> 00:02:28,890 아니면 도트 연산자를 사용할 수 있습니다 wand.wood 체리와 동일하고, 43 00:02:28,890 --> 00:02:30,280 등등 등등. 44 00:02:30,280 --> 00:02:33,930 그래서 당신은 볼이 연관 배열과 자바 스크립트의 객체가 될 수 있습니다 45 00:02:33,930 --> 00:02:37,710 교환 및 의지 아주 편리한을 들어온다. 46 00:02:37,710 --> 00:02:41,570 >> 그 다음 우리는 건물의 배열을 참조 buildings.js에, 47 00:02:41,570 --> 00:02:43,870 또, 오브젝트의 배열. 48 00:02:43,870 --> 00:02:48,500 나는 최선의 배열을 만들고 싶어 경우 하버드 대학 캠퍼스 건물, 49 00:02:48,500 --> 00:02:49,710 다음 나는 그것을 만들 것입니다. 50 00:02:49,710 --> 00:02:55,250 이 객체 표기법을 사용하여 위치를 나는 루트, 이름, 주소를 저장, 51 00:02:55,250 --> 00:03:00,260 모든에 대한 위도와 경도 하나의 건물 객체. 52 00:03:00,260 --> 00:03:02,930 >> 의 신속 변수에 대해 얘기하자 자바 스크립트에서. 53 00:03:02,930 --> 00:03:07,760 PHP, 자바 스크립트의 변수와 같이 약하게 또는 느슨하게 입력됩니다. 54 00:03:07,760 --> 00:03:14,120 지역 변수를 만들려면 앞에 V-A-R, VAR 변수 이름. 55 00:03:14,120 --> 00:03:17,010 이제, 자바 스크립트에서 함수는 것 변수의 범위를 제한. 56 00:03:17,010 --> 00:03:20,600 그래서 내에서 지역 변수가있는 경우 함수 다음 다른 기능 57 00:03:20,600 --> 00:03:22,060 액세스 할 수 없다. 58 00:03:22,060 --> 00:03:26,090 >> 그러나 C는 달리, 루프 및 조건은하지 않습니다 변수의 범위를 제한. 59 00:03:26,090 --> 00:03:30,600 당신의 내부에 그것을 선언 따라서도 조건, 전체 기능을 것입니다 60 00:03:30,600 --> 00:03:32,810 거기에 액세스 할 수 있습니다. 61 00:03:32,810 --> 00:03:35,820 자, VAR하지 않고, 변수 글로벌 될 것입니다. 62 00:03:35,820 --> 00:03:39,170 당신은 이름을 선언하고이 경우 값을 할당 한 다음 해당 변수 63 00:03:39,170 --> 00:03:41,900 글로벌 변수가 될 것입니다 자바 스크립트에서. 64 00:03:41,900 --> 00:03:48,480 >> 이제 집에서, 우리는 연관이 호스트 유형 개체의 배열 위치 65 00:03:48,480 --> 00:03:52,100 모든 집은 위도이다 와 경도. 66 00:03:52,100 --> 00:03:55,140 그 다음 우리는 승객이 배열 배열, 67 00:03:55,140 --> 00:03:57,370 개체 유형의 승객. 68 00:03:57,370 --> 00:04:01,620 따라서 모든 승객은 사용자가 , 이름, 집 이름을 지정합니다. 69 00:04:01,620 --> 00:04:04,840 >> I 유형의 말인지 알 수 정말 그냥 의미 승객, 70 00:04:04,840 --> 00:04:08,150 모든 개체가 가지고있는 같은 키 값 쌍. 71 00:04:08,150 --> 00:04:12,830 그래서 형 승용차의 모든 개체에는 사용자 이름, 이름, 집. 72 00:04:12,830 --> 00:04:14,850 그래서 우리는 무엇을해야합니까 P-세트는 무엇입니까? 73 00:04:14,850 --> 00:04:20,779 음, 우리는 사용자가 선택할 수 있도록해야합니다 직원까지 모두 표시 74 00:04:20,779 --> 00:04:25,080 현재있는 직원 우리의 셔틀, 그들을 내려. 75 00:04:25,080 --> 00:04:29,395 그리고 우리는 또한 여분의 얘기하자 구현 될 수있는 기능 76 00:04:29,395 --> 00:04:30,980 셔틀 P 세트. 77 00:04:30,980 --> 00:04:33,610 >> 그러나의 첫 번째 픽업에 대해 이야기하자. 78 00:04:33,610 --> 00:04:37,480 CS50 직원의 얼굴이되었습니다 모든 캠퍼스에 심어 여기서 각 79 00:04:37,480 --> 00:04:41,750 얼굴은 장소 표시로 구현 3D 지구와 같은 80 00:04:41,750 --> 00:04:44,020 2D지도에 마커. 81 00:04:44,020 --> 00:04:47,880 사용자가 픽업을 클릭 그래서 때 버튼, 우리는 가까운 추가 할 82 00:04:47,880 --> 00:04:49,590 셔틀 승객. 83 00:04:49,590 --> 00:04:53,650 그리고 우리는 또한 자신의 자리를 제거 할 세계에서 표시하고이를 제거하여 84 00:04:53,650 --> 00:04:58,060 지도에서 마커를 표시하는 그들은 지금 우리의 셔틀에있어. 85 00:04:58,060 --> 00:05:02,520 >> 그래서 우리는 어떻게 감지 않으면 승객 우리의 셔틀의 범위 내인가? 86 00:05:02,520 --> 00:05:06,670 음, 기능 거리, 그래서 shuttle.distance, 전달 87 00:05:06,670 --> 00:05:10,630 위도와 경도, 계산합니다 현재 위치로부터의 거리 88 00:05:10,630 --> 00:05:14,220 지점에 셔틀의 당신은 주어진으로 지정 89 00:05:14,220 --> 00:05:15,860 위도와 경도. 90 00:05:15,860 --> 00:05:19,180 그래서 당신은 계산이 사용할 수 있습니다 에 셔틀 버스에서 거리 91 00:05:19,180 --> 00:05:20,310 승객. 92 00:05:20,310 --> 00:05:24,040 >> 그러나 당신은 어떻게 알 수 있습니까 곳 승객은? 93 00:05:24,040 --> 00:05:27,510 우리가해야합니다 곳 음, 그건 채우기 기능을 편집 할 수 있습니다. 94 00:05:27,510 --> 00:05:32,500 장소에게 직원을 모두 채 웁니다 세계로 승객의 95 00:05:32,500 --> 00:05:36,300 그리고지도에,하지만하지 않습니다 자신의 위치를​​ 저장합니다. 96 00:05:36,300 --> 00:05:39,850 그래서 아마 당신은 저장할 수있는 자신의 마크 및 마커를 배치 97 00:05:39,850 --> 00:05:41,570 일부 글로벌 배열. 98 00:05:41,570 --> 00:05:45,780 >> 지금, 이미 전역 배열이있다 승객들로부터의 정보를 저장하는 단계를 포함한다. 99 00:05:45,780 --> 00:05:49,960 승객 어레이는 각 승객의 이름과 자신의 집. 100 00:05:49,960 --> 00:05:54,985 아마 당신은 몇 가지 매개 변수를 추가 할 수 이 승객 개체. 101 00:05:54,985 --> 00:05:58,150 >> 우리가 모든 승객을 감지하는 데 도움이 우리의 범위 내에서 102 00:05:58,150 --> 00:06:02,485 모든 통해 셔틀,하자 루프 승객 배열의 승객. 103 00:06:02,485 --> 00:06:07,790 자바 스크립트에 대한 루프 보일 수 있습니다 매우 유사한 다음과 같이, 104 00:06:07,790 --> 00:06:13,200 C에서 루프 사람들 아니면 우리가 사용할 수 있습니다 용, 루프 구조에 대한 대안 105 00:06:13,200 --> 00:06:18,680 배열 var에 나는, 어디에서 여전히있을 것입니다 인덱스는,하지만 당신은 할 필요가 없습니다 106 00:06:18,680 --> 00:06:23,310 에 Array.length를 지정 조건 및 I + +. 107 00:06:23,310 --> 00:06:26,130 >> 모든 승객의 위치는 자신의 자리를 마크가 없습니다. 108 00:06:26,130 --> 00:06:29,800 그러나 장소 표시가없는 위도와 경도. 109 00:06:29,800 --> 00:06:34,170 우리는에 의해 이러한 매개 변수에 액세스 할 수있다 GET을 사용하여 형상을 얻는 110 00:06:34,170 --> 00:06:38,180 다음 장소 표시에 기하학 및 우리는 점점 형상을 한 번 111 00:06:38,180 --> 00:06:42,580 위도 나 경도 하나 이러한 기능을 사용하여. 112 00:06:42,580 --> 00:06:45,680 >> 그래서 지금 우리가 여부를 감지하는 방법을 알고 승객 내에 113 00:06:45,680 --> 00:06:47,920 우리의 셔틀의 범위. 114 00:06:47,920 --> 00:06:52,050 우리가 그 승객이되면, 우리는거야 어떤 승객을 추가 할 115 00:06:52,050 --> 00:06:53,140 그 범위 내에서. 116 00:06:53,140 --> 00:06:57,580 우리는 그들에 뛰고 확보 할 수 있도록 할 우리의 셔틀 버스에 좌석 만 117 00:06:57,580 --> 00:06:59,630 우리는 그들에게 충분한 공간이있는 경우. 118 00:06:59,630 --> 00:07:04,120 >> shuttle.seats 배열이 표시됩니다 좌석은 비어있는, 또는 여부 119 00:07:04,120 --> 00:07:05,890 누가 그 자리에 있습니다. 120 00:07:05,890 --> 00:07:11,160 그래서 좌석이 비어, 다음 경우 그 자리는 null이됩니다. 121 00:07:11,160 --> 00:07:15,930 그래서 좌석 배열을 반복, 저장 빈 좌석에 대한 검사 122 00:07:15,930 --> 00:07:20,020 당신까지 그 좌석에 승객 더 이상 빈 좌석이 없습니다. 123 00:07:20,020 --> 00:07:23,330 그리고 불행하게도, 다른 승객 기다려야 할 것 124 00:07:23,330 --> 00:07:26,000 다음 번 셔틀 아래로 온다. 125 00:07:26,000 --> 00:07:30,280 >> 그들은 셔틀에 도착하면, 우리는 할 수 있습니다 , 자신의 위치 표시를 제거 할 126 00:07:30,280 --> 00:07:32,580 3 차원 세계에서의 사진입니다. 127 00:07:32,580 --> 00:07:38,030 나는 장소 마크 (P)을 제거하고 싶어하는 경우 그때 나는 모든 기능을 얻을 것입니다 128 00:07:38,030 --> 00:07:42,820 나의 지구, 구글 어스에서 다음 특정 장소에게 제거 129 00:07:42,820 --> 00:07:45,910 로 removeChild 함수를 사용하여 표시한다. 130 00:07:45,910 --> 00:07:51,360 그런 다음 마지막으로,의 마커를 제거하자, 임의의 2 차원지도에 아이콘, 131 00:07:51,360 --> 00:07:53,650 우리가 따기 승객. 132 00:07:53,650 --> 00:07:59,790 >> 마커 M를 제거하려면 다음 나는거야 다만 m.setMap의 널 (null)을 실행합니다. 133 00:07:59,790 --> 00:08:03,670 범위 내에서 모든 승객에 대해이 작업을 수행, 당신은 픽업을 완료했습니다. 134 00:08:03,670 --> 00:08:07,890 차트 기능을 모두 표시해야 에 승객의 당신의 135 00:08:07,890 --> 00:08:11,000 셔틀, 빈 자리는 비어있는 경우. 136 00:08:11,000 --> 00:08:14,420 그래서 차트를 반복한다 shuttle.seats, 표시 137 00:08:14,420 --> 00:08:21,350 모든 인덱스에 대한 승객 정보, 빈 좌석이 지수는 null의 경우. 138 00:08:21,350 --> 00:08:26,160 >> 이제 HTML 텍스트가 내부에 넣을 경우 자바 스크립트 변수, 다음 사용하여 139 00:08:26,160 --> 00:08:31,950 document.getElementById를, 차트 캔 주어진의 내부 HTML을 편집 140 00:08:31,950 --> 00:08:36,140 할당하여 요소 에 HTML 텍스트 141 00:08:36,140 --> 00:08:40,840 document.getElementById를 내부 HTML 변수. 142 00:08:40,840 --> 00:08:46,180 사용자가 드롭 오프 버튼을 클릭하면 index.html 파일에, 그것은 전화 할게 143 00:08:46,180 --> 00:08:47,160 하차 기능. 144 00:08:47,160 --> 00:08:49,510 그리고 그것을 구현하는 우리의 일이다. 145 00:08:49,510 --> 00:08:54,150 >> 하차, 우리는 하나를 제거 할 수 있습니다 셔틀 버스에서 승객 경우에만 146 00:08:54,150 --> 00:08:58,740 우리는 그들의 목적지의 범위에있어, 그들의 주거 집. 147 00:08:58,740 --> 00:09:03,300 그래서 하차가 있는지 여부를 확인해야합니다 셔틀은 임의의 범위에있다 148 00:09:03,300 --> 00:09:08,200 주택, 및 필요를 제거 셔틀 버스에서 승객. 149 00:09:08,200 --> 00:09:11,020 우리는 그래서 만약 우리가 어떻게 확인합니까 모든 주택의 범위? 150 00:09:11,020 --> 00:09:16,630 음, 다시 한번, 우리는의 사용을 만들거야 전달 기능을 shuttle.distance 151 00:09:16,630 --> 00:09:20,990 지점의 위도와 경도 우리에 대해 검사하고있다. 152 00:09:20,990 --> 00:09:22,730 >> 하지만 그 점은 무엇입니까? 153 00:09:22,730 --> 00:09:27,210 음, 집 배열, 당신은 기억한다면 houses.js에 저장 154 00:09:27,210 --> 00:09:32,790 각 집의 위도와 경도 연관 배열, 위치마다 155 00:09:32,790 --> 00:09:35,980 지수는 그 집의 이름입니다. 156 00:09:35,980 --> 00:09:37,590 그런 다음 승객을 제거합니다 - 157 00:09:37,590 --> 00:09:41,820 물론, 우리는 범위에있을 경우에만 해당 그들이에 가고 싶은 집입니다. 158 00:09:41,820 --> 00:09:46,380 그래서 다시 기억하는 승객 집에 저장하는 모든 승객 159 00:09:46,380 --> 00:09:48,850 에 가고 싶어. 160 00:09:48,850 --> 00:09:51,670 그들은의 범위 내에있는 경우 그들의 집, 우리는 그것을 제거 할 수 있습니다 161 00:09:51,670 --> 00:09:57,200 shuttle.seats 및 세트에서 승객 null로 배열에서의 위치. 162 00:09:57,200 --> 00:10:00,220 >> 이제 몇 가지 추가 기능에 대해 이야기하자 즉, 구현 될 수있다 163 00:10:00,220 --> 00:10:02,690 CS50 셔틀 P 세트. 164 00:10:02,690 --> 00:10:05,850 포인트 시스템은 거기에있다 당신은 추적 얼마나 많은 165 00:10:05,850 --> 00:10:07,520 사용자가 가지고있는 지적했다. 166 00:10:07,520 --> 00:10:11,120 승객을 잃어버린 성공적으로, 그들은 포인트를 얻을 수 있습니다. 167 00:10:11,120 --> 00:10:15,100 그러나 승객을 내려 노력에 대한 여기서 어떤 집 근처가없는, 168 00:10:15,100 --> 00:10:16,980 물론, 그 일에 대한 처벌받을 수 있습니다. 169 00:10:16,980 --> 00:10:21,790 그래서 아마 당신은 트랙을 유지하려면 글로벌 변수의 포인트. 170 00:10:21,790 --> 00:10:25,970 >> 당신은 아마도 타이머를 구현할 수 사용자는 소정의 금액을 가지고 171 00:10:25,970 --> 00:10:29,800 픽업을 내려 시간 승객의 일정 수의. 172 00:10:29,800 --> 00:10:33,280 어쩌면이 통합 포인트 시스템. 173 00:10:33,280 --> 00:10:39,970 아니면되도록 차트를 편집 할 수 있습니다 승객은 집으로 분류되어 있습니다. 174 00:10:39,970 --> 00:10:45,250 그래서 아마 일종의 것 shuttle.seats로 작동합니다. 175 00:10:45,250 --> 00:10:49,240 >> 당신은 비행 기능을 구현할 수 있습니다, 여기서 사용자는 코나미를 입력하면 176 00:10:49,240 --> 00:10:53,460 코드는 다음 셔틀 발사된다 지상과 우주 왕복선 비행 할 수 있습니다. 177 00:10:53,460 --> 00:10:58,890 그러나 오프 안전한 강하, 최선을 다하기 셔틀에 그 바퀴를 땅에 178 00:10:58,890 --> 00:11:00,700 먼저 접지. 179 00:11:00,700 --> 00:11:05,910 또한 순간 이동을 구현할 수 있습니다, 당신의 드롭 다운 목록을 만드는 곳 180 00:11:05,910 --> 00:11:08,380 index.html 파일에 건물. 181 00:11:08,380 --> 00:11:12,270 그 중 하나를 선택 사용자는로 이송됩니다 182 00:11:12,270 --> 00:11:14,220 캠퍼스에 그 건물. 183 00:11:14,220 --> 00:11:16,760 OK,하지만,을 통해 여행 일부의 벽 184 00:11:16,760 --> 00:11:19,290 거기에 당신의 방법에 건물. 185 00:11:19,290 --> 00:11:22,960 >> 또한 속도를 변경할 수 있습니다 셔틀, 사용자가 증가 할 수 있도록 186 00:11:22,960 --> 00:11:25,490 또는 속도를 줄입니다. 187 00:11:25,490 --> 00:11:28,840 아마 당신은 글로벌 변수에 원하는 얼마나 많은 연료를 추적 188 00:11:28,840 --> 00:11:31,520 셔틀 감소가 그것은 당신이 함께 가서. 189 00:11:31,520 --> 00:11:35,860 당신이 제로에 충돌하면,하지만, 셔틀 버스 운행 당신이하지 않았다면 이동할 수 없습니다 190 00:11:35,860 --> 00:11:40,610 아마도 버튼을 사용하거나, 급유 심지어 자신의 주유소합니다. 191 00:11:40,610 --> 00:11:43,240 >> 그러나 그것은 확실히이다 완전한 목록. 192 00:11:43,240 --> 00:11:46,340 전체의 사양을 확인하십시오 목록, 혹은 제안 193 00:11:46,340 --> 00:11:47,840 당신의 당신의 TF에 자신의. 194 00:11:47,840 --> 00:11:48,950 하늘이 한계입니다. 195 00:11:48,950 --> 00:11:53,110 이 마지막 CS50의 P-세트입니다, 그래서 재미있다. 196 00:11:53,110 --> 00:11:56,360 이 CS50 셔틀 버스 운행했다. 197 00:11:56,360 --> 00:11:59,230 >> 내가 말할 수있어, 그것은 즐거웠 당신을 위해 다음을 만들기 198 00:11:59,230 --> 00:12:00,400 생산 팀. 199 00:12:00,400 --> 00:12:04,330 그리고 난 당신이했습니다 희망 뿐만 아니라, 그들을 즐길 수 있습니다. 200 00:12:04,330 --> 00:12:06,040 내 이름은 Zamyla입니다. 201 00:12:06,040 --> 00:12:08,310 그리고 이것은 CS50했다. 202 00:12:08,310 --> 00:12:16,363