1 00:00:00,000 --> 00:00:11,120 2 00:00:11,120 --> 00:00:12,590 >> Palestrante: eu son [inaudível]. 3 00:00:12,590 --> 00:00:14,820 E eu son un senior na Leverett House. 4 00:00:14,820 --> 00:00:18,700 Eu estudar ciencia da computación, e eu son un TF para CS50. 5 00:00:18,700 --> 00:00:21,640 Como un calouro, eu non tiña sequera un portátil ou un teléfono. 6 00:00:21,640 --> 00:00:23,550 Eu non tiña ningunha experiencia en programación. 7 00:00:23,550 --> 00:00:29,690 CS50 foi o curso máis memorable que Eu tomei en Harvard porque era 8 00:00:29,690 --> 00:00:32,960 unha loita, pero foi realmente un diversión loita á vez. 9 00:00:32,960 --> 00:00:37,670 E eu fixen unha morea de incrible, permanente amigos, e eu aprendín unha morea de verdade 10 00:00:37,670 --> 00:00:38,830 habilidades aplicables. 11 00:00:38,830 --> 00:00:43,480 Estou tan feliz que eu non deixei o meu falta de fondo ser unha escusa para me 12 00:00:43,480 --> 00:00:44,840 Non Tomé CS50. 13 00:00:44,840 --> 00:00:46,220 Eu son [inaudível]. 14 00:00:46,220 --> 00:00:48,910 Eu son un senior na Leverett House, clase de 2014. 15 00:00:48,910 --> 00:00:51,670 E tomei CS50. 16 00:00:51,670 --> 00:00:52,380 >> DAVID Malan: Entón iso é CS50. 17 00:00:52,380 --> 00:00:54,400 Isto é o fin de semana cero. 18 00:00:54,400 --> 00:00:58,500 E lembrar onde comezamos a última vez, Con estas lámpadas, que foron 19 00:00:58,500 --> 00:01:01,420 tan popular que fomos e compras un pouco máis hoxe. 20 00:01:01,420 --> 00:01:03,790 Entón eu creo que iso vai ser nosa cousa este ano - 21 00:01:03,790 --> 00:01:07,230 lámpadas de mesa se chegar no escenario, polo menos ata acabar. 22 00:01:07,230 --> 00:01:11,570 >> Pero usamos estes recordo, para introducir os conceptos básicos de representación de datos. 23 00:01:11,570 --> 00:01:15,640 Necesitabamos forma de comezar a representar información dentro dun ordenador. 24 00:01:15,640 --> 00:01:18,650 E o xeito máis sinxelo de facer iso era cun ingrediente, electricidade. 25 00:01:18,650 --> 00:01:21,760 E a cousa máis simple que pode facer electricidade é liga-lo e el apagado. 26 00:01:21,760 --> 00:01:23,520 Deixe o fluxo de electróns ou non. 27 00:01:23,520 --> 00:01:27,930 E usando estes dous estados básicos, fóra e sobre, ou falso e certo, ou cero e 28 00:01:27,930 --> 00:01:31,290 un, comezamos a ver que poderiamos construír En conta que, neste caso, coa luz 29 00:01:31,290 --> 00:01:33,720 lámpadas, máis números que só cero e un. 30 00:01:33,720 --> 00:01:36,160 Contamos tan elevada como sete, por exemplo, a última vez. 31 00:01:36,160 --> 00:01:38,840 Pero todos temos que facer é seguir xogando máis e máis lámpadas naquel 32 00:01:38,840 --> 00:01:41,820 problema e, en realidade, podemos representar que calquera número de nós 33 00:01:41,820 --> 00:01:42,970 podería posiblemente querer. 34 00:01:42,970 --> 00:01:47,230 >> Ben, nós trasladada rapidamente, a continuación, en Mércores a este byte de voluntarios. 35 00:01:47,230 --> 00:01:52,040 8 bits é o que normalmente chamamos byte, entón aquí tivemos oito voluntarios 36 00:01:52,040 --> 00:01:54,900 o mércores que foron colectivamente representando oito bits. 37 00:01:54,900 --> 00:01:56,750 E cando as súas mans foron arriba, eles eran un. 38 00:01:56,750 --> 00:01:58,530 E cando as súas mans estaban abaixo, houbo un cero. 39 00:01:58,530 --> 00:02:01,970 E tivemos esas persoas subir de por de escenario? 40 00:02:01,970 --> 00:02:06,530 O que nós somos capaces de facer esta secuencia de bits? 41 00:02:06,530 --> 00:02:07,510 >> Para crear un alfabeto. 42 00:02:07,510 --> 00:02:11,550 Fomos capaces de construír enriba do que lección anterior aprenden e realmente 43 00:02:11,550 --> 00:02:14,200 comezar a facer máis interesante información que é, como mínimo, máis 44 00:02:14,200 --> 00:02:15,330 familiar para nós seres humanos. 45 00:02:15,330 --> 00:02:18,360 E iso vai ser un recorrente tema durante 50 anos, pero tamén ordenador 46 00:02:18,360 --> 00:02:21,470 ciencia máis xeral, esa idea de capas, en que, ao final do 47 00:02:21,470 --> 00:02:24,820 día, se realmente comezou a básico con un ordenador, si, 48 00:02:24,820 --> 00:02:25,760 é ceros e uns. 49 00:02:25,760 --> 00:02:27,480 E baixo que se só electricidade. 50 00:02:27,480 --> 00:02:30,840 Pero moi rapidamente comezar a tomar os detalles de baixo nivel para concedida 51 00:02:30,840 --> 00:02:35,600 e comezar a capa enriba do pasado traballou feito para que, en última instancia, por 52 00:02:35,600 --> 00:02:38,610 o final do semestre e, realmente, máis xeralmente como científicos da computación 53 00:02:38,610 --> 00:02:42,790 e os desenvolvedores, pode facer algúns realmente cousas poderosas, aproveitando o traballo 54 00:02:42,790 --> 00:02:46,620 que nós mesmos fixemos e tamén de pé sobre os ombreiros dos outros. 55 00:02:46,620 --> 00:02:49,300 >> Agora nós rapidamente trasladada o mércores a partir de só a necesidade de 56 00:02:49,300 --> 00:02:52,080 representar información de querer de facer algo con el. 57 00:02:52,080 --> 00:02:54,170 Entón, o que definimos un algoritmo como? 58 00:02:54,170 --> 00:02:57,340 59 00:02:57,340 --> 00:02:58,900 Unha serie de instrucións. 60 00:02:58,900 --> 00:03:03,380 Entón, é unha serie de instrucións, un número de pasos que, un ser humano, ou 61 00:03:03,380 --> 00:03:07,160 un ordenador, máis tipicamente, sería realizar un despois do outro na orde 62 00:03:07,160 --> 00:03:08,100 para lograr algún obxectivo. 63 00:03:08,100 --> 00:03:11,360 E tivemos algunhas metas última vez, un dos cales foi a conta 64 00:03:11,360 --> 00:03:12,250 persoas na sala. 65 00:03:12,250 --> 00:03:15,560 E outro exemplo foi atopar Mike Smith nunha lista telefónica. 66 00:03:15,560 --> 00:03:19,750 >> Entón, ten que se lembrar que eu Rompín un teléfono libro á metade para este fin se 67 00:03:19,750 --> 00:03:21,280 atopar Mike Smith. 68 00:03:21,280 --> 00:03:24,000 O obxectivo deste visual foi a demostran, de novo, que foron 69 00:03:24,000 --> 00:03:27,770 literalmente rasgando este problema metade, polo medio, no medio, e moito 70 00:03:27,770 --> 00:03:31,750 rapidamente indo de como 1.000 páxinas só unha única páxina. 71 00:03:31,750 --> 00:03:34,860 Aqueles de vós que perdeu esta en Mércores, eu penso que estaba a reproducir 72 00:03:34,860 --> 00:03:36,820 algunhas imaxes do que perdeu. 73 00:03:36,820 --> 00:03:38,914 Imos dar un ollo. 74 00:03:38,914 --> 00:03:40,906 >> [REPRODUCIÓN] 75 00:03:40,906 --> 00:03:55,360 76 00:03:55,360 --> 00:03:55,990 >> -Alí imos nós. 77 00:03:55,990 --> 00:04:01,432 1500 páxinas, liña limpo e agradable, bágoa lexítimo. 78 00:04:01,432 --> 00:04:02,850 >> [FIN reprodución de vídeo] 79 00:04:02,850 --> 00:04:05,230 >> DAVID Malan: Así que foi mércores. 80 00:04:05,230 --> 00:04:09,150 Nós transición, con todo, o mércores agora de querer representar algoritmos 81 00:04:09,150 --> 00:04:12,410 dalgún modo algo estándar, e non só describindo os verbalmente, pero 82 00:04:12,410 --> 00:04:16,290 tentar expresar-las, por escrito, ou en unha pantalla de ordenador, para que puidésemos 83 00:04:16,290 --> 00:04:19,170 comezan a mellorar, e modificar eles, e, finalmente, en realidade 84 00:04:19,170 --> 00:04:21,160 analizar o quão correcto ou o quão rápido eles eran. 85 00:04:21,160 --> 00:04:23,360 >> Entón, nós introducimos esa noción de pseudocódigo que, en 86 00:04:23,360 --> 00:04:26,410 termos leigos, é o que? 87 00:04:26,410 --> 00:04:26,930 OK, palabras. 88 00:04:26,930 --> 00:04:28,730 Imos afondar un pouco máis do que iso. 89 00:04:28,730 --> 00:04:32,540 Inglés, con certeza, pero son para que fin? 90 00:04:32,540 --> 00:04:35,180 Palabras coas que crear ou para representar algoritmos. 91 00:04:35,180 --> 00:04:38,380 Polo tanto, non hai unha lingua coñecida como pseudocódigo no mundo. 92 00:04:38,380 --> 00:04:41,110 É que, en inglés, ou calquera que sexa a súa linguaxe falada é, usa 93 00:04:41,110 --> 00:04:44,930 unha especie de notación superficial para transmitir unha idea de forma moi sucinta. 94 00:04:44,930 --> 00:04:47,930 Pero imos ver que, seguramente cun Pseudocódigo inglés, e verifica-se 95 00:04:47,930 --> 00:04:51,700 a maioría das propias linguaxes de programación son derivados da propia inglés, 96 00:04:51,700 --> 00:04:55,750 veremos que hai algún defecto formas de representación e pseudocódigo 97 00:04:55,750 --> 00:04:57,150 tamén o código de programación. 98 00:04:57,150 --> 00:05:00,200 Entón, como comeza a ver mesmo o máis simple exemplos actuais, entender estes 99 00:05:00,200 --> 00:05:02,160 mesmos estándares se repitan a próxima semana. 100 00:05:02,160 --> 00:05:04,710 >> Entón pseudocódigo era algún tipo da lingua semellante 101 00:05:04,710 --> 00:05:06,170 unha linguaxe de programación. 102 00:05:06,170 --> 00:05:09,260 E o primeiro exemplo que vin visual escrita era un agasallo. 103 00:05:09,260 --> 00:05:12,870 Foi só un programa de tres pasos, o obxectivo dos cales foi a conta do número 104 00:05:12,870 --> 00:05:15,650 de persoas nun dormitorio para este vídeo na Mércores. 105 00:05:15,650 --> 00:05:19,040 Pero houbo algúns aspectos interesantes deste programa sinxelo. 106 00:05:19,040 --> 00:05:20,320 >> E iso será temas recurrentes. 107 00:05:20,320 --> 00:05:22,930 Polo tanto, para aqueles que non está familiarizado con esta, unha, nós introducimos unha variable. 108 00:05:22,930 --> 00:05:25,650 E, probabelmente, todos nesta sala é familiarizado con unha variable en 109 00:05:25,650 --> 00:05:27,250 contexto da álxebra. 110 00:05:27,250 --> 00:05:31,190 Pero aquí na programación, variables son, un, pode ser 111 00:05:31,190 --> 00:05:32,220 chamado de calquera cousa que queiramos. 112 00:05:32,220 --> 00:05:33,620 Estamos a usar n como un contador. 113 00:05:33,620 --> 00:05:37,490 Pero poderiamos usar o contador de palabras, ou, como podes ver, máis calquera frase que 114 00:05:37,490 --> 00:05:40,240 que pode gustar tanto tempo como é descritiva, pero é realmente só unha 115 00:05:40,240 --> 00:05:41,250 recipiente de almacenamento. 116 00:05:41,250 --> 00:05:44,170 É unha peza de memoria, un certo número de bits, e varía por ordenador, como 117 00:05:44,170 --> 00:05:47,020 moitos bits hai que compoñer esa variable. 118 00:05:47,020 --> 00:05:48,450 >> Pero podemos poñer valores nel. 119 00:05:48,450 --> 00:05:50,740 Ata agora, nós só poñer números. 120 00:05:50,740 --> 00:05:52,290 Pero podemos poñer palabras reais. 121 00:05:52,290 --> 00:05:53,420 Podemos poñer parágrafos. 122 00:05:53,420 --> 00:05:54,560 Podemos poñer imaxes - 123 00:05:54,560 --> 00:05:57,860 calquera cousa, en realidade, podemos representar con ceros e uns, que pode poñer en 124 00:05:57,860 --> 00:05:59,820 esta noción de nivel superior dunha variable. 125 00:05:59,820 --> 00:06:01,350 >> Entón, moi á fronte alí. 126 00:06:01,350 --> 00:06:02,210 E iso é unha liña. 127 00:06:02,210 --> 00:06:05,340 Pero moi rapidamente trasladou-se de unha liña para realmente facer 128 00:06:05,340 --> 00:06:06,600 algo con esa variable. 129 00:06:06,600 --> 00:06:10,330 E na liña de tres, actualizamos N Nós incrementado N. E poderíamos escribir este 130 00:06:10,330 --> 00:06:11,330 calquera número de formas. 131 00:06:11,330 --> 00:06:14,460 Pero quizais o máis evidente é só para dicir, establecer N igual a 132 00:06:14,460 --> 00:06:16,440 R é calquera que sexa máis 1. 133 00:06:16,440 --> 00:06:17,740 Entón, ese era o noso incremento. 134 00:06:17,740 --> 00:06:18,740 >> Non obstante, verificouse un ciclo. 135 00:06:18,740 --> 00:06:20,720 E este, tamén, é, probablemente, moi intuitivo. 136 00:06:20,720 --> 00:06:24,250 Un loop é só algo nun programa que pasa de novo e unha vez máis, algúns 137 00:06:24,250 --> 00:06:25,190 tipo de ciclo. 138 00:06:25,190 --> 00:06:29,300 E esta frase clave aquí, para cada un, é realmente moi común durante a maior parte 139 00:06:29,300 --> 00:06:32,300 linguaxes de programación, incluíndo os veremos no curso. 140 00:06:32,300 --> 00:06:35,850 Cada vez que ver a palabra, normalmente transmite a idea de que un 141 00:06:35,850 --> 00:06:38,410 loop, algo cíclico, está a piques de acontecer. 142 00:06:38,410 --> 00:06:40,980 >> Pero é importante ter en conta unha outro detalle sintática. 143 00:06:40,980 --> 00:06:44,660 O feito de terceira liña, hai realmente recuado por atinxir a 144 00:06:44,660 --> 00:06:46,920 barra de espazo algunhas veces é proposital. 145 00:06:46,920 --> 00:06:49,870 Por convención humana é tal que, cando está facendo algo de novo e 146 00:06:49,870 --> 00:06:54,860 de novo, de forma cíclica, como preconizado na liña dous, ten guión algo que pertenceu 147 00:06:54,860 --> 00:06:58,880 ao circuíto só para deixar claro que é liña de tres e non, por exemplo, 148 00:06:58,880 --> 00:07:01,910 A liña de catro ou cinco, se houbese liñas para, ou cinco, que son 149 00:07:01,910 --> 00:07:03,010 parte do que loops. 150 00:07:03,010 --> 00:07:07,340 Polo tanto, este recúo simple transmite a idea básica. 151 00:07:07,340 --> 00:07:09,390 >> Entón, nós aplicamos ese algoritmo, Agora, para algúns exemplos. 152 00:07:09,390 --> 00:07:12,620 E isto, tamén, o exemplo sinxelo no mundo real. 153 00:07:12,620 --> 00:07:15,440 Pero vai ser representante da como faría para probar a súa 154 00:07:15,440 --> 00:07:17,500 propios programas cada vez máis complexos. 155 00:07:17,500 --> 00:07:21,050 Intenta algunhas situacións, algúns representantes de insumos, e vexa se 156 00:07:21,050 --> 00:07:22,180 obter os resultados desexados. 157 00:07:22,180 --> 00:07:25,090 >> Polo tanto, este exemplo tiña dúas persoas sentado na sala do dormitorio. 158 00:07:25,090 --> 00:07:27,170 Á esquerda está o mesmo código pseudo. 159 00:07:27,170 --> 00:07:30,800 E esta é unha captura de pantalla do propio último paso da aplicación do presente 160 00:07:30,800 --> 00:07:35,270 algoritmo para estas entradas, onde existe dúas persoas na sala e, 161 00:07:35,270 --> 00:07:39,190 recordar, como percorrer liñas un, e dous, e tres, e dous 162 00:07:39,190 --> 00:07:41,000 e tres e feito - 163 00:07:41,000 --> 00:07:44,870 ata finais deste algoritmo tivemos realmente contaba os dous compañeiros que están 164 00:07:44,870 --> 00:07:45,360 no cuarto. 165 00:07:45,360 --> 00:07:47,190 >> Entón buscamos outro exemplo. 166 00:07:47,190 --> 00:07:48,990 E nós dixemos que se hai cero de persoas na sala? 167 00:07:48,990 --> 00:07:50,490 Este código aínda correcto? 168 00:07:50,490 --> 00:07:51,305 E de feito era. 169 00:07:51,305 --> 00:07:55,240 Acontece que a liña dous e, así, a liña de tres ou 170 00:07:55,240 --> 00:07:56,620 Non vai realizar. 171 00:07:56,620 --> 00:07:59,790 Eles non van acontecer en todos porque non só son aplicables se 172 00:07:59,790 --> 00:08:01,210 hai cero de persoas na sala. 173 00:08:01,210 --> 00:08:02,300 >> Pero non é un gran negocio. 174 00:08:02,300 --> 00:08:06,620 Liña dunha N inicializar a cero, así a pesar de só unha liña da presente 175 00:08:06,620 --> 00:08:10,930 programa, en realidade, acaba sendo útil, aínda produce a resposta correcta, como 176 00:08:10,930 --> 00:08:13,780 indicado pola laranxa cero no fondo. 177 00:08:13,780 --> 00:08:16,300 Pero, entón, decidimos que era tipo de algoritmo estúpido. 178 00:08:16,300 --> 00:08:17,060 Foi moi lento. 179 00:08:17,060 --> 00:08:19,720 Por suposto, eu podo facer dúas, catro, seis, oito, dez, cando 180 00:08:19,720 --> 00:08:20,990 conta de persoas nunha sala. 181 00:08:20,990 --> 00:08:25,030 >> Entón, nós tweaked o algoritmo, o pseudocódigo, para dicir, agora na liña dous, 182 00:08:25,030 --> 00:08:29,710 para cada par de persoas na sala, proceder a, na liña tres, incremento 183 00:08:29,710 --> 00:08:32,200 polos dous en cada iteración. 184 00:08:32,200 --> 00:08:35,530 Entón, que traballaría aquí para este par de persoas na sala. 185 00:08:35,530 --> 00:08:38,530 >> Pero entón, se comezar a pensar sobre isto, e non pasou moito para 186 00:08:38,530 --> 00:08:40,710 entender, agarde un minuto é vai romper, rompe 187 00:08:40,710 --> 00:08:42,679 en que caso sinxelo? 188 00:08:42,679 --> 00:08:45,500 Se hai tres persoas na sala, ou, máis xeralmente, cando hai unha 189 00:08:45,500 --> 00:08:47,660 número impar de persoas no cuarto, incluíndo un. 190 00:08:47,660 --> 00:08:50,390 Nós perderiamos a persoa aquí, porque non existen tales compañeiros. 191 00:08:50,390 --> 00:08:58,510 Entón, nós axiña abordada por vez introducindo o adicional 192 00:08:58,510 --> 00:09:02,560 construcións de programación ao código pseudo. 193 00:09:02,560 --> 00:09:04,955 >> Así, unha condición, que chamamos , Ou unha póla. 194 00:09:04,955 --> 00:09:08,420 E ten a intención de transmitir, visualmente, o idea de rama, unha bifurcación na estrada 195 00:09:08,420 --> 00:09:11,080 onde podes facelo ou quizais algo máis. 196 00:09:11,080 --> 00:09:15,750 E, de feito, estamos fronte a este problema, engadindo a liña 4, dicindo que, en realidade, a 197 00:09:15,750 --> 00:09:20,820 fin, se unha persoa permanece, entón vai adiante e conte-los especiais. 198 00:09:20,820 --> 00:09:24,460 Entón medio que caso especial los, de xeito para falar, de xeito que agora podemos xestionar 199 00:09:24,460 --> 00:09:27,810 tanto un número par de persoas e un número impar de persoas. 200 00:09:27,810 --> 00:09:30,260 >> Agora, hai moitas maneiras poderiamos ter expresado isto. 201 00:09:30,260 --> 00:09:33,590 E, francamente, eu podería ser aínda máis nit esixente cando el veu para a miña elección de 202 00:09:33,590 --> 00:09:35,040 Inglés para o pseudocódigo. 203 00:09:35,040 --> 00:09:36,970 Pero polo menos o espírito de a idea é transmitida. 204 00:09:36,970 --> 00:09:40,725 Se entregou este código por correo que non está no CS, ou nunca tomou 205 00:09:40,725 --> 00:09:44,560 CS, as probabilidades son de que eles poderían descubrir, dado tres persoas na sala, como 206 00:09:44,560 --> 00:09:46,870 contar as persoas con base sobre estas instruccións. 207 00:09:46,870 --> 00:09:49,920 E iso é todo o que realmente queremos acadar con pseudocódigo, dalgunha forma 208 00:09:49,920 --> 00:09:54,300 estandarizar como imos sobre representando ideas para que poidamos 209 00:09:54,300 --> 00:09:56,670 comezan a facer máis complicado cousa aínda. 210 00:09:56,670 --> 00:09:58,845 >> Entón iso nos leva, entón, hoxe, ao código real. 211 00:09:58,845 --> 00:10:01,950 Comezamos a programar hoxe, aínda nun ambiente agradable. 212 00:10:01,950 --> 00:10:05,940 E entón nós transición moi rapidamente para unha sintaxe máis misterioso, mais que 213 00:10:05,940 --> 00:10:10,340 que podes ver é fundamentalmente o mesmo que as ideas van ver manifestado con 214 00:10:10,340 --> 00:10:11,990 estoutra lingua hoxe. 215 00:10:11,990 --> 00:10:13,920 El só vai mirar un pouco diferente. 216 00:10:13,920 --> 00:10:16,590 >> Entón, en vez de só chamar este código, eu son vai ser un pouco máis preciso 217 00:10:16,590 --> 00:10:20,170 e dicir que, a partir de agora, cando se escribe unha programa, está escribindo o código fonte. 218 00:10:20,170 --> 00:10:21,990 É unha especie de como pseudocódigo. 219 00:10:21,990 --> 00:10:26,540 Pero imos ver, non é unha especie de frouxo cando se trata de escoller as palabras 220 00:10:26,540 --> 00:10:27,310 que usa. 221 00:10:27,310 --> 00:10:31,300 Cando sexa programar nunha linguaxe, ten para usar as palabras, as frases, 222 00:10:31,300 --> 00:10:36,020 a sintaxe, que outras persoas decidiron representar 223 00:10:36,020 --> 00:10:37,240 que a linguaxe particular. 224 00:10:37,240 --> 00:10:38,510 Entón pseudocodes é contigo. 225 00:10:38,510 --> 00:10:42,330 Unha linguaxe de programación real como C, como veremos, finalmente, é 226 00:10:42,330 --> 00:10:43,590 estandarizada por outras persoas. 227 00:10:43,590 --> 00:10:45,590 >> Entón, como é que imos escribir algún código fonte? 228 00:10:45,590 --> 00:10:46,810 Ben, eu estou indo a ir adiante e facelo. 229 00:10:46,810 --> 00:10:49,100 Eu estou indo a ir adiante e abrir unha xanela aquí. 230 00:10:49,100 --> 00:10:50,210 Máis sobre iso a próxima semana. 231 00:10:50,210 --> 00:10:52,300 Pero este é un dispositivo chamado o aparello CS50. 232 00:10:52,300 --> 00:10:55,480 Estou executando un programa no meu Mac, pero pode facer o mesmo 233 00:10:55,480 --> 00:11:00,580 nun ordenador Windows, que está dando me a ilusión de facer un diferente 234 00:11:00,580 --> 00:11:03,700 sistema operativo completamente seguro aquí nunha ventá no meu Mac 235 00:11:03,700 --> 00:11:06,790 Acaba completo aparece para que non realmente o VOS agora. 236 00:11:06,790 --> 00:11:08,340 >> Este é un sistema operativo chamado Linux. 237 00:11:08,340 --> 00:11:09,300 É moi popular. 238 00:11:09,300 --> 00:11:10,120 É moi rápido. 239 00:11:10,120 --> 00:11:12,950 É moi libre, o que fixo moi atractivo, sobre todo no 240 00:11:12,950 --> 00:11:13,970 mundo comercial. 241 00:11:13,970 --> 00:11:17,200 E para que ao final do semestre, cando usamos Linux algo 242 00:11:17,200 --> 00:11:21,230 programación para web e aloxamento de sitios e proxectos reais. 243 00:11:21,230 --> 00:11:24,910 Entón, agora, só sei que esta é unha área de traballo que significou a mirar vagamente 244 00:11:24,910 --> 00:11:26,750 familiar para Windows e Mac VOS. 245 00:11:26,750 --> 00:11:29,110 El só ten algúns nomes diferentes e iconas para as cousas. 246 00:11:29,110 --> 00:11:32,510 Pero esta é a así chamada CS50 aparello, unha máquina virtual que, 247 00:11:32,510 --> 00:11:35,310 partir da próxima semana, vostedes van executado dentro dunha fiestra en 248 00:11:35,310 --> 00:11:36,960 Mac ou PC. 249 00:11:36,960 --> 00:11:39,760 >> Para hoxe, vou abrir o máis simple dos programas. 250 00:11:39,760 --> 00:11:41,110 Chámase gedit. 251 00:11:41,110 --> 00:11:42,565 E este é só un editor gráfico. 252 00:11:42,565 --> 00:11:44,695 É unha especie de como Microsoft Word, pero sinxelo. 253 00:11:44,695 --> 00:11:47,110 É o tipo de texto como edición ou Bloc de Notas. 254 00:11:47,110 --> 00:11:50,280 É só un programa moi sinxelo, con que para escribir palabras na pantalla. 255 00:11:50,280 --> 00:11:54,510 É só así que pasa que si aforrar arquivos que eu creo cando este programa 256 00:11:54,510 --> 00:11:59,860 nunha extensión especial como. c, ao contrario de. doc ou. xls, ou calquera outra cousa 257 00:11:59,860 --> 00:12:04,190 está familiarizado con, podo realmente crear programas usando o mesmo esta simple 258 00:12:04,190 --> 00:12:05,130 editor de texto. 259 00:12:05,130 --> 00:12:05,770 >> Entón deixe-me facelo. 260 00:12:05,770 --> 00:12:09,330 Déixeme ir adiante e salva este presentar por primeira vez como hello.c. 261 00:12:09,330 --> 00:12:12,350 E, de novo, esta interface de usuario será chegar a ser familiar para vostede axiña. 262 00:12:12,350 --> 00:12:14,160 Pero, polo de agora, só estou escribindo nun nome de ficheiro. 263 00:12:14,160 --> 00:12:17,410 Vou gardalo no meu John Directorio home Harvard. 264 00:12:17,410 --> 00:12:20,810 E agora eu teño esta guía que indica Estou realmente edición 265 00:12:20,810 --> 00:12:23,070 un arquivo chamado hello.c. 266 00:12:23,070 --> 00:12:24,510 Entón, nada moi interesante aínda. 267 00:12:24,510 --> 00:12:26,000 >> E agora que vai ser moi enigmática. 268 00:12:26,000 --> 00:12:28,370 Vou ampliar, só polo que é máis visible. 269 00:12:28,370 --> 00:12:35,780 E eu vou comezar a escribir incluír stdio.h, int main, baleiro, aberto rizado 270 00:12:35,780 --> 00:12:40,140 cinta, un, dous, tres, catro espazos de retirada, f impresión, para imprimir 271 00:12:40,140 --> 00:12:44,450 algo formato, entre comiñas, "Ola, mundo" barra invertida, n, próximo 272 00:12:44,450 --> 00:12:49,640 cita, paréntese pechada, punto e coma, entrar retroceso, retroceso, retroceso, 273 00:12:49,640 --> 00:12:52,310 Retroceso, pechou rizado cinta - 274 00:12:52,310 --> 00:12:53,350 Teño programado. 275 00:12:53,350 --> 00:12:57,380 >> Todo ben que esta é unha super sinxelo programa, en realidade, o programa que 276 00:12:57,380 --> 00:12:59,070 Alguén comeza a programación con. 277 00:12:59,070 --> 00:13:02,300 E todo o que fai, por toda a súa complexidade, é imprimir o 278 00:13:02,300 --> 00:13:04,160 pantalla, difícil de adiviñar? 279 00:13:04,160 --> 00:13:04,910 Ola, mundo. 280 00:13:04,910 --> 00:13:07,500 Pero non é suficiente só escribir un programa. 281 00:13:07,500 --> 00:13:08,155 Polo tanto, este é o código. 282 00:13:08,155 --> 00:13:11,300 Este é o código fonte en unha linguaxe chamada c. 283 00:13:11,300 --> 00:13:14,380 El salvou actualmente en un arquivo chamado hello.c. 284 00:13:14,380 --> 00:13:16,180 >> Agora mire para o fondo da pantalla aquí. 285 00:13:16,180 --> 00:13:17,890 Máis sobre iso, unha vez máis, en próximas semanas. 286 00:13:17,890 --> 00:13:19,570 Pero iso é o que imos chamar unha fiestra de terminal. 287 00:13:19,570 --> 00:13:21,290 É un chiscar, negro e indicación baleiro. 288 00:13:21,290 --> 00:13:24,390 É unha especie de interface antiga escola un equipo que, xeralmente, non fai 289 00:13:24,390 --> 00:13:27,050 usar un rato ou outro elementos gráficos. 290 00:13:27,050 --> 00:13:28,320 El só usa o teclado. 291 00:13:28,320 --> 00:13:30,970 E podo escribir comandos en esta chiscando rápida. 292 00:13:30,970 --> 00:13:33,820 >> E para fins de hoxe, eu son só vai escribir o seguinte - 293 00:13:33,820 --> 00:13:35,610 Ola facer. 294 00:13:35,610 --> 00:13:39,370 E ese programa, faga, é só un programa que, no mundo real, estes 295 00:13:39,370 --> 00:13:40,690 días, teriamos un dobre clic en. 296 00:13:40,690 --> 00:13:44,580 Pero nesta interface para hoxe, estamos vai escribir o seu nome na ventá. 297 00:13:44,580 --> 00:13:47,980 Ola facer é, literalmente, vai a me facer un programa chamado Olá 298 00:13:47,980 --> 00:13:51,360 E vai facelo, observando a un ficheiro, só 299 00:13:51,360 --> 00:13:53,460 estándar, chamado hello.c. 300 00:13:53,460 --> 00:13:57,260 Vai asumir Eu quero un programa C por natureza, de como este ordenador 301 00:13:57,260 --> 00:13:58,230 está configurada. 302 00:13:58,230 --> 00:13:59,550 >> Entón, vai adiante e presione Intro. 303 00:13:59,550 --> 00:14:02,050 Eu vexo algunha saída enigmática, pero iso vai facer moi 304 00:14:02,050 --> 00:14:03,330 familiarizado antes de tempo. 305 00:14:03,330 --> 00:14:06,870 Isto aconteceu para executar un compilador, máis en que, nun momento, chamado Clang. 306 00:14:06,870 --> 00:14:09,080 Pero agora, eu teño só un palpebrar pedir. 307 00:14:09,080 --> 00:14:13,060 E podo ir adiante agora e escriba dot reducir, por razóns que non interesan, imos 308 00:14:13,060 --> 00:14:14,730 voltar á semana - 309 00:14:14,730 --> 00:14:15,910 Olá 310 00:14:15,910 --> 00:14:19,650 >> Entón, todo este esforzo, ata agora, só para escribir a máis simple de programas que, 311 00:14:19,650 --> 00:14:22,640 así que eu presione Intro, fai iso. 312 00:14:22,640 --> 00:14:24,510 Entón, eu escribín o meu primeiro programa. 313 00:14:24,510 --> 00:14:27,500 Entón, eu estou deliberadamente mofando neste programa moi sinxelo 314 00:14:27,500 --> 00:14:28,540 por un par de razóns. 315 00:14:28,540 --> 00:14:31,990 Un deles, é difícil estar animado sobre a toma de unha clase se 316 00:14:31,990 --> 00:14:33,430 este é o fin do xogo. 317 00:14:33,430 --> 00:14:37,100 >> Pero máis que iso, hai unha morea de distraccións aquí. 318 00:14:37,100 --> 00:14:40,640 A primeira vez que aprender a programar, para quen menos cómodo, e 319 00:14:40,640 --> 00:14:43,410 ata eu, de volta ao día, cando eu vin algo coma iso - pode tipo 320 00:14:43,410 --> 00:14:46,500 da cifra que, todo ben, este está nun Ola mundo da impresión. 321 00:14:46,500 --> 00:14:47,860 Pero hai tanta distracción. 322 00:14:47,860 --> 00:14:52,110 Hai moito sintaxe na pantalla que está no camiño de moi 323 00:14:52,110 --> 00:14:54,170 ideas simples, se non, simple,. 324 00:14:54,170 --> 00:14:56,700 >> Entón, o que imos facer hoxe é que estamos deixará de lado C e vir 325 00:14:56,700 --> 00:14:57,630 de volta para que o luns. 326 00:14:57,630 --> 00:15:00,860 E nós estamos indo a usar unha gráfica linguaxe de programación chamada arañazos. 327 00:15:00,860 --> 00:15:04,470 Isto é unha linguaxe de programación, que eu aludido o mércores, que vai 328 00:15:04,470 --> 00:15:08,870 para permitir facer o mesmo tipo de cousas pero pechar os ollos, para hoxe, 329 00:15:08,870 --> 00:15:12,270 para as chaves, as parénteses, o punto e coma, e todas estas estúpidas 330 00:15:12,270 --> 00:15:15,680 distraccións que quedan no camiño, en Neste primeiro día, dalgún básico, así 331 00:15:15,680 --> 00:15:17,230 ideas interesantes. 332 00:15:17,230 --> 00:15:21,350 >> Entón, para iso, eu vou de volta para o meu escritorio aquí e 333 00:15:21,350 --> 00:15:25,890 presentar-lle a alternativa de que programa, que vai buscar un 334 00:15:25,890 --> 00:15:30,790 peixe acender isto. 335 00:15:30,790 --> 00:15:33,930 É así que imos aplicar esta mesmo programa de hoxe - dous puzzle 336 00:15:33,930 --> 00:15:37,710 pezas que, cando conectados e premendo, vai dicir ao mundo, 337 00:15:37,710 --> 00:15:39,000 Ola mundo. 338 00:15:39,000 --> 00:15:41,200 >> Entón, imos realmente ir alí. 339 00:15:41,200 --> 00:15:44,965 Entón, eu estou indo a ir adiante e abrir unha sitio coñecido como scratch.mit.edu. 340 00:15:44,965 --> 00:15:47,980 341 00:15:47,980 --> 00:15:52,040 E iso me vai levar este sitio. 342 00:15:52,040 --> 00:15:54,660 De antemán, eu teño rexistrado neste web e os primeiros problemas que 343 00:15:54,660 --> 00:15:55,910 ha oriente-lo a través de algúns destes pasos. 344 00:15:55,910 --> 00:15:58,930 Eu estou indo a ir adiante e prema na miña carpeta de cero aquí. 345 00:15:58,930 --> 00:16:00,720 >> E iso me vai amosar algúns proxectos que teño 346 00:16:00,720 --> 00:16:02,570 efectivamente creado anticipadamente. 347 00:16:02,570 --> 00:16:05,860 E verifícase que esta gráfica linguaxe de programación non é só ir 348 00:16:05,860 --> 00:16:08,480 para deixarnos programa arrastrando e soltando estas pezas de puzzle, vostede 349 00:16:08,480 --> 00:16:09,730 Nin sequera precisa de ningún software especial. 350 00:16:09,730 --> 00:16:13,190 Está todo embutido dentro dun navegador para que pode facelo, en teoría, en 351 00:16:13,190 --> 00:16:16,810 seus ordenadores agora, como algúns de vós Pode moi ben ser, sen necesidade 352 00:16:16,810 --> 00:16:19,870 software como o aparello CS50, o que virá a próxima semana. 353 00:16:19,870 --> 00:16:24,200 >> Entón, eu estou indo a ir ata a esquina superior aquí e prema en Crear. 354 00:16:24,200 --> 00:16:27,840 E nun momento en que eu estou indo a obter un espazo en branco pantalla a través da cal eu poida comezar 355 00:16:27,840 --> 00:16:30,380 programación neste vídeo contorno de programación. 356 00:16:30,380 --> 00:16:36,140 Pero esta vez, que vai ser moi, moito máis sinxelo do que realmente facelo. 357 00:16:36,140 --> 00:16:41,560 Entón, nun momento, cando o WiFi coopera, agora temos esta pantalla. 358 00:16:41,560 --> 00:16:44,870 Entón, un rápido paseo verbal, pero atrévome a dicir, Certamente cando mergullo no 359 00:16:44,870 --> 00:16:46,840 primeiro conxunto de problemas, vai creo que todo moi 360 00:16:46,840 --> 00:16:48,315 accesible e moi intuitiva. 361 00:16:48,315 --> 00:16:50,900 Pero imos pintar un cadro mental só por un momento. 362 00:16:50,900 --> 00:16:54,620 >> Entón, baixo este aviso dicindo save cambios, está a piques de ver nada. 363 00:16:54,620 --> 00:16:55,570 Este é un sprite. 364 00:16:55,570 --> 00:16:56,630 É un personaxe. 365 00:16:56,630 --> 00:17:00,740 E el vive o que imos chamar un escenario, este gran rectángulo branco en 366 00:17:00,740 --> 00:17:03,120 que pode ir cara arriba, abaixo, á esquerda, dereito, e facer, realmente, 367 00:17:03,120 --> 00:17:04,670 outros tipos de accións. 368 00:17:04,670 --> 00:17:08,780 >> Mentres tanto, no medio deste usuario interfaz, temos unha morea de 369 00:17:08,780 --> 00:17:09,750 pezas do puzzle. 370 00:17:09,750 --> 00:17:14,060 E vai ver que din cousas como mover 10 pasos, virou-se de 15 graos, 371 00:17:14,060 --> 00:17:15,550 punto nunha determinada dirección. 372 00:17:15,550 --> 00:17:17,910 Pero hai categorías de quarteirões ata aquí. 373 00:17:17,910 --> 00:17:21,410 Entón, se eu ir a aparencia, vai ver que hai outras pezas do puzzle que 374 00:17:21,410 --> 00:17:25,530 ao parecer, vai contar este cit para dicir Hola, para pensar, para amosar 375 00:17:25,530 --> 00:17:26,780 se, ocultar-se. 376 00:17:26,780 --> 00:17:30,830 Se eu baixar a Sounds, verifícase se hai formas de reproducir sons como Miau, 377 00:17:30,830 --> 00:17:32,670 parar todos os sons, tocar un tambor. 378 00:17:32,670 --> 00:17:36,530 >> Así, longa historia curta, hai un todo chea de pezas de puzzle que permiten que 379 00:17:36,530 --> 00:17:40,920 para dicir este gato, ou calquera número de outros personaxes, o que facer. 380 00:17:40,920 --> 00:17:43,850 Pero para facer todo isto acontecer necesitamos para comezar a programación. 381 00:17:43,850 --> 00:17:48,090 E esta gran caixa branca ou caixa gris, en á dereita, este é o lugar onde 382 00:17:48,090 --> 00:17:50,170 Vou realmente arrastrar e soltar as pezas do puzzle. 383 00:17:50,170 --> 00:17:54,320 Ese é o meu texto en branco fiestra equivalente. 384 00:17:54,320 --> 00:17:57,070 >> Entón, eu estou indo a ir adiante e prema Controlar o medio. 385 00:17:57,070 --> 00:17:58,540 Ou mellor, déixeme comezar baixo Eventos. 386 00:17:58,540 --> 00:18:01,530 Baixo base Eventos, verás unha algunhas cousas que son deliberadamente 387 00:18:01,530 --> 00:18:05,240 curvada na parte superior, de tal xeito que probablemente non entrelaçar no 388 00:18:05,240 --> 00:18:06,710 parte superior das pezas do puzzle. 389 00:18:06,710 --> 00:18:10,160 E iso é porque demarcar o inicio dun programa, o inicio dun 390 00:18:10,160 --> 00:18:11,910 guión, por así dicir. 391 00:18:11,910 --> 00:18:16,290 Entón, se eu ir adiante e arrastrar, cando verde bandeira premendo por aquí, e entón eu 392 00:18:16,290 --> 00:18:18,060 quere dicir que este gato algo en primeiro lugar. 393 00:18:18,060 --> 00:18:20,510 Entón, eu estou indo a ir en o panel parece. 394 00:18:20,510 --> 00:18:24,060 E eu estou indo a ir adiante e coller a dicir Hola bloque, e arrastrar e soltar, 395 00:18:24,060 --> 00:18:27,220 e solte para que automaticamente interliga alí. 396 00:18:27,220 --> 00:18:28,640 >> E, a continuación, entender que podo faga clic sobre o texto. 397 00:18:28,640 --> 00:18:31,960 E podo substitúe-lo a ser máis específicas como, por exemplo, Ola mundo. 398 00:18:31,960 --> 00:18:36,340 E agora temos o programa que eu reivindico equivale a máis do que moi 399 00:18:36,340 --> 00:18:39,670 programa arcano eu apliquei C en un momento atrás. 400 00:18:39,670 --> 00:18:43,130 >> Se pasar por riba agora ao lado esquerdo, ter en conta que hai un gran sinal de parada 401 00:18:43,130 --> 00:18:44,520 e unha bandeira verde grande. 402 00:18:44,520 --> 00:18:46,390 Déixeme achegar para maior claridade. 403 00:18:46,390 --> 00:18:49,390 E cando clic agora esta bandeira verde, probablemente pode adiviñar o que este primeiro 404 00:18:49,390 --> 00:18:51,920 programa agora vai facer. 405 00:18:51,920 --> 00:18:55,420 Polo tanto, hai, tamén, que estamos programando, pero Non estamos realmente encallar 406 00:18:55,420 --> 00:18:58,980 nalgúns deses sintático, detalles minuciosos. 407 00:18:58,980 --> 00:19:01,120 >> Pero imos tentar algo un pouco máis interesante. 408 00:19:01,120 --> 00:19:04,840 Deixe-me ir para a miña carpeta do risco aquí. 409 00:19:04,840 --> 00:19:10,210 E, de feito, déixeme entón déixeme abrir un programa separado aquí por só un 410 00:19:10,210 --> 00:19:17,830 momento, dar esa ventá, Abrir Arquivo, e eu estou indo a ir para hoxe 411 00:19:17,830 --> 00:19:18,620 directorio de orixe. 412 00:19:18,620 --> 00:19:21,660 Como sempre, vai atopar, hoxe e á fronte, que de todos os exemplos de hoxe 413 00:19:21,660 --> 00:19:25,225 son accesibles dentro páxina web do curso. 414 00:19:25,225 --> 00:19:31,170 >> E eu estou indo a ir adiante aquí e escoller se algo un pouco diferente. 415 00:19:31,170 --> 00:19:33,970 Este aquí, por que Necesito un voluntario. 416 00:19:33,970 --> 00:19:36,850 Quen quere ter unha lámpada de mesa hoxe? 417 00:19:36,850 --> 00:19:40,600 OK, e como a alguén un pouco - está no fin? 418 00:19:40,600 --> 00:19:42,124 Imos cara a abaixo. 419 00:19:42,124 --> 00:19:47,230 Agora quere participar, ou só dicir que comezar coa lámpada de mesa? 420 00:19:47,230 --> 00:19:48,190 >> Vanessa: [inaudível]. 421 00:19:48,190 --> 00:19:48,465 >> DAVID Malan: Aceptar. 422 00:19:48,465 --> 00:19:49,610 Excelente, o que é o que chama? 423 00:19:49,610 --> 00:19:49,990 Vanessa? 424 00:19:49,990 --> 00:19:50,570 David. 425 00:19:50,570 --> 00:19:51,390 Pracer en coñece lo. 426 00:19:51,390 --> 00:19:53,840 Entón imos para arriba e Vanessa vai para asumir o control da miña 427 00:19:53,840 --> 00:19:55,490 teclado por só un momento. 428 00:19:55,490 --> 00:19:57,850 E o que eu fixen aquí, só para o tempo de ben, como eu entender o 429 00:19:57,850 --> 00:20:01,070 WiFi foi un pouco lento, risco, o contorno de programación que estamos 430 00:20:01,070 --> 00:20:04,110 utilizando, tamén se pode descargar e executado no seu ordenador local. 431 00:20:04,110 --> 00:20:06,360 Entón o que eu fixen antes da charla, en Se isto ocorre, é que eu baixei 432 00:20:06,360 --> 00:20:09,120 todos os ficheiros que estamos a piques de xogar con para que se poidan executar un pouco máis 433 00:20:09,120 --> 00:20:10,840 rapidamente aquí no meu portátil. 434 00:20:10,840 --> 00:20:13,460 É por iso que agora estou a ver unha interface específica-Mac. 435 00:20:13,460 --> 00:20:15,510 >> Entón, eu estou indo a ir adiante e abrir un agasallo. 436 00:20:15,510 --> 00:20:18,400 Eu estou indo a ir adiante agora e pantalla completa da fiestra. 437 00:20:18,400 --> 00:20:21,740 E, como verás, podemos moi rapidamente, como este estudante fixo, dun 438 00:20:21,740 --> 00:20:26,360 seus antecesores, ir do Ola mundo para unha moito máis atractivo 439 00:20:26,360 --> 00:20:27,020 aplicación. 440 00:20:27,020 --> 00:20:28,180 Entón, aquí están as instrucións. 441 00:20:28,180 --> 00:20:29,500 Ah, e nós temos unha outra cousa. 442 00:20:29,500 --> 00:20:31,640 Eu penso que sería divertido, xa que, normalmente, estaremos filmando 443 00:20:31,640 --> 00:20:32,440 As cámaras deste xeito. 444 00:20:32,440 --> 00:20:34,100 Eu penso que sería divertido se, Vanessa, poderiamos ver o mundo 445 00:20:34,100 --> 00:20:35,120 a través dos seus ollos. 446 00:20:35,120 --> 00:20:36,670 Polo tanto, temos aquí algúns cristais de Google. 447 00:20:36,670 --> 00:20:39,290 >> [Suspiros asombrado] 448 00:20:39,290 --> 00:20:41,610 >> DAVID Malan: Nós só estará dando distancia de mesa lámpadas hoxe. 449 00:20:41,610 --> 00:20:43,530 >> [Risas] 450 00:20:43,530 --> 00:20:45,260 >> Entón déixeme suxestión iso. 451 00:20:45,260 --> 00:20:49,340 Todo ben, entón tocar iso. 452 00:20:49,340 --> 00:20:51,910 OK, Vidro, gravar un vídeo. 453 00:20:51,910 --> 00:20:55,700 454 00:20:55,700 --> 00:20:56,950 Todo ben, Vanessa? 455 00:20:56,950 --> 00:21:00,940 456 00:21:00,940 --> 00:21:05,560 Agora, como un aparte que non ten nada facer co scratch, se ollar 457 00:21:05,560 --> 00:21:08,540 lixeiramente cara arriba e á dereita, vai ver o vidro literal, e ten que 458 00:21:08,540 --> 00:21:09,650 ver unha pequena fiestra rectangular. 459 00:21:09,650 --> 00:21:11,500 Verás todos os seus compañeiros sendo filmado agora? 460 00:21:11,500 --> 00:21:11,840 Si 461 00:21:11,840 --> 00:21:12,340 >> Vanessa: si. 462 00:21:12,340 --> 00:21:12,920 >> DAVID Malan: Aceptar. 463 00:21:12,920 --> 00:21:15,170 Entón, iso é bo. 464 00:21:15,170 --> 00:21:16,660 Imos publicar esta película despois. 465 00:21:16,660 --> 00:21:18,460 Polo momento, volva a súa atención á pantalla aquí. 466 00:21:18,460 --> 00:21:20,990 E o que o seu antecesor fixo é poñer algunhas instruccións da pantalla 467 00:21:20,990 --> 00:21:22,670 só usando un programa de pintura. 468 00:21:22,670 --> 00:21:25,040 Entón vai, nun momento, preme a barra de espazo para comezar. 469 00:21:25,040 --> 00:21:27,790 E, a continuación, algunhas pezas do puzzle van para comezar a mover-se na pantalla. 470 00:21:27,790 --> 00:21:30,900 E quere bater as teclas de frecha, só como en DDR real, segundo 471 00:21:30,900 --> 00:21:32,740 coas cousas aliñados con esas frechas. 472 00:21:32,740 --> 00:21:33,020 >> Vanessa: Aceptar. 473 00:21:33,020 --> 00:21:33,800 >> DAVID Malan: Vostede xogar este antes. 474 00:21:33,800 --> 00:21:34,140 >> Vanessa: Yeah. 475 00:21:34,140 --> 00:21:37,330 >> DAVID Malan: Todo ben, Vanessa, dalle levala aínda. 476 00:21:37,330 --> 00:22:53,082 >> [Music - KAYNE WEST, "Stronger"] 477 00:22:53,082 --> 00:22:57,080 >> [Aplausos] 478 00:22:57,080 --> 00:22:59,750 >> DAVID Malan: Entón, imos agora dar un paso diso. 479 00:22:59,750 --> 00:23:01,230 Entón, claramente, iso é o fin do xogo. 480 00:23:01,230 --> 00:23:02,880 O xogo final non é Ola mundo. 481 00:23:02,880 --> 00:23:05,520 Pero non ten que necesariamente facer cousas que son tan interactivo. 482 00:23:05,520 --> 00:23:06,810 Tamén pode facer animación. 483 00:23:06,810 --> 00:23:10,790 Así, por exemplo, outro da súa sucesores fixeron este programa, 484 00:23:10,790 --> 00:23:14,100 que conta unha historia de máis de el aplicou un xogo. 485 00:23:14,100 --> 00:23:19,180 Entón deixe-me ir adiante e abrir aquí un programa na nosa mesmo directorio de orixe 486 00:23:19,180 --> 00:23:20,300 a partir de hoxe. 487 00:23:20,300 --> 00:23:26,990 Esta chamada, e imos comezar con unha historia de amor cookie. 488 00:23:26,990 --> 00:23:30,750 >> E para non facelo tamén académico, pero, como ve este, creo que a 489 00:23:30,750 --> 00:23:34,030 aínda que quen simple conceptos de programación con quen falamos 490 00:23:34,030 --> 00:23:34,630 sobre ata agora - 491 00:23:34,630 --> 00:23:39,250 variables e loops, e as condicións, que o seu antecesor, probablemente, usar só 492 00:23:39,250 --> 00:23:41,090 para aplicar algunhas das as visualizacións. 493 00:23:41,090 --> 00:23:41,760 Ve aquí. 494 00:23:41,760 --> 00:23:44,118 Entón, eu darlle unha historia de amor cookie. 495 00:23:44,118 --> 00:24:06,030 >> [Music - GREEN DAY, "festivo"] 496 00:24:06,030 --> 00:24:08,022 >> [CRASH] 497 00:24:08,022 --> 00:24:09,272 >> [MUSIC - as tartarugas, 'Happy Together "] 498 00:24:09,272 --> 00:24:58,328 499 00:24:58,328 --> 00:25:00,560 >> DAVID Malan: Todo ben, entón non hai, tivemos unha historia de amor cookie. 500 00:25:00,560 --> 00:25:01,360 Pero, mesmo alí - 501 00:25:01,360 --> 00:25:01,755 >> [Aplausos] 502 00:25:01,755 --> 00:25:08,110 >> DAVID Malan: Todo ben, ata alí, pensar, como os corazóns pasou de 503 00:25:08,110 --> 00:25:10,410 a parte inferior cara á parte superior da pantalla, houbo realmente un pouco de 504 00:25:10,410 --> 00:25:11,440 aleatoriedade suceder. 505 00:25:11,440 --> 00:25:14,150 E, de feito, imos ver que, aínda no sinxelo de ambientes, como o 506 00:25:14,150 --> 00:25:18,180 Cero, como en C, pode xerar números aleatorios, ou a ilusión 507 00:25:18,180 --> 00:25:21,110 números aleatorios, de xeito que o xogo é un pouco máis interesante do que podería 508 00:25:21,110 --> 00:25:23,390 se tivese absolutamente codificado todo. 509 00:25:23,390 --> 00:25:26,360 >> No movemento que ve, non hai algún tipo de resposta. 510 00:25:26,360 --> 00:25:28,840 Tan pronto o home de xenxibre toca a muller do pan, ela 511 00:25:28,840 --> 00:25:30,000 parece afastarse. 512 00:25:30,000 --> 00:25:33,580 E así, de feito, pode aplicar, en a maioría das linguaxes de programación, a noción 513 00:25:33,580 --> 00:25:38,680 de eventos, en que se unha man toca por outra banda, que pode provocar algunha 514 00:25:38,680 --> 00:25:41,270 do seu código fonte realmente realizar. 515 00:25:41,270 --> 00:25:43,740 Podes escoitar para tal as cousas na pantalla. 516 00:25:43,740 --> 00:25:47,310 >> Entón, imos dar un rápido paseo, entón, algúns dos bloques de construción que podemos utilizar 517 00:25:47,310 --> 00:25:48,790 para alcanzar algúns deses obxectivos. 518 00:25:48,790 --> 00:25:51,630 Entón aquí está o que imos a partir de agora chamar un comunicado. 519 00:25:51,630 --> 00:25:55,030 A declaración pasa a ser vermello en Cero, un pouco máis ou menos así, 520 00:25:55,030 --> 00:25:56,120 pero iso é arbitrario. 521 00:25:56,120 --> 00:26:00,140 A afirmación é só unha peza do puzzle ou, máis xeralmente, unha instrución, que 522 00:26:00,140 --> 00:26:03,370 di ao ordenador para facer algo, unha declaración. 523 00:26:03,370 --> 00:26:04,680 >> Entón, aquí está un exemplo simple. 524 00:26:04,680 --> 00:26:05,930 Diga Ola mundo. 525 00:26:05,930 --> 00:26:08,180 Outro podería ser esperar un segundo. 526 00:26:08,180 --> 00:26:10,840 Polo tanto, esta parte do enigma, que é apoiado en perigo, imos deixar o seu 527 00:26:10,840 --> 00:26:13,050 caracteres pausa para algúns número de segundos. 528 00:26:13,050 --> 00:26:15,330 Isto, tamén, é só unha declaración. 529 00:26:15,330 --> 00:26:18,640 >> Aquí ao lado, temos un outro máis un interesante xogo de son miado, e 530 00:26:18,640 --> 00:26:21,480 unha pequena frecha significa que en risco, este é un menú desplegable. 531 00:26:21,480 --> 00:26:22,590 Así, pode descargar sons. 532 00:26:22,590 --> 00:26:25,095 Pode gravar sons e facer outra cousas divertido en cero. 533 00:26:25,095 --> 00:26:28,450 E que, tamén, aínda que, ao final do día, é só unha declaración. 534 00:26:28,450 --> 00:26:31,250 Pero agora imos introducir unha máis interesante peza, que coñecido como un 535 00:26:31,250 --> 00:26:32,630 Expresión booleana. 536 00:26:32,630 --> 00:26:35,180 Capital B, en homenaxe un suxeito chamado bool. 537 00:26:35,180 --> 00:26:39,500 >> E unha expresión booleana é só un parte do enigma, ou, máis xeralmente, a 538 00:26:39,500 --> 00:26:42,980 peza de información que se verdadeira ou falsa - 539 00:26:42,980 --> 00:26:45,830 un ou cero, si ou non. 540 00:26:45,830 --> 00:26:48,420 Por iso, é só un destes dous opostos. 541 00:26:48,420 --> 00:26:52,840 Así, unha tal expresión booleana en mundo do scratch parece que ese azul 542 00:26:52,840 --> 00:26:53,560 Puzzle Piece. 543 00:26:53,560 --> 00:26:56,735 E está a facer unha pregunta, rato para abaixo, e que pode ser, de 544 00:26:56,735 --> 00:26:58,430 Por suposto, verdadeiro ou falso. 545 00:26:58,430 --> 00:27:01,710 Así, con esta peza de puzzle en perigo, ben, vai ser capaz de detectar se un 546 00:27:01,710 --> 00:27:05,490 descifrar o rato é, de feito, ser presionado pola interacción humana 547 00:27:05,490 --> 00:27:06,550 co seu programa. 548 00:27:06,550 --> 00:27:08,860 >> Este é un pouco máis abstracto, pero estas dúas caixas brancas 549 00:27:08,860 --> 00:27:09,740 son só para números. 550 00:27:09,740 --> 00:27:12,950 Así, pode facer cousas como esta é número menor que os outros? 551 00:27:12,950 --> 00:27:16,180 E se é así, risco vai comportarse dunha forma ou doutra. 552 00:27:16,180 --> 00:27:17,505 Este é un pouco máis gráfica. 553 00:27:17,505 --> 00:27:21,840 É, o Sprite, se o gato, polo exemplo, é realmente tocando o 554 00:27:21,840 --> 00:27:22,510 punteiro do rato. 555 00:27:22,510 --> 00:27:25,780 Entón, se a cabeza pequena frecha está paira sobre o gato, entón este 556 00:27:25,780 --> 00:27:28,030 peza do puzzle pode avaliar a true. 557 00:27:28,030 --> 00:27:31,870 Será verdade, caso en que, se usar esta expresión booleana, como veremos 558 00:27:31,870 --> 00:27:36,340 ver nun momento, nun sector, pode quere facelo, ou pode facelo, 559 00:27:36,340 --> 00:27:39,940 tanto como se tivésemos unha condición que marcada, hai unha última persoa 560 00:27:39,940 --> 00:27:40,460 no cuarto? 561 00:27:40,460 --> 00:27:42,070 Se é así, engade un. 562 00:27:42,070 --> 00:27:44,430 En caso contrario, non se preocupe máis. 563 00:27:44,430 --> 00:27:48,650 >> Así, unha expresión booleana tamén se pode e-ed xuntos ou ou-xuntos ed. 564 00:27:48,650 --> 00:27:53,120 Así, pode combinar expresións booleanas e dicir iso e iso debe ser certo para 565 00:27:53,120 --> 00:27:54,710 a cousa toda para ser verdade. 566 00:27:54,710 --> 00:27:56,520 E aquí está un exemplo do mundo máis real. 567 00:27:56,520 --> 00:28:00,060 Se xa usou CS50 Cursos de facer curso compras, estas caixas de verificación 568 00:28:00,060 --> 00:28:03,520 alí, onde se comprobe que a caixa ó lado aos cursos, que van dicir, si, 569 00:28:03,520 --> 00:28:07,860 só me amosar cursos para os que o valor Q é 4.5 ou superior. 570 00:28:07,860 --> 00:28:10,610 Se desmarque-a, non, non preocupar con iso. 571 00:28:10,610 --> 00:28:13,910 Ou do mesmo xeito, á dereita, non fai Conflito con cursos que estou tendo, 572 00:28:13,910 --> 00:28:15,650 iso é certo ou falso. 573 00:28:15,650 --> 00:28:16,715 É só unha expresión booleana. 574 00:28:16,715 --> 00:28:20,080 Entón todo este tempo, cando xa usou sitios con caixas de verificación, que é só 575 00:28:20,080 --> 00:28:23,570 alternando o equivalente a un valor booleano expresión conexionado e apagado. 576 00:28:23,570 --> 00:28:25,270 >> Entón, de que forma usa isto? 577 00:28:25,270 --> 00:28:28,820 Ben, en scratch, veremos nun momento que existen condicións que 578 00:28:28,820 --> 00:28:29,560 semellante a esta. 579 00:28:29,560 --> 00:28:33,130 E ese é o tipo de corda, porque moi como en pseudocódigo, nos recuado 580 00:28:33,130 --> 00:28:38,550 o tipo de pezas de puzzle en forma de U, a media que nada dentro do dito U é 581 00:28:38,550 --> 00:28:41,390 vai realizar, ou non, dependendo de onde é. 582 00:28:41,390 --> 00:28:45,310 Entón, se a expresión booleana, entón todo o que está dentro será executado. 583 00:28:45,310 --> 00:28:46,800 >> Mentres tanto, hai un bloque if / else. 584 00:28:46,800 --> 00:28:50,320 Entón se quere un sector que este ou daquela maneira, risco dános isto. 585 00:28:50,320 --> 00:28:54,500 E por esa lóxica, agora, a pesar de que peza do puzzle é claramente moi pequeno 586 00:28:54,500 --> 00:28:57,400 para calzar outra cousa dentro del, as pezas do puzzle de cero, son 587 00:28:57,400 --> 00:28:58,150 só vai medrar. 588 00:28:58,150 --> 00:29:01,370 Cando arrastrar e soltar sobre algo, ela só vai medrar para caber todo o que 589 00:29:01,370 --> 00:29:02,510 é que estás a facer. 590 00:29:02,510 --> 00:29:07,230 >> Así, podemos ter dúas desas cousas e facer un fork de tres vías na estrada para 591 00:29:07,230 --> 00:29:11,300 que quere facer isto, ou aquilo, ou esa outra cousa só aninhando los 592 00:29:11,300 --> 00:29:12,070 dese modo. 593 00:29:12,070 --> 00:29:14,370 Claro que, se fai iso tamén moito, comeza a estar feo. 594 00:29:14,370 --> 00:29:17,660 Pero nese momento, está, de feito, probablemente non programación moi ben. 595 00:29:17,660 --> 00:29:20,490 E, de xeito que será recurrente tema, tamén, que de estilo. 596 00:29:20,490 --> 00:29:22,790 Que ben realmente formatear o seu código? 597 00:29:22,790 --> 00:29:24,580 Ou como ben vostede proxecto seu código? 598 00:29:24,580 --> 00:29:26,430 Pero máis sobre iso no futuro. 599 00:29:26,430 --> 00:29:27,470 >> E agora temos loops. 600 00:29:27,470 --> 00:29:30,310 Hai un loop para sempre agradable en Scratch que literalmente quere dicir que - facer 601 00:29:30,310 --> 00:29:32,710 todo o que está dentro desta nova e de novo, e de novo. 602 00:29:32,710 --> 00:29:35,880 Pode ser máis concreto e dicir: faga o seguinte cousa 10 veces. 603 00:29:35,880 --> 00:29:37,620 Tamén pode usar variables. 604 00:29:37,620 --> 00:29:40,260 Pode chegar a calquera nome no que pouco caer abaixo e dicir, me dea un 605 00:29:40,260 --> 00:29:43,190 variable chamada n e establecer é igual a un valor. 606 00:29:43,190 --> 00:29:44,910 E entón pode ter funcións. 607 00:29:44,910 --> 00:29:46,850 Pero máis sobre aqueles en só un momento. 608 00:29:46,850 --> 00:29:49,140 >> Déixeme volver á miña Acoitelado interface. 609 00:29:49,140 --> 00:29:50,970 E déixeme ir adiante neste momento. 610 00:29:50,970 --> 00:29:56,660 E imos adiante e abrir, digamos, un exemplo de - 611 00:29:56,660 --> 00:29:58,740 iso é un pouco máis interesante. 612 00:29:58,740 --> 00:30:00,750 Déixeme ir adiante, e, de feito, déixeme facelo só. 613 00:30:00,750 --> 00:30:01,960 Eu non teño abrir un agasallo. 614 00:30:01,960 --> 00:30:03,390 Déixeme ir a Arquivo, Novo. 615 00:30:03,390 --> 00:30:04,740 Eu estou indo a ir a eventos. 616 00:30:04,740 --> 00:30:08,460 Eu estou indo a ir cando bandeira verde premendo, e eu estou indo a ir a son. 617 00:30:08,460 --> 00:30:11,590 E eu estou indo a arrastrar e soltar esta peza do puzzle, xogar Meow son. 618 00:30:11,590 --> 00:30:12,580 El trabas xuntos. 619 00:30:12,580 --> 00:30:14,327 E agora, se eu premer na bandeira verde - 620 00:30:14,327 --> 00:30:16,260 >> [Meow SOUND] 621 00:30:16,260 --> 00:30:17,500 >> DAVID Malan: Adorable. 622 00:30:17,500 --> 00:30:21,560 OK, entón agora imos facer algo un pouco máis lóxico só para demostrar que 623 00:30:21,560 --> 00:30:22,760 podemos, por agora. 624 00:30:22,760 --> 00:30:25,550 Eu estou indo para desbloquear iso este cara. 625 00:30:25,550 --> 00:30:27,000 Eu estou indo a ir a control. 626 00:30:27,000 --> 00:30:28,770 E eu vou ir unha enfermidade. 627 00:30:28,770 --> 00:30:30,600 Entón, se algo, entón. 628 00:30:30,600 --> 00:30:32,020 Entón é así que mira alí. 629 00:30:32,020 --> 00:30:33,890 Entón eu teño unha expresión booleana. 630 00:30:33,890 --> 00:30:38,130 E déixeme ir adiante e dicir: déixeme ir os operadores. 631 00:30:38,130 --> 00:30:40,270 Vou facer algo un pouco mathy, só por diversión. 632 00:30:40,270 --> 00:30:43,600 Eu estou indo a ir aquí e dicir que si algo que é menor que calquera outra cousa, 633 00:30:43,600 --> 00:30:45,030 dalle facer algo. 634 00:30:45,030 --> 00:30:46,890 Entón, agora, vostede sabe, un bloque ao azar. 635 00:30:46,890 --> 00:30:51,620 Entón, teña en conta como, se eu pasar o rato sobre este cousa aquí, que se encaixará alí. 636 00:30:51,620 --> 00:30:54,090 >> Entón, agora, o aviso previo, eu estou empezando a facer algo xa máis loxicamente 637 00:30:54,090 --> 00:30:54,650 interesante. 638 00:30:54,650 --> 00:30:59,720 Se un número aleatorio entre 1 e 10 é menor que, digamos seis. 639 00:30:59,720 --> 00:31:03,670 Se eu escoller seis, que, esencialmente, medios, faga o seguinte con 50% 640 00:31:03,670 --> 00:31:03,980 probabilidade. 641 00:31:03,980 --> 00:31:05,460 É como xogar unha moeda. 642 00:31:05,460 --> 00:31:07,330 Agora, podo facer algo condicional. 643 00:31:07,330 --> 00:31:10,800 E ese algo eu vou facer é xogar o son. 644 00:31:10,800 --> 00:31:14,280 Entón, agora, cando clic na pantalla bandeira, é como xogar unha moeda. 645 00:31:14,280 --> 00:31:14,610 >> [Meow SOUND] 646 00:31:14,610 --> 00:31:17,160 >> DAVID Malan: Foi cabezas ou outros enfeites alí. 647 00:31:17,160 --> 00:31:17,920 Imos facelo de novo. 648 00:31:17,920 --> 00:31:18,860 >> [Meow SOUND] 649 00:31:18,860 --> 00:31:19,790 >> DAVID Malan: Heads novo. 650 00:31:19,790 --> 00:31:20,280 >> [Meow SOUND] 651 00:31:20,280 --> 00:31:21,500 >> DAVID Malan: Heads novo. 652 00:31:21,500 --> 00:31:22,631 Ufa, Aceptar. 653 00:31:22,631 --> 00:31:24,720 Colas ese tempo. 654 00:31:24,720 --> 00:31:29,545 Así, o 50% do tempo, se facemos iso infinitamente longo, teremos un 50% de miados 655 00:31:29,545 --> 00:31:32,180 e 50% silencios. 656 00:31:32,180 --> 00:31:34,850 Polo tanto, hai só un edificio básico bloque que nos permite facelo. 657 00:31:34,850 --> 00:31:37,710 Pero este é o tipo de tediosa que eu teño para manter a premer nese botón. 658 00:31:37,710 --> 00:31:39,810 Entón, imos simplemente arrastrar e xogar todos os que están lonxe. 659 00:31:39,810 --> 00:31:42,270 Se arrastrou para o medio, simplemente eliminar-se. 660 00:31:42,270 --> 00:31:43,760 >> Déixeme ir ata controlar. 661 00:31:43,760 --> 00:31:46,060 Deixe-me ir para sempre. 662 00:31:46,060 --> 00:31:49,952 E esta vez, eu vou facer minorly algo irritante. 663 00:31:49,952 --> 00:31:51,560 >> [Risas] 664 00:31:51,560 --> 00:31:53,370 >> DAVID Malan: E déixeme ir adiante e facer o control. 665 00:31:53,370 --> 00:31:57,260 Agarde un segundo, só así non é moi irritante. 666 00:31:57,260 --> 00:31:59,870 >> [Meow SOUND] 667 00:31:59,870 --> 00:32:00,970 >> DAVID Malan: Isto non é natural. 668 00:32:00,970 --> 00:32:01,861 Aceptar. 669 00:32:01,861 --> 00:32:04,510 >> [Meow SOUND] 670 00:32:04,510 --> 00:32:06,406 >> DAVID Malan: E teña en conta o que está, bo sobre o risco, para aqueles de vostedes que 671 00:32:06,406 --> 00:32:09,210 ter experiencia previa de programación, vostede Non é necesario para iniciar e parar. 672 00:32:09,210 --> 00:32:10,060 Non ten que compilar. 673 00:32:10,060 --> 00:32:13,210 Acaba de cambiar, eo programa pode adaptar-se dinamicamente. 674 00:32:13,210 --> 00:32:14,620 Entón, iso está quedando un algo interesante. 675 00:32:14,620 --> 00:32:16,930 Pero imos dar un paso adiante. 676 00:32:16,930 --> 00:32:19,760 Déixeme ir adiante e conseguir librar dese programa. 677 00:32:19,760 --> 00:32:23,300 >> [Meow SOUND] 678 00:32:23,300 --> 00:32:25,520 >> DAVID Malan: Isto é o que imos chamar a un erro en perigo. 679 00:32:25,520 --> 00:32:26,770 Non debería seguir facendo ese son. 680 00:32:26,770 --> 00:32:28,340 Entón, nós imos dicirlle a parar. 681 00:32:28,340 --> 00:32:30,435 Todo ben, entón agora eu estou indo a ir - 682 00:32:30,435 --> 00:32:32,180 Vou deixar MIT sei. 683 00:32:32,180 --> 00:32:35,160 Nós imos pasar por riba aquí para sempre. 684 00:32:35,160 --> 00:32:37,240 E agora, quero facer algo unha e outra vez. 685 00:32:37,240 --> 00:32:38,760 Eu estou indo a ir a Control. 686 00:32:38,760 --> 00:32:41,570 >> E imos ver, eu estou indo a arrastrar miña condición se alí. 687 00:32:41,570 --> 00:32:42,850 Entón agora entender a lóxica. 688 00:32:42,850 --> 00:32:46,430 Cando a bandeira verde é premendo, facer algo para sempre, pero só faino 689 00:32:46,430 --> 00:32:48,890 algo, se esta outra cousa é verdade. 690 00:32:48,890 --> 00:32:51,480 Eu estou indo a ir, imos dicir, sentindo. 691 00:32:51,480 --> 00:32:54,430 E eu estou indo a ir adiante e elixir tocar e solta-lo alí. 692 00:32:54,430 --> 00:32:55,930 Esa é unha expresión booleana. 693 00:32:55,930 --> 00:32:57,740 >> E agora, notar, neste caída menú, hai 694 00:32:57,740 --> 00:32:59,050 algúns valores predefinidos. 695 00:32:59,050 --> 00:33:00,910 Entón eu podo dicir, está tocando o bordo da pantalla? 696 00:33:00,910 --> 00:33:03,900 Ou está tocando o punteiro do rato, a frecha na pantalla? 697 00:33:03,900 --> 00:33:04,620 Entón, eu vou facelo. 698 00:33:04,620 --> 00:33:08,770 E se é así, entón eu vou adiante e xogar Meow son. 699 00:33:08,770 --> 00:33:11,250 Entón agora eu medio que teño a inicio dun xogo - 700 00:33:11,250 --> 00:33:13,110 un xogo encantador. 701 00:33:13,110 --> 00:33:14,060 >> [Meow SOUND] 702 00:33:14,060 --> 00:33:17,250 >> DAVID Malan: OK, unha encantador, xogo de buggy. 703 00:33:17,250 --> 00:33:20,770 Déixeme agardar, imos dicir, un segundo alí. 704 00:33:20,770 --> 00:33:24,910 Agora xogar de novo, premendo en a bandeira verde. 705 00:33:24,910 --> 00:33:27,860 >> [Meow SOUND] 706 00:33:27,860 --> 00:33:30,460 >> DAVID Malan: Entón agora é como acariñar un gato. 707 00:33:30,460 --> 00:33:31,850 >> [Meow SOUND] 708 00:33:31,850 --> 00:33:34,460 >> DAVID Malan: Todo ben, agora iso que eu facía antes. 709 00:33:34,460 --> 00:33:39,250 Moi tarde, faise unha especie de fácil de facer cousas estúpidas. 710 00:33:39,250 --> 00:33:40,240 Entón deixe-me entrar aquí. 711 00:33:40,240 --> 00:33:43,720 Digamos que se acariñar o gato. 712 00:33:43,720 --> 00:33:46,600 Imos agora abrir Non acariñar o gato. 713 00:33:46,600 --> 00:33:48,330 Agora, se xogarmos un regalo, podes imaxinar, se está 714 00:33:48,330 --> 00:33:49,650 mirando para a pantalla - 715 00:33:49,650 --> 00:33:51,090 >> [Meow SOUND] 716 00:33:51,090 --> 00:33:52,170 >> DAVID Malan: Agora, se eu acariciar o gato 717 00:33:52,170 --> 00:33:55,420 >> [Roar LION'S] 718 00:33:55,420 --> 00:33:57,260 >> DAVID Malan: Entón, en realidade, non acariñar o gato nese caso. 719 00:33:57,260 --> 00:34:01,350 Entón, agora só temos un exemplo dunha sector que vai en dúas direccións. 720 00:34:01,350 --> 00:34:03,130 Agora, deixe-me ir adiante e abrir outra aquí. 721 00:34:03,130 --> 00:34:07,120 Esta, tamén, entre a fonte ficheiros de código ao día. 722 00:34:07,120 --> 00:34:13,199 Entón déixeme volver á miña Orixe directorio e entrar, imos escoller 723 00:34:13,199 --> 00:34:15,610 este cara aquí e mira o que é diferente. 724 00:34:15,610 --> 00:34:17,449 >> Guau, todo ben, entón agora está quedando un pouco máis complexa. 725 00:34:17,449 --> 00:34:21,300 E antes de ver o que este cara fai, imos tratar de inferir, a partir do programa 726 00:34:21,300 --> 00:34:22,219 no lado dereito. 727 00:34:22,219 --> 00:34:25,590 E agora scratch permite claramente nos ten varios scripts, múltiples 728 00:34:25,590 --> 00:34:29,730 programas asociados a un duende, cun personaxe, e, ao parecer, 729 00:34:29,730 --> 00:34:31,760 ambos están indo a realizar en sintonía. 730 00:34:31,760 --> 00:34:35,570 Porque ambos os programas comeza con ao verde bandeira click, este é 731 00:34:35,570 --> 00:34:38,650 insinuando un tema máis avanzado, con que algúns de vostedes poden estar familiarizado, 732 00:34:38,650 --> 00:34:40,580 coñecido como Threading, ou multi-Threading. 733 00:34:40,580 --> 00:34:44,400 >> Acontece que, longa historia curta, ordenadores hoxe pode esencialmente facer múltiple 734 00:34:44,400 --> 00:34:45,270 cousas á vez. 735 00:34:45,270 --> 00:34:48,659 Ou pode facer unha cousa de cada vez para rápido que nin entende que 736 00:34:48,659 --> 00:34:50,150 está realmente facendo un cousa de cada vez. 737 00:34:50,150 --> 00:34:53,320 Pero, polo de agora, imos supor que ambos estes programas van realizar a 738 00:34:53,320 --> 00:34:54,310 á vez. 739 00:34:54,310 --> 00:34:57,350 E noten, ambos teñen sempre puzzle Pieces. 740 00:34:57,350 --> 00:35:01,270 Así, ambos están indo a seguir funcionando ata que eu bati o sinal vermello. 741 00:35:01,270 --> 00:35:02,100 >> Entón, o que van facer? 742 00:35:02,100 --> 00:35:06,030 Na parte esquerda, eu son aparentemente declarar unha variable chamada silenciado. 743 00:35:06,030 --> 00:35:09,030 Entón, eu non chamalo algo así como aburrido como N. Chamei-mudo esta 744 00:35:09,030 --> 00:35:10,240 tempo para transmitir un significado. 745 00:35:10,240 --> 00:35:11,780 Eu define-lo igual a cero. 746 00:35:11,780 --> 00:35:16,200 Imos pensar que, como falso, ou imos pensar niso como False. 747 00:35:16,200 --> 00:35:17,490 >> Agora, para sempre facer o seguinte. 748 00:35:17,490 --> 00:35:23,280 Se a barra de espazo do teclado é presionado, entón se mudo igual a cero, 749 00:35:23,280 --> 00:35:25,930 a continuación, cambiar mudo a igual un. 750 00:35:25,930 --> 00:35:27,580 Else, establecer silenciado a cero. 751 00:35:27,580 --> 00:35:30,530 Entón, loxicamente, a pesar de que é un todo chea de pezas de puzzle que é 752 00:35:30,530 --> 00:35:33,160 só dicindo que, cando eu bater a barra de espazo, o que debo facer para a variable 753 00:35:33,160 --> 00:35:34,750 chamado silenciado? 754 00:35:34,750 --> 00:35:37,170 Mudala de un a cero, ou cero a un. 755 00:35:37,170 --> 00:35:37,840 Isto é todo. 756 00:35:37,840 --> 00:35:40,740 Entón, é como conectar un interruptor de luz activado ou desactivado e lembrando, cun 757 00:35:40,740 --> 00:35:42,330 variable, o que eu fixen iso. 758 00:35:42,330 --> 00:35:45,990 >> Mentres tanto, no lado dereito, en termos xenéricos, cal é o propósito de 759 00:35:45,990 --> 00:35:47,547 o script do lado dereito? 760 00:35:47,547 --> 00:35:48,860 >> ALUMNO: Para reproducir o son do león do mar. 761 00:35:48,860 --> 00:35:52,500 >> DAVID Malan: Para reproducir son Sea Lion, se non está mudo, por 762 00:35:52,500 --> 00:35:53,480 natureza desta variable. 763 00:35:53,480 --> 00:35:57,360 Entón, nós estamos compartindo estado, por así dicir, intercambio de información entre estes dous 764 00:35:57,360 --> 00:36:00,540 scripts, pois, notar aquí, estamos sempre facendo o seguinte. 765 00:36:00,540 --> 00:36:04,620 Se mudo é cero, polo que, se non é silenciado - se silenciado é falsa, entón xogar 766 00:36:04,620 --> 00:36:05,980 este son do león de mar. 767 00:36:05,980 --> 00:36:09,930 E pensa consigo mesmo, ola, ola, ola, para de dous segundos, esperar un momento, e entón 768 00:36:09,930 --> 00:36:11,140 prema aquí. 769 00:36:11,140 --> 00:36:15,150 Entón, se nós imos agora aquí á esquerda, de onde é este cara, e bateu o 770 00:36:15,150 --> 00:36:16,662 bandeira verde, 771 00:36:16,662 --> 00:36:30,260 >> [SEA LION SOUND] 772 00:36:30,260 --> 00:36:31,910 >> DAVID Malan: En que punto este queda moi aburrido? 773 00:36:31,910 --> 00:36:33,440 Por iso só vai durar para sempre. 774 00:36:33,440 --> 00:36:36,490 Entón, ás veces, loops infinitos, por así dicir, son deliberadas. 775 00:36:36,490 --> 00:36:41,140 Pero, neste caso, como I preme a barra de espazo, el deixa. 776 00:36:41,140 --> 00:36:42,800 Agora o programa non parou. 777 00:36:42,800 --> 00:36:44,760 El aínda está en execución nestes loops. 778 00:36:44,760 --> 00:36:46,540 Pero se eu tivera a barra de espazo novo - 779 00:36:46,540 --> 00:36:47,851 >> [SEA LION SOUND] 780 00:36:47,851 --> 00:36:49,650 >> DAVID Malan: El vai pegar de onde parou. 781 00:36:49,650 --> 00:36:53,240 Polo tanto, non hai unha forma de facer algo de novo e de novo, pero, que 782 00:36:53,240 --> 00:36:54,920 tempo, só condicional. 783 00:36:54,920 --> 00:36:58,940 Pois ben, xa que estamos nese sentido de facer cousas de novo e de novo, déixeme 784 00:36:58,940 --> 00:37:01,370 entrar noutro exemplo diso aquí. 785 00:37:01,370 --> 00:37:04,370 Este chamaremos contar carneirinhos. 786 00:37:04,370 --> 00:37:05,710 >> E teña en conta o que este cara fai. 787 00:37:05,710 --> 00:37:08,540 En realidade, é un pouco máis parecido ao pseudocódigo xogamos coa 788 00:37:08,540 --> 00:37:12,230 Mércores, no que el define algunhas balcón, pensar é como N de novo, para 789 00:37:12,230 --> 00:37:14,030 cero, sempre que fai a continuación. 790 00:37:14,030 --> 00:37:17,960 Di que o valor do contador a un en segundo lugar, agarda un segundo, e logo 791 00:37:17,960 --> 00:37:19,430 modifica o contador a unha. 792 00:37:19,430 --> 00:37:21,570 E, neste contexto, que só significa increméntase. 793 00:37:21,570 --> 00:37:23,250 Así, el engade un a el. 794 00:37:23,250 --> 00:37:25,830 Polo tanto, esta é literalmente - 795 00:37:25,830 --> 00:37:27,890 non é así o que pensamos como contar ovellas. 796 00:37:27,890 --> 00:37:33,120 É a ovella facendo a conta, para sempre, por riba de cero. 797 00:37:33,120 --> 00:37:35,560 >> Así, podemos facer cousas semellantes alí, loxicamente. 798 00:37:35,560 --> 00:37:37,750 Pero agora imos tratar de limpar algunhas destas cousas. 799 00:37:37,750 --> 00:37:43,440 Déixeme ir adiante agora nunha simple exemplo, onde o noso gato está indo só para 800 00:37:43,440 --> 00:37:44,750 comezar a tossir. 801 00:37:44,750 --> 00:37:48,830 Todo ben, entón aquí temos tose 0 - 802 00:37:48,830 --> 00:37:50,685 científicos da computación comezar conta de 0. 803 00:37:50,685 --> 00:37:53,480 Polo tanto, este gato é só ir a tos por tres veces. 804 00:37:53,480 --> 00:37:54,890 E aquí está como eu apliquei iso. 805 00:37:54,890 --> 00:38:00,130 Cando a bandeira verde é premendo, tose, esperar, tose, espera, tose, agarde. 806 00:38:00,130 --> 00:38:02,470 E eu fixen iso só arrastrando e soltando pezas do puzzle. 807 00:38:02,470 --> 00:38:04,740 Ou se comezar a xogar co scratch, podes ver que realmente pode 808 00:38:04,740 --> 00:38:08,620 pezas duplicar para que poida facer as cousas máis rápido, sen arrastrar 809 00:38:08,620 --> 00:38:10,310 e soltando ad nauseum. 810 00:38:10,310 --> 00:38:12,680 >> Pero non estamos no mellor camiño aquí. 811 00:38:12,680 --> 00:38:15,210 Porque como podo facelo tossir por cuarta vez? 812 00:38:15,210 --> 00:38:16,790 Ben, eu podería clasificar de baixar aquí. 813 00:38:16,790 --> 00:38:19,420 Podería duplicar e logo, pega este aí. 814 00:38:19,420 --> 00:38:21,740 Como podo facelo tossir por quinta vez? 815 00:38:21,740 --> 00:38:23,230 Ben, copia e pega novo. 816 00:38:23,230 --> 00:38:24,210 Ou arrastrar e soltar de novo. 817 00:38:24,210 --> 00:38:26,920 E moi rapidamente, este programa comeza para realmente redundante, 818 00:38:26,920 --> 00:38:28,880 moi longo, pero realmente desinteressante. 819 00:38:28,880 --> 00:38:30,120 Pero hai unha forma de limpar isto. 820 00:38:30,120 --> 00:38:33,680 Cal é o xeito máis obvia para borrar isto? 821 00:38:33,680 --> 00:38:36,280 >> OK, entón nós realmente realmente pode ir fóra e, cando bater o espazo 822 00:38:36,280 --> 00:38:37,070 bar, telo tossir. 823 00:38:37,070 --> 00:38:40,150 Pero se eu queira facer algo repetido lembre que temos 824 00:38:40,150 --> 00:38:41,310 un control constrúe. 825 00:38:41,310 --> 00:38:43,800 Déixeme pasar esta fóra do Así, ir baixo control. 826 00:38:43,800 --> 00:38:47,340 Déixeme só facer unha repetición, dicir, tres veces. 827 00:38:47,340 --> 00:38:49,410 E agora déixeme roubar destas pezas de puzzle. 828 00:38:49,410 --> 00:38:50,980 Déixeme aproveitar iso aquí. 829 00:38:50,980 --> 00:38:52,400 Déixeme xogar estes afastado completamente. 830 00:38:52,400 --> 00:38:55,400 >> E agora, eu teño unha mellor programa deseñado. 831 00:38:55,400 --> 00:38:55,920 Por que? 832 00:38:55,920 --> 00:39:00,540 Se eu queira cambiar o número de veces Este gato tose, todo o que teño para 833 00:39:00,540 --> 00:39:05,640 facer é cambiar unha variable ou un valor, no canto de tres, ou catro, ou 834 00:39:05,640 --> 00:39:06,700 cinco ou seis. 835 00:39:06,700 --> 00:39:09,060 Ou eu podería facer algo de forma condicional, mesmo, co espazo 836 00:39:09,060 --> 00:39:10,320 bar se eu quixese. 837 00:39:10,320 --> 00:39:11,780 >> Polo tanto, este é un principio xeral. 838 00:39:11,780 --> 00:39:14,950 Unha vez que comezar a copiar e pegar o código, se está en risco, ou en 839 00:39:14,950 --> 00:39:18,340 C, está facendo algo mal, o máis probable. 840 00:39:18,340 --> 00:39:21,950 Ou, polo menos, unha vez que superou algúns número razoable de copias e 841 00:39:21,950 --> 00:39:24,610 carpetas, probablemente está facendo algo mal. 842 00:39:24,610 --> 00:39:26,740 >> Pero vostede sabe o que? 843 00:39:26,740 --> 00:39:27,590 Realmente non me gusta diso. 844 00:39:27,590 --> 00:39:28,980 Este non é o deseño máis limpo. 845 00:39:28,980 --> 00:39:32,860 Gustaríame que houbese unha parte do enigma chamado tossir, porque entón eu non faría 846 00:39:32,860 --> 00:39:36,100 Ten que aplicar iso mesmo, a moda antiga, por 847 00:39:36,100 --> 00:39:38,220 tendo dicir, e esperar - 848 00:39:38,220 --> 00:39:40,320 e se eles eran só unha peza do puzzle tose. 849 00:39:40,320 --> 00:39:41,330 >> Ben, podo realmente facer iso. 850 00:39:41,330 --> 00:39:45,010 Déixeme ir con máis bloques, prema Fai un bloque, e agora eu teño ese 851 00:39:45,010 --> 00:39:45,610 fiestra aquí. 852 00:39:45,610 --> 00:39:47,540 Vou chamar esa cousa de tose. 853 00:39:47,540 --> 00:39:49,400 Eu estou indo a ir adiante e prema en Aceptar. 854 00:39:49,400 --> 00:39:53,150 E agora, o aviso previo, eu recibín unha nova partida peza que está curvada na parte superior. 855 00:39:53,150 --> 00:39:56,590 E o que eu vou facer con iso, eu son vai roubar estes bloques. 856 00:39:56,590 --> 00:39:57,800 Vou poñer-los aquí. 857 00:39:57,800 --> 00:40:00,490 >> E agora, con estas tres partes, eu teño aplicado o que vou chamar a un 858 00:40:00,490 --> 00:40:03,530 función ou un procedemento, ou algúns dos pode coñece-lo como un método. 859 00:40:03,530 --> 00:40:05,050 Pequenas diferenzas entre as palabras. 860 00:40:05,050 --> 00:40:06,950 Pero, polo de agora, imos só chamar iso dunha función. 861 00:40:06,950 --> 00:40:08,750 Esta é só unha nova peza do puzzle. 862 00:40:08,750 --> 00:40:11,000 Agora que é aplicado como esta. 863 00:40:11,000 --> 00:40:15,170 >> Pero teña en conta que cero nos deu un representación física de que toda 864 00:40:15,170 --> 00:40:16,570 bloquear aquí. 865 00:40:16,570 --> 00:40:21,930 Entón, agora, podo simplemente arrastrar esta aquí, dicir, repita tres veces, e 866 00:40:21,930 --> 00:40:26,420 o que vai pasar agora, cando eu xogar Nese guión, é só un programa 867 00:40:26,420 --> 00:40:27,500 está en execución ao mesmo tempo. 868 00:40:27,500 --> 00:40:29,880 Hai só un cando bandeira verde premendo. 869 00:40:29,880 --> 00:40:34,010 Pero este bloque vermello chamado tose é efectivamente dicindo cero, cada 870 00:40:34,010 --> 00:40:38,160 vez que ver que parte do enigma, de feito realizar estes pasos que 871 00:40:38,160 --> 00:40:40,420 pasar para aplicar manualmente. 872 00:40:40,420 --> 00:40:41,410 >> Entón, este é o tipo de ordenado. 873 00:40:41,410 --> 00:40:44,650 Pero agora, creo que eu decidir, eu non quero ese gato só a tossir. 874 00:40:44,650 --> 00:40:46,660 Eu quero que sexa capaz desprezable tamén. 875 00:40:46,660 --> 00:40:48,905 Ben, como poderiamos ir sobre implantación espirro? 876 00:40:48,905 --> 00:40:51,310 Ben, eu podería moi ben facer o mesmo. 877 00:40:51,310 --> 00:40:52,690 Podería facer outro bloque. 878 00:40:52,690 --> 00:40:55,940 Podería chamar este espirro, prema en Aceptar. 879 00:40:55,940 --> 00:40:59,250 >> Entón, aquí eu podería realmente ter, déixeme duplicar este - 880 00:40:59,250 --> 00:41:02,850 e alí é onde ten que sentir como probablemente non está facendo algo en 881 00:41:02,850 --> 00:41:03,780 o mellor camiño. 882 00:41:03,780 --> 00:41:06,670 Podería dicir algo así como: achoo, por un segundo. 883 00:41:06,670 --> 00:41:07,440 Espera un segundo. 884 00:41:07,440 --> 00:41:08,715 Agora eu teño un novo bloque chamado espirro. 885 00:41:08,715 --> 00:41:10,210 E, de feito, non é. 886 00:41:10,210 --> 00:41:14,010 >> Pero iso, tamén, debe comezar a sentir - talvez non a primeira semana de clase, pero 887 00:41:14,010 --> 00:41:15,730 polo segundo - só un pouco redundante. 888 00:41:15,730 --> 00:41:17,800 Claramente, hai algunha redundancia aquí. 889 00:41:17,800 --> 00:41:22,090 Entón deixe-me propor, no seu lugar, que refinar esta definición como segue. 890 00:41:22,090 --> 00:41:24,820 >> Deixe-me ir ao meu menú Arquivo. 891 00:41:24,820 --> 00:41:26,090 Eu non estou indo a gardar esta versión. 892 00:41:26,090 --> 00:41:29,080 Eu estou indo a ir en un dos meus arquivos Premade aquí. 893 00:41:29,080 --> 00:41:31,190 E eu estou indo a ir adiante e abrir tose 2. 894 00:41:31,190 --> 00:41:32,220 Berros que era tose 2. 895 00:41:32,220 --> 00:41:36,900 Déixeme ir adiante e abrir tose 3, que é este directorio de orixe. 896 00:41:36,900 --> 00:41:42,450 Tos 3 e teña en conta - Oh, eu dixen a historia na orde incorrecto. 897 00:41:42,450 --> 00:41:45,030 Déixeme recuperar desta historia. 898 00:41:45,030 --> 00:41:48,990 >> A historia que eu quería che dicir remata con tose 4 - 899 00:41:48,990 --> 00:41:50,270 aí está. 900 00:41:50,270 --> 00:41:54,380 E que se eu, no seu lugar, establecer a maior parte do enigma chamado 901 00:41:54,380 --> 00:41:57,250 establecer, diga a palabra n veces. 902 00:41:57,250 --> 00:41:59,930 Espirro é só aparentemente en perigo, achoo. 903 00:41:59,930 --> 00:42:01,680 Así, expresalo como unha palabra, só porque esa é a 904 00:42:01,680 --> 00:42:02,750 restrición do programa. 905 00:42:02,750 --> 00:42:07,860 E a tose é [tose], pero a tose, C-O-L-G-H. Entón, iso é só dous 906 00:42:07,860 --> 00:42:10,820 palabras distintas facendo, esencialmente, o mesmo. 907 00:42:10,820 --> 00:42:12,820 >> Entón, podo realmente facer unha novo bloque como esta. 908 00:42:12,820 --> 00:42:14,220 Eu non uso esta opción de menú anterior. 909 00:42:14,220 --> 00:42:16,960 Pero cando clic en Crear Block, pode escoller algunhas opcións. 910 00:42:16,960 --> 00:42:20,900 E pode dicir que este bloque efectivamente leva algúns insumos, se non, 911 00:42:20,900 --> 00:42:24,710 coñecido como argumentos ou parámetros, de xeito que se pode modificar o comportamento de 912 00:42:24,710 --> 00:42:25,520 seu bloque. 913 00:42:25,520 --> 00:42:28,780 >> Entón o que eu fixen hai pouco se Liguei para este bloque Say. 914 00:42:28,780 --> 00:42:30,880 E entón eu dixo, hai que unha entrada de cadea. 915 00:42:30,880 --> 00:42:32,810 E agora entender, por defecto, di unha corda. 916 00:42:32,810 --> 00:42:35,440 A corda é só unha palabra, ou un frase, para os nosos propósitos. 917 00:42:35,440 --> 00:42:37,810 Pero eu só vou poñer algúns texto de espazo reservado alí, así como nun 918 00:42:37,810 --> 00:42:40,620 sitio, cando ve nome de usuario, ou contrasinal e, a continuación, el desaparece cando 919 00:42:40,620 --> 00:42:41,550 comeza a escribir. 920 00:42:41,550 --> 00:42:42,720 Isto é todo o que existe. 921 00:42:42,720 --> 00:42:44,590 >> E agora vou engadir unha entrada de número. 922 00:42:44,590 --> 00:42:47,180 E eu vou chamar a este n - pero iso é moi arbitraria. 923 00:42:47,180 --> 00:42:49,510 E despois é só unha etiqueta, só para facer este bloque algo máis de auto- 924 00:42:49,510 --> 00:42:50,570 explicativo - 925 00:42:50,570 --> 00:42:53,010 veces, é o que eu fixen. 926 00:42:53,010 --> 00:42:56,540 E o resultado final é que eu teño un bloque que se parece con isto. 927 00:42:56,540 --> 00:42:58,880 >> E agora entender, está a usar un bloque de repetición. 928 00:42:58,880 --> 00:43:03,480 Pero en vez de difícil codificación tres, eu son arrastrando e soltando n alí, entón eu 929 00:43:03,480 --> 00:43:05,530 pode parametrizar a función. 930 00:43:05,530 --> 00:43:08,590 Eu podo facer esta función facer algo un número diferente de veces baseados en 931 00:43:08,590 --> 00:43:09,410 dese valor. 932 00:43:09,410 --> 00:43:14,270 >> E teña en conta, por exemplo, que é o que eu fixen aquí, se eu arrastrar palabra, podo dicir que non é un 933 00:43:14,270 --> 00:43:17,860 palabra codificado, pero o que é pasada para un segundo. 934 00:43:17,860 --> 00:43:20,200 Mentres tanto, como fago para re-aplicar tossir? 935 00:43:20,200 --> 00:43:26,980 Eu en vez establecer a tose como dicindo tose n veces. 936 00:43:26,980 --> 00:43:30,480 >> Así, en breve, estou pasando por iso rápido, pero a idea básica é así 937 00:43:30,480 --> 00:43:32,750 como comeza a ver no seu programa que, agarde un minuto, eu fixen 938 00:43:32,750 --> 00:43:36,610 algo moi parecido a isto antes, podo Fatorar algúns común 939 00:43:36,610 --> 00:43:37,090 función? 940 00:43:37,090 --> 00:43:41,090 Podo descompoñer o que estou facendo nalgunhas ideas básicas? 941 00:43:41,090 --> 00:43:42,070 Isto é o que estamos facendo aquí. 942 00:43:42,070 --> 00:43:44,830 E eu teño apiñados estas cousas, visualmente, encima da outra 943 00:43:44,830 --> 00:43:47,710 porque iso é proba de que idea comezando co binario, indo a ASCII 944 00:43:47,710 --> 00:43:51,530 facer programas gráficos, tipo de capas ideas cada vez máis complexas en 945 00:43:51,530 --> 00:43:52,570 parte superior da outra. 946 00:43:52,570 --> 00:43:53,730 >> A mesma idea aquí. 947 00:43:53,730 --> 00:43:56,870 Comecei de cero, aplicando tose, tose, así que entender é 948 00:43:56,870 --> 00:43:58,540 realmente só dicir algo. 949 00:43:58,540 --> 00:44:01,630 Entón deixe-me no canto aplicar o noción de dicir algo. 950 00:44:01,630 --> 00:44:05,200 E encima diso, podo aplicar achoo, ou tose? 951 00:44:05,200 --> 00:44:07,990 E poderíamos facer máis, tales variantes aínda. 952 00:44:07,990 --> 00:44:10,400 >> Así, a partir deste principio básico, podemos empezar a facer 953 00:44:10,400 --> 00:44:12,180 cada vez máis complexos programas. 954 00:44:12,180 --> 00:44:14,100 Déixeme abrir un agasallo. 955 00:44:14,100 --> 00:44:18,020 Podemos realmente ter varios sprites interactuar na pantalla ao mesmo tempo. 956 00:44:18,020 --> 00:44:23,470 Se eu vou para o meu directorio de orixe e incorporarse un chamado Threads, lembre que unha 957 00:44:23,470 --> 00:44:26,920 liña é realmente moi a capacidade de dous scripts para executar lado a 958 00:44:26,920 --> 00:44:28,350 banda, á vez. 959 00:44:28,350 --> 00:44:34,490 >> Teña en conta o momento, teñen ambos un Sprite de aves e un Sprite do gato, sendo que ambos teñen 960 00:44:34,490 --> 00:44:35,270 os seus propios scripts. 961 00:44:35,270 --> 00:44:37,690 Así, o aviso previo, cando clic no gato, eu recibín estes scripts. 962 00:44:37,690 --> 00:44:39,830 Cando premo sobre a ligazón paxaro, Eu recibín estes scripts. 963 00:44:39,830 --> 00:44:42,070 Así, cada un destes faces ten os seus propios programas. 964 00:44:42,070 --> 00:44:46,680 Cando premo agora a bandeira verde, teña en conta que o que este programa fai é 965 00:44:46,680 --> 00:44:54,090 teño o gato, incrible lentamente, perseguir o paxaro. 966 00:44:54,090 --> 00:44:57,120 Pero o gato ten a vantaxe de ter foi programado de tal xeito 967 00:44:57,120 --> 00:45:00,540 que non importa onde o paxaro é, o gato vai cara a el. 968 00:45:00,540 --> 00:45:02,150 >> Podemos xogar este xogo moito máis rápido. 969 00:45:02,150 --> 00:45:07,750 Entón, se eu estou no gato, entender que eu son usar, digamos mover unha pasos. 970 00:45:07,750 --> 00:45:11,680 Imos telo moverse en cinco etapas cada vez, a cinco puntos de unha vez. 971 00:45:11,680 --> 00:45:13,580 Déixeme clic en xogar. 972 00:45:13,580 --> 00:45:14,490 >> [Roar LION'S] 973 00:45:14,490 --> 00:45:17,170 >> DAVID Malan: Todo ben, agora podemos realmente dar o gato a vantaxe. 974 00:45:17,170 --> 00:45:18,600 10 pasos de cada vez. 975 00:45:18,600 --> 00:45:20,120 >> [Roar LION'S] 976 00:45:20,120 --> 00:45:22,770 >> DAVID Malan: Todo ben, entón moi rápido, faise unha pequena vantaxe 977 00:45:22,770 --> 00:45:23,280 ao gato. 978 00:45:23,280 --> 00:45:25,310 Pero eu vou acenar coa man no algúns dos detalles. 979 00:45:25,310 --> 00:45:28,240 Pero a razón que ese camiño é comezando un pouco diferente de cada vez 980 00:45:28,240 --> 00:45:29,700 é que eu estou facendo un pouco de aleatoriedade. 981 00:45:29,700 --> 00:45:33,700 En realidade, estou apuntando o gato nun dirección diferente dependendo de onde eu 982 00:45:33,700 --> 00:45:38,710 quero que comece a fin de que cada vez o xogo, ou a animación, é un 983 00:45:38,710 --> 00:45:39,760 pouco diferente. 984 00:45:39,760 --> 00:45:41,950 >> Agora, deixe-me presentar un outra construción aquí. 985 00:45:41,950 --> 00:45:43,860 Polo tanto, neste caso, tivemos funcións. 986 00:45:43,860 --> 00:45:46,950 Hai tamén vai ser unha peza de puzzle coñecida como unha matriz ou unha lista, 987 00:45:46,950 --> 00:45:50,980 que permite almacenar varios valores dentro dunha variable. 988 00:45:50,980 --> 00:45:53,410 Vimos threads, e agora hai Events. 989 00:45:53,410 --> 00:45:56,330 >> Entón aquí está un evento mediante eses dúas caras aquí. 990 00:45:56,330 --> 00:46:02,490 E se eu abrir o ficheiro chamado Eventos dende exemplos de hoxe, imos 991 00:46:02,490 --> 00:46:06,940 ver un programa que parece algo como isto. 992 00:46:06,940 --> 00:46:09,630 E agora entende este cara - 993 00:46:09,630 --> 00:46:11,620 para entender que eu teño o azul Muppet premendo - 994 00:46:11,620 --> 00:46:12,990 el só fai o seguinte. 995 00:46:12,990 --> 00:46:15,540 El non ten un deses verdes pezas do puzzle bandeira. 996 00:46:15,540 --> 00:46:18,620 Ten un cando recibir evento - 997 00:46:18,620 --> 00:46:19,970 entón algunha palabra arbitraria. 998 00:46:19,970 --> 00:46:21,590 Eu escriba o evento alí - 999 00:46:21,590 --> 00:46:23,740 que vai dicir, Polo, durante dous segundos. 1000 00:46:23,740 --> 00:46:25,800 >> Así, aqueles de vostedes que está familiarizado con este xogo pode saber 1001 00:46:25,800 --> 00:46:26,460 onde isto vai dar. 1002 00:46:26,460 --> 00:46:29,800 Se eu agora prema no Muppet laranxa, o programa fai iso. 1003 00:46:29,800 --> 00:46:35,020 Para sempre, se a barra de espazo do teclado suprimida, que vai dicir, Marco, 1004 00:46:35,020 --> 00:46:36,580 por dous segundos en pantalla. 1005 00:46:36,580 --> 00:46:39,590 Pero tamén vai usar isto máis sofisticado bloquear coñecido como broadcast. 1006 00:46:39,590 --> 00:46:42,270 Vai transmitir Cita pecha comiñas, "evento". 1007 00:46:42,270 --> 00:46:47,540 >> Mentres tanto, a cara azul, aviso, é escoitando entre comiñas, "evento". 1008 00:46:47,540 --> 00:46:50,760 Entón, dalgunha forma, agora, podemos ter dous sprites interactuar. 1009 00:46:50,760 --> 00:46:53,790 E cando chegamos á programación web, ao final do prazo, do mesmo xeito que vai 1010 00:46:53,790 --> 00:46:58,320 ser vantaxoso ter a súa web facer algo en resposta a, por 1011 00:46:58,320 --> 00:47:00,130 exemplo, un clic do teclado. 1012 00:47:00,130 --> 00:47:02,120 >> Entón deixe-me ir adiante e preme a barra de espazo. 1013 00:47:02,120 --> 00:47:04,020 Laranxa cara di Marco. 1014 00:47:04,020 --> 00:47:05,840 Azul cara di Polo. 1015 00:47:05,840 --> 00:47:10,780 Se eu fai cara de novo laranxa di Marco, azul cara di polo. 1016 00:47:10,780 --> 00:47:14,130 Entón, imos dar un paso adiante. 1017 00:47:14,130 --> 00:47:18,790 Esta vez, iremos probablemente só uns minutos aquí. 1018 00:47:18,790 --> 00:47:19,904 Será que temos - 1019 00:47:19,904 --> 00:47:22,380 lámpada de mesa, imos alí abaixo. 1020 00:47:22,380 --> 00:47:24,500 Está certo ao final. 1021 00:47:24,500 --> 00:47:25,740 OK, pode tanto vir cara arriba. 1022 00:47:25,740 --> 00:47:26,990 Temos luminarias para todos. 1023 00:47:26,990 --> 00:47:28,360 Imos. 1024 00:47:28,360 --> 00:47:30,090 Non sei se podemos manter esta mordaza ridículo up 1025 00:47:30,090 --> 00:47:32,035 todo o tempo, con todo. 1026 00:47:32,035 --> 00:47:33,530 Todo ben, imos alí abaixo. 1027 00:47:33,530 --> 00:47:40,260 >> E nese medio tempo, temos a seguindo exemplos para puxar arriba, só para 1028 00:47:40,260 --> 00:47:45,370 acelerar as cousas agora, de tal forma que ten unha manifestación doutra 1029 00:47:45,370 --> 00:47:48,360 predecesor de vostedes usando o mesmos bloques básicos de construción. 1030 00:47:48,360 --> 00:47:48,975 Cal é o seu nome? 1031 00:47:48,975 --> 00:47:49,240 >> JOHN: John. 1032 00:47:49,240 --> 00:47:49,770 >> DAVID Malan: John. 1033 00:47:49,770 --> 00:47:50,400 Bo para min ti. 1034 00:47:50,400 --> 00:47:50,650 E? 1035 00:47:50,650 --> 00:47:51,250 >> SETZ: Setz. 1036 00:47:51,250 --> 00:47:53,130 >> DAVID Malan: Setz, bo para min. 1037 00:47:53,130 --> 00:47:54,820 John, se quere vir en primeiro lugar, este é un vello 1038 00:47:54,820 --> 00:47:55,910 xogo de escola chamado Frogger. 1039 00:47:55,910 --> 00:47:57,530 Pode utilizar o teclado para iso tamén. 1040 00:47:57,530 --> 00:48:02,425 E o obxectivo é atravesar na rúa e auga. 1041 00:48:02,425 --> 00:48:12,700 >> [Frogger MÚSICA E reproduce o son] 1042 00:48:12,700 --> 00:48:14,970 >> DAVID Malan: Sinto moito, non lámpada de mesa para ti hoxe. 1043 00:48:14,970 --> 00:48:19,110 Todo ben, Setz, non é quere vir enriba? 1044 00:48:19,110 --> 00:48:20,890 Todo ben, imos facelo de novo. 1045 00:48:20,890 --> 00:48:21,430 >> SETZ: Será que usa as frechas? 1046 00:48:21,430 --> 00:48:22,360 >> DAVID Malan: Só as teclas de frecha. 1047 00:48:22,360 --> 00:48:23,624 Arriba, abaixo, esquerda, dereita. 1048 00:48:23,624 --> 00:48:35,700 >> [Frogger MÚSICA E reproduce o son] 1049 00:48:35,700 --> 00:48:37,880 >> DAVID Malan: Imos chamalos consolo premios hoxe, 1050 00:48:37,880 --> 00:48:38,950 entón, moi ben feito. 1051 00:48:38,950 --> 00:48:40,690 Aquí, para ambos, John e Setz. 1052 00:48:40,690 --> 00:48:41,940 Parabéns, todo ben. 1053 00:48:41,940 --> 00:48:46,720 1054 00:48:46,720 --> 00:48:50,620 Entón, de novo, como este xogo ten, pensar sobre o que está pasando? 1055 00:48:50,620 --> 00:48:52,060 >> Un deles, hai claramente unha gran cantidade de movemento. 1056 00:48:52,060 --> 00:48:55,220 Pero vimos como, co gato eo paxaro exemplo, como pode facer o 1057 00:48:55,220 --> 00:48:58,350 ilusión de movemento movendo só algúns número de píxeles e outra vez. 1058 00:48:58,350 --> 00:49:00,280 E se ten un bloque para sempre, podería ter estes 1059 00:49:00,280 --> 00:49:02,120 coches facendo isto para sempre. 1060 00:49:02,120 --> 00:49:03,720 Temos a capacidade de Ten algunha aleatoriedade. 1061 00:49:03,720 --> 00:49:06,310 Polo tanto, este xogo non ten que ser exactamente o mesmo á vez. 1062 00:49:06,310 --> 00:49:09,940 Estes rexistros, os coches, pode comezar en tempos lixeiramente diferentes, para que o 1063 00:49:09,940 --> 00:49:12,690 xogo en si é máis interesante con cada xogo. 1064 00:49:12,690 --> 00:49:15,320 >> E mentres tanto, vimos a posibilidade para escoitar a barra de espazo. 1065 00:49:15,320 --> 00:49:18,830 Pero é evidente que, en risco, pode tamén escoitar para arriba, abaixo, esquerda, dereita, e 1066 00:49:18,830 --> 00:49:20,760 Realmente calquera tecla no teclado. 1067 00:49:20,760 --> 00:49:22,200 E tamén pode facer algunhas outras cousas. 1068 00:49:22,200 --> 00:49:24,660 Deixe-me ir adiante e atrás para a versión web. 1069 00:49:24,660 --> 00:49:30,280 >> Déixeme ir á nosa colección de exemplos aquí. 1070 00:49:30,280 --> 00:49:36,120 E no meu estudio, o vídeo que é, esencialmente, un cartafol en 1071 00:49:36,120 --> 00:49:37,780 scratch.mit.edu. 1072 00:49:37,780 --> 00:49:39,710 Temos as versións web dos todos estes proxectos. 1073 00:49:39,710 --> 00:49:42,530 E imos ver se podo pegar meu ordenador para cooperar aquí. 1074 00:49:42,530 --> 00:49:47,180 É escrito por un dos nosos amigos no MIT, chamado Move o Butterfly. 1075 00:49:47,180 --> 00:49:50,250 >> E xa que este se abre, este é vai realmente usar máis de 1076 00:49:50,250 --> 00:49:51,430 hardware do meu ordenador. 1077 00:49:51,430 --> 00:49:53,325 Arañazos pasa a ser aplicado con Flash. 1078 00:49:53,325 --> 00:49:56,250 Flash pode falar coa súa webcam, se ten un. 1079 00:49:56,250 --> 00:50:00,210 Entón, se eu ir adiante e pantalla completa este aquí, prema na bandeira verde, o aviso 1080 00:50:00,210 --> 00:50:02,530 que a mensaxe de seguridade do flash está dicindo, quere 1081 00:50:02,530 --> 00:50:04,210 permitir utilizar miña webcam? 1082 00:50:04,210 --> 00:50:05,510 >> Normalmente, ten que probablemente diría Denegar. 1083 00:50:05,510 --> 00:50:07,180 Pero neste caso, imos dicir permitir. 1084 00:50:07,180 --> 00:50:10,430 Entón eu vou dicir Chrome para que este tamén. 1085 00:50:10,430 --> 00:50:15,010 E agora, en só un momento, me ver, si, me. 1086 00:50:15,010 --> 00:50:18,154 E se a miña man sobe - 1087 00:50:18,154 --> 00:50:20,390 Teño que cambiar a miña non cabeza á vez. 1088 00:50:20,390 --> 00:50:21,740 Hai tamén unha reflexión na pantalla. 1089 00:50:21,740 --> 00:50:23,480 Imos, alí imos nós - 1090 00:50:23,480 --> 00:50:27,616 podes movela na pantalla, xa que hai tamén pezas de puzzle - Oh, vostede 1091 00:50:27,616 --> 00:50:31,640 sabe o que é, é porque tamén ver a pantalla do proxector detrás de min. 1092 00:50:31,640 --> 00:50:33,870 Entón temos un pouco de infinito algo suceder alí. 1093 00:50:33,870 --> 00:50:36,470 >> Todo ben, entón eu vou xogar aquí. 1094 00:50:36,470 --> 00:50:37,220 Alí imos nós. 1095 00:50:37,220 --> 00:50:41,310 Polo tanto, hai tamén unha peza do puzzle que di que, cando ve o movemento baixo 1096 00:50:41,310 --> 00:50:45,470 un dos sprites, podes telo ir arriba, abaixo, esquerda, dereita ou afíns. 1097 00:50:45,470 --> 00:50:48,950 Entón temos un pouco de realidade virtual pasando aquí, ben, todo dentro do 1098 00:50:48,950 --> 00:50:52,570 confíns do meu navegador, só aquí, a usar miña webcam. 1099 00:50:52,570 --> 00:50:53,980 Entón, cal é, a continuación, no horizonte. 1100 00:50:53,980 --> 00:50:58,350 O primeiro conxunto de problemas, como vai ver, ou o sitio vai estar en liña máis tarde 1101 00:50:58,350 --> 00:51:01,100 onte á noite na cs50.net, é moi moi será aberta. 1102 00:51:01,100 --> 00:51:04,410 E aplicar un proxecto Scratch de interese para vostede, un xogo, unha 1103 00:51:04,410 --> 00:51:08,350 interacción, algo artístico, e Reto-se a utilizar calquera número 1104 00:51:08,350 --> 00:51:09,660 destas pezas de puzzle. 1105 00:51:09,660 --> 00:51:11,580 E iso pode ser interactivo deste xeito. 1106 00:51:11,580 --> 00:51:15,470 Ou pode ser algo máis deliberadamente feito para contar unha historia. 1107 00:51:15,470 --> 00:51:19,200 >> E, de feito, que é onde imos rematar fóra hoxe, cun exemplo final. 1108 00:51:19,200 --> 00:51:21,290 Deixe-me ir en perigo no lugar. 1109 00:51:21,290 --> 00:51:25,300 Déixeme ir adiante e abrir iso e xogar un último programa escrito por un 1110 00:51:25,300 --> 00:51:29,795 dos seus antecesores, é dicir, que aquí. 1111 00:51:29,795 --> 00:51:32,960 1112 00:51:32,960 --> 00:51:35,938 Bo, aumentar o volume para un regalo. 1113 00:51:35,938 --> 00:52:53,770 >> [Música tocando] 1114 00:52:53,770 --> 00:52:57,255 >> Narrador: Na seguinte CS50, David convida un voluntario no escenario. 1115 00:52:57,255 --> 00:52:58,636 >> DAVID Malan: Para esta demostración, imos ter un voluntario. 1116 00:52:58,636 --> 00:53:01,050 Quere vir abaixo? 1117 00:53:01,050 --> 00:53:02,300 Cal é o seu nome? 1118 00:53:02,300 --> 00:53:05,320 1119 00:53:05,320 --> 00:53:06,570 Seguindo adiante. 1120 00:53:06,570 --> 00:53:08,394