ALTAVEU: Sóc [inaudible]. I jo sóc un sènior en Leverett House. Jo estudi ciències de la computació, i jo sóc un TF per CS50. En el seu primer any, jo ni tan sols tinc un ordinador portàtil o un telèfon intel · ligent. No tenia experiència en programació. CS50 va ser el curs més memorable que Que vaig prendre a Harvard perquè era una lluita, però era una realitat lluita divertir al mateix temps. I he fet un munt d'increïbles i permanent amics, i he après molt de veritat habilitats aplicables. Estic tan content que jo no deixo que el meu falta de fons sigui una excusa per a mi No prengui CS50. Sóc [inaudible]. Sóc un gran en Leverett Casa, classe de 2014. I vaig prendre CS50. DAVID Malan: Això és CS50. Aquest és el final de la setmana zero. I recordar on vam començar l'última vegada, era amb aquests llums, que eren tan popular que ens vam anar i comprat una mica més avui. Així que crec que això serà el nostre aquest any - làmpades d'escriptori, si vostè ve per dalt de l'escenari, almenys fins que s'acabi. No obstant això, hem utilitzat aquests revocatori, per introduir els fonaments de la representació de les dades. Necessitàvem manera de començar que representa informació dins d'un ordinador. I la forma més senzilla de fer-ho era amb un ingredient, l'electricitat. I la cosa més simple que pots fer amb electricitat és engegar i fora. Deixa que el flux d'electrons o no. I l'ús d'aquests dos estats bàsics, davant i, o fals i vertader, o zero i un, comencem a veure que podíem construir amunt, en aquest cas, amb la llum bulbs, més números que acaba de zero i un. Comptem tan alt com set, per exemple, l'última vegada. Però tot el que hem de fer és seguir tirant més i més bombetes en aquest problema i, de veritat, podem representar qualsevol nombre que ens podria desitjar. Bé, transitioned ràpidament llavors Dimecres a aquest byte de voluntaris. 8 bits és el que generalment anomenem un byte, així que aquí teníem vuit voluntaris dimecres que eren col · lectivament que representa vuit bits. I quan les seves mans van ser dalt, que eren un. I quan les seves mans estaven baix, hi havia un zero. I vam haver aquestes persones plantejaran a quina etapa? Què som capaços de fer amb aquesta seqüència de bits? Per crear un alfabet. Hem estat capaços de construir a la part superior d'aquest lliçó anterior aprendre i realitat començar a fer més interessant informació que és almenys més familiar per a nosaltres els éssers humans. I això serà un recurrent tema a través de 50, sinó també equip la ciència en general, la idea de capes, on, al final de l' dia, si realment va iniciar la bàsic amb un ordinador, sí, és zeros i uns. I sota d'això és només l'electricitat. Però molt aviat comencem a tenir els detalls de baix nivell per fet i començar a la capa a la part superior de la passada treballar fet que, en última instància, pels Al final del semestre i, en definitiva, més generalment com els informàtics i els programadors, poden fer alguna cosa realment coses de gran abast mitjançant l'aprofitament de treball que nosaltres mateixos hem fet i també de peu sobre les espatlles dels altres. Ara ràpidament transitioned dimecres des de tot just la necessitat representar la informació que vulgui fer alguna cosa amb ell. Llavors, què ens definim com un algoritme? Una sèrie d'instruccions. Així que és una sèrie d'instruccions, un nombre de passos que vostè, un ésser humà, o un ordinador, més típicament, ho faria executar una després de l'altra per tal per aconseguir algun objectiu. I teníem alguns objectius última vegada, una de les quals va ser la de comptar persones a l'habitació. I un altre exemple era trobar Mike Smith en una guia telefònica. Així que vostè pot recordar que vaig trencar un telèfon llibre en un mitjà per a aquesta finalitat fins trobar Mike Smith. El propòsit que visual era de demostra, una vegada més, que estàvem literalment, llagrimeig aquest problema en un mitjà, en un medi, al mig, i molt passant ràpidament de com 1.000 pàgines a una sola pàgina. Aquells de vostès que es va perdre en aquest Dimecres, vaig pensar que havíem reproduir algunes imatges del que et vas perdre. Anem a fer una ullada. [REPRODUIR VIDEO] -Això és. 1500 pàgines, línia neta i bonica, llàgrima legítim. [FI REPRODUCCIÓ DE VÍDEO] DAVID Malan: Així que era dimecres. Ens transició, però, el dimecres ja en voler representar algorismes d'alguna manera una mica estàndard, no només descriure verbalment, però tractant d'expressar per escrit o en una pantalla d'ordinador, així que vam poder comencen a millorar, i modificar , I, amb el temps, en realitat analitzar què tan correcta o la rapidesa amb què eren. Així que hem introduït aquesta noció de pseudocodi, que, en termes simples, és el que? Acceptar, paraules. Anem a anar una mica més profund que això. Anglès, és clar, no són més que amb quina finalitat? Les paraules amb què crear o per representar algorismes. Així que no hi ha una llengua coneguda com pseudocodi al món. És només que, en anglès o qualsevol que sigui la llengua parlada és, l'ús una mena de notació superficial per transmetre una idea de manera molt succinta. Però veurem que, sens dubte, amb un Pseudocodi Anglès, i resulta la majoria dels mateixos llenguatges de programació són derivat de la mateixa Anglès, trobarem que hi ha una norma formes de representar i pseudocodi També el codi de programació. Així com vostè comença a veure fins i tot el més simple exemples en l'actualitat, es donen compte aquests mateixos patrons es repetiran la setmana que ve. Així pseudocodi era una mena del llenguatge semblant un llenguatge de programació. I el primer exemple que vam veure visualment escrit era aquest. Va ser només un programa de tres passos, el objectiu de la qual era per comptar el nombre de persones en una habitació de la residència d' el vídeo el dimecres. Però hi va haver alguns aspectes interessants d'aquest programa més simple. I això serà temes recurrents. Així que per a aquells que no estan familiaritzats amb això, un, que va introduir una variable. I probablement tots en aquesta sala és familiaritzat amb una variable en el context de l'àlgebra. Però aquí a la programació, les variables són, un, pot haver anomenat qualsevol cosa que vulguem. Hem estat utilitzant n com un comptador. Però podríem utilitzar el comptador de paraules, o, com es veurà, la majoria de qualsevol frase que que pot agradar tant de temps, ja que és descriptiva, però no deixa de ser un recipient d'emmagatzematge. És un tros de memòria, un nombre de bits, i que varia segons l'equip, com molts bits Cal compondre aquesta variable. Però podem posar els valors en ella. Fins ara, només hem posat els números. Però podem posar paraules reals. Podem posar paràgrafs. Podem posar imatges - res, en realitat, es pot representar amb zeros i uns, que poden posar en aquesta noció de nivell superior d'una variable. Així que bastant senzill allà. I aquesta és la línia un. Però molt ràpidament canviem de línia un per fer realitat alguna cosa amb aquesta variable. I en la línia de tres, actualitzem N. Nosaltres incrementat N. I podríem escriure això qualsevol nombre de maneres. Però potser el més obvi és només per dir, ajust N igual a qualsevol N és més 1. Així que aquest va ser el nostre increment. Mentrestant, hi va haver un bucle. I això, també, és probablement bastant intuïtiu. Un bucle és només alguna cosa en un programa que ocorre una vegada i una altra, alguns tipus de cicle. I aquesta frase clau aquí, per a cada un, és en realitat molt comú en la major part llenguatges de programació, incloent els veurem en el curs. Cada vegada que vegi la paraula, es típicament transmet la idea que un bucle, una mica cíclic, està a punt de succeir. Però val la pena assenyalar una un altre detall sintàctic. El fet que la tercera línia es realitat sagnia per haver colpejat la Barra espaiadora diverses vegades és deliberat. A causa convenció humana és tal que, quan estàs fent alguna cosa nova i una altra vegada, en un bucle, com iniciat en la línia dos, sagnia a tot el que pertanyia a aquest bucle només per deixar clar que és la línia de tres i no, per exemple, línia de quatre o cinc, si hi havia línies per o cinc, que són part que els bucles. Així que aquest simple osca transmet la idea bàsica. Així que hem aplicat aquest algoritme, ara, a uns pocs exemples. I això, també, exemple senzill en el món real. Però serà representativa de com va a anar sobre les proves propis programes cada vegada més complexos. Intenta una sèrie d'escenaris, alguns representants de les entrades, i veure si obtenir els resultats desitjats. Així que aquest exemple tenia dues persones assegut a l'habitació de la residència. A l'esquerra es troba la mateixa pseudocodi. I aquesta és una captura de pantalla de la mateixa últim pas de l'aplicació d'aquest algorisme per les entrades, on es Hi havia dues persones a l'habitació i, recordar, a mesura que avancem a través de línies un, i dos, i tres, i dos -tres i fet - pel final d'aquest algorisme, vam tenir fet explicat els dos tipus que són a l'habitació. Així que intentem un altre exemple. I vam dir que si hi ha zero persones a l'habitació? És aquest codi segueix sent correcta? I així va ser. El que passa és que la línia dos i, per tant, la línia de tres o no va a executar. Ells no van a succeir en absolut perquè simplement no és aplicable si hi ha zero persones a l'habitació. Però no és un gran problema. Línia 1 N inicialitza a zero, per la qual tot i que una sola línia d'aquest programa en realitat acaba sent útil, encara produeix la resposta correcta, com indicat pel taronja zero a la part inferior. Però llavors vam decidir que era una mena d'algorisme d'estúpid. Era bastant lent. Sens dubte, puc fer dues, quatre, sis, vuit, 10, quan recompte de persones en una habitació. Així que ajustat l'algorisme, el pseudocodi, per dir, ja en la segona línia, per a cada parell de persones a l'habitació, procedir a la, en línia de tres, l'increment a per dos en cada iteració. Així que han treballat per aquest parell de persones a l'habitació. Però llavors, si comences a pensar en això, i no es necessita molt temps per adonar-se'n, espera un minut això és va a trencar, trenca en quin cas simple? Si hi ha tres persones a l'habitació o, més en general, quan hi ha una nombre senar de persones al ambient, incloent un. Ens anàvem a perdre a aquesta persona aquí perquè no hi ha aquests parells. Així que ràpidament ens dirigim per primera vegada que introduir addicional construccions de programació a la pseudo codi. Així que una condició, que s'anomena , O una branca. I se suposa que ha de transmetre, visualment, la idea de la branca, una forquilla a la carretera on es pot fer això o, potser, una mica més. I, en efecte, abordem aquest problema afegint la línia 4, dient, en realitat, al al final, si una persona es manté, i després seguir endavant i el considero especial. Així que tipus de cas especial que, per de parlar, de manera que ara podem gestionar tant un nombre parell de persones i un nombre senar de persones. Ara bé, hi ha diverses maneres podríem haver expressat això. I, francament, jo podria haver estat encara més mica primmirat quan es tractava de la meva elecció de Anglès per al pseudocodi. Però almenys l'esperit de la idea és transportat. Si lliurar aquest codi a un amic que no està en CS, o mai ha tingut CS, les probabilitats són que podien entendre, donada a tres persones a l'habitació, com comptar les persones sobre la base en aquestes instruccions. I això és tot el que realment volem aconseguir amb pseudocodi, d'alguna manera estandarditzar la forma en què anem sobre les idees que representen perquè puguem començar a fer més complicat cosa encara. Així que això ens porta a continuació, en l'actualitat, al codi real. Comencem a programar avui, encara en un ambient agradable. I després fem la transició ràpidament a una sintaxi més arcà, però que que veurà és fonamentalment el mateix que les idees es veuen manifesta amb aquest altre llenguatge d'avui en dia. Només va a buscar una mica diferent. Així que en lloc de trucar a aquest codi, estic serà una mica més precís i dir, a partir d'ara, en escriure un programa que escrius codi font. És com pseudocodi. Però anem a veure, no és una espècie de solta quan es tracta de l'elecció de les paraules que utilitza. Quan la programació en un llenguatge, que té per utilitzar les paraules, les frases, la sintaxi, que altres persones han decidit representar aquest idioma en particular. Així pseudocodi depèn de vostè. Un llenguatge de programació real com C, com veurem al final veiem, és estandarditzada per altres persones. Llavors, com fem per escriure una mica de codi font? Bé, jo vaig a anar endavant i fer això. Vaig a seguir endavant i obrir una finestra aquí. Més sobre això la propera setmana. Però aquest és un dispositiu anomenat l'aparell CS50. Estic corrent un programari en el meu Mac, tot i que pot fer el mateix en un equip Windows, que està donant me la il · lusió de dirigir un diferent el sistema operatiu completament la dreta aquí en una finestra en el meu Mac Acabo completa projectar així no ho fa veure realment Mac OS ara. Aquest és un sistema operatiu anomenat Linux. És molt popular. És molt ràpid. És molt lliure, que ha fet molt convincent, especialment en el món comercial. I més en que cap al final de la semestre quan fem servir Linux una mica per a web programació i allotjament de llocs web i projectes reals. Així que ara, només sé que es tracta d'un ordinador de sobretaula que se suposa que mirar vagament familiar per a Windows i Mac OS. Només té alguns noms diferents i les icones de les coses. Però aquest és l'anomenat CS50 aparell, una màquina virtual que, partir de la setmana que ve, que els nois es executar dins d'una finestra a el teu Mac o PC. Per avui, vaig a obrir el més simple dels programes. Es diu gedit. I això és només un editor gràfic. És com Microsoft Paraula, però més simple. És una espècie de text com edició o bloc de notes. És un programa molt senzill amb per escriure les paraules a la pantalla. Simplement el que passa que si llevat arxius que crec que aquest programa en una extensió especial com. c, en lloc de. doc o. xls, o el que sigui vostè està familiaritzat amb, puc realment crear programes usant fins i tot aquest senzill editor de text. Així que permetin-me fer-ho. Deixin-me seguir endavant i salvar aquest presentar primer com hello.c. I de nou, aquesta interfície d'usuari familiaritzar-se amb vostè ràpidament. Però, per ara, només estic escrivint en un nom d'arxiu. Vaig a guardar-lo en la meva John Directori de Harvard. I ara tinc aquesta fitxa que indica Estic realment edició un arxiu anomenat hello.c. Així que res massa interessant encara. I ara que va a ser bastant críptic. Me'n vaig a apropar, només pel que és més visible. I vaig a començar a escriure inclou stdio.h, int obert arrissat principal, buit, cotilla, un, dos, tres, quatre espais de sangria, impressió f, per a la impressió alguna cosa format, entre cometes, "Hola, món" barra invertida, n, prop cita, tancament de parèntesi, punt i coma, entrar en retrocés, retrocés, retrocés, retrocés, clau de tancament - He programat. Molt bé pel que aquest és un super simple programa, en realitat, el programa que algú comença la programació amb. I tot el que fa, malgrat la seva complexitat, s'imprimeix en el pantalla, endevinin què? Hola, món. Però no n'hi ha prou simplement per escriure un programa. Així que aquest és el codi. Aquest és el codi font en un llenguatge anomenat c. Està guardada en aquests moments en un arxiu anomenat hello.c. Ara mira a la part inferior de la pantalla aquí. Més sobre això, de nou, en les setmanes venidores. Però això és el que anomenarem una finestra de terminal. És un parpelleig, negre ràpida i blanc. És una espècie d'una interfície de la vella escola a un equip que generalment no utilitzar un ratolí o un altre elements gràfics. Simplement utilitza el teclat. I puc escriure ordres en El parpelleig ràpid. I per als propòsits d'avui, estic va a escriure el següent - fer hola. I aquest programa, marca, és només una programa que, en el món real aquests dia, ens feu doble clic a. Però en aquesta interfície per avui, estem va a escriure el seu nom en aquest sistema. fer hola és, literalment, va a em fan un programa anomenat hola. I ho farà per mirar un arxiu, simplement per defecte, anomenat hello.c. Això suposarà que vull un programa C per la naturalesa de com aquest ordinador està configurat. Així que segueixo endavant i prem enter. Veig una sortida secreta, però això es farà molt familiaritzar-se en poc temps. Això va succeir per executar un compilador, més en la qual en un moment, anomenat Clang. Però ara, tinc més que un altre parpelleja ràpid. I puc seguir endavant ara i escriviu dot reduir, per raons poc interessants que anem a tornar a la setmana que - hola. Així que tot aquest esforç fins al moment només per escriure el més simple dels programes que, tan aviat com vaig arribar a Enter, això. Així que he escrit el primer programa. Així que estic deliberadament burlava en aquest mateix senzill programa per un parell de raons. Un, és difícil emocionar sobre prendre una classe si aquest és el final del joc. Però més que això, hi ha una moltes distraccions aquí. La primera vegada que s'aprèn a programar, per aquells que menys còmode, i Fins i tot, al seu dia, quan per primera vegada vaig veure una cosa com això - pot tipus de la xifra que, d'acord, aquesta es troba en un món hola impressió. Però hi ha tanta distracció. Hi ha tant de sintaxi a la pantalla que s'interposa en el camí de molt idees simples, en cas contrari simple. Llavors, què farem avui és que estem va a deixar de banda C i vénen de nou a que dilluns. I farem servir un gràfic llenguatge de programació anomenat esgarrapades. Aquest és un llenguatge de programació, que jo ludeix dimecres que va que ens permetrà fer el mateix tipus de coses però fan els ulls grossos, perquè avui, a les claus, els parèntesis, els punts i comes, i totes aquestes estúpides distraccions que s'interposen en el camí, en aquest primer dia, d'alguns bàsics, bastant idees interessants. Així que amb aquest fi, em vaig a anar de tornada al meu escriptori aquí i presentar a l'alternativa que programa, que es va a buscar una alguna cosa s'encén això. Això és el que anem a aplicar aquesta mateix programa d'avui - dos trencaclosques peces que, quan entrellaçats i clic a, dirà al món, hello world. Així que realment anar-hi. Així que seguiré endavant i obrir un lloc web conegut com scratch.mit.edu. I això em portarà Aquest lloc web aquí. Per endavant, m'he registrat en aquest lloc web i els primers problemes que us guiarà a través d' alguns d'aquests passos. Vaig a seguir endavant i feu clic a en la meva carpeta de zero aquí. I això em va a mostrar alguns projectes que he en realitat creat per endavant. I resulta que aquesta gràfica llenguatge de programació no només va que ens va deixar el programa d'arrossegar i deixant caure les peces del trencaclosques, que ni tan sols necessita un programari especial. Tot està incrustat dins d'un navegador per que vostè pot fer això, en teoria, en els equips en aquest moment, com alguns de vostès bé pot ser, fins i tot sense necessitat de programari com l'aparell CS50, que arribarà la setmana que ve. Així que vaig a pujar a la part superior aquí i feu clic a Crea. I en un moment en què em vaig a posar un espai en blanc pantalla a través de la qual puc començar programació en aquest gràfic entorn de programació. Però aquesta vegada, serà molt, molt més senzill fer-ho realment. Així que en un moment, quan el Wi-Fi coopera, ara tenim aquesta pantalla. Així que una visita ràpida verbal, però m'atreveixo a dir, Certament, quan se submergeixen en el primer conjunt de problemes, se li trobar molt accessible i bastant intuïtiu. Però anem a pintar una imatge mental només per un moment. Així que per sota d'aquesta ràpida parada dient canvis, estàs a punt de veure res. Es tracta d'un element sprite. És un personatge. I viu del que anem a trucar a un escenari, aquest gran rectangle blanc a que es pot moure cap amunt, avall, esquerra, dret, i ho fan, en realitat, un altre tipus d'accions. Mentrestant, al mig d'aquest usuari interfície, tenim un munt de peces d'un trencaclosques. I veuràs que diuen coses com moure 10 passos, girar 15 graus, punt en una certa direcció. Però hi ha categories de pomes d'aquí també. Així que si em vaig a l'aparença, veuràs que hi ha altres peces d'un trencaclosques que aparentment li dirà aquesta cit de saludar, per pensar, per mostrar si mateix, amagar-se. Si vaig a sons, resulta hi ha maneres de jugar sona com el miol, per aturar tots els sons, a tocar el tambor. Així, el conte llarg, hi ha un conjunt munt de peces d'un trencaclosques que li permeten dir-li a aquest gat, o qualsevol nombre d' altres personatges, què fer. Però perquè tot això passi es necessari per iniciar la programació. I aquesta gran caixa blanca o caixa de color gris, en la dreta, aquí és on Vaig a arrossegar realitat i deixar anar les peces del trencaclosques. Aquesta és la meva text en blanc equivalent finestra. Així que seguiré endavant i feu clic a Controlar en el centre. O més aviat, deixa començar a Esdeveniments. En banca Esdeveniments, veuràs que hi ha una algunes coses que són deliberadament corbat a la part superior de manera que que probablement no s'entrellacen en la part superior de les peces d'un trencaclosques. I això és perquè demarcar l'inici d'un programa, l'inici d'una escriptura, per així dir-ho. Així que si segueixo endavant i arrossego, quan està verd bandera clic aquí, i després vol dir cat alguna cosa en el primer. Així que em vaig a passar per sota de les mirades panell. I jo vaig a seguir endavant i prendre la saludar bloc, i arrossegar i deixar anar, i deixar anar perquè de forma automàtica enclavaments allà. I a continuació, observi el que pugui feu clic al text. I puc anul · lar per ser més específica com, per exemple, hola món. I ara tenim el programa que jo reclamo és equivalent a la molt més programa arcà vaig implementar en C fa un moment. Si em vaig ara cap a l'esquerra, noten que hi ha un gran senyal d'alt i una bandera verda gran. Permetin-me ampliar la imatge durant la claredat. I quan faig clic ara aquesta bandera verda, que és fàcil endevinar el que aquesta primera programa ara va a fer. Així que, també, estem programant, però no estem realment empantanegar en alguns dels sintàctica, detalls minuciosos. Però intentarem alguna cosa una mica més interessant. Deixa anar a la carpeta zero aquí. I en realitat, deixa així que m'obro un programa separat aquí per només una moment, Maximitzar la finestra, arxiu obert, i jo entraré en l'actual directori d'origen. Com sempre, es troba, en l'actualitat i en endavant, que tots els exemples d'avui en dia són accessibles a l'interior del la pàgina web del curs. I seguiré endavant aquí i recollir una mica d'alguna cosa diferent. Aquest d'aquí, per al qual Necessito un voluntari. Qui vol una llum d'escriptori avui en dia? Bé, què hi ha d'algú una mica - està vostè al final? Anem cap avall. Ara, li agradaria participar o dir simplement començar amb la llum d'escriptori? VANESSA: [inaudible]. DAVID Malan: OK. Excel · lent, què et dius? Vanessa? David. Gust a conèixer-lo. Així que anem i Vanessa va per prendre el control de la meva teclat per un moment. I el que he fet aquí, només pel temps de bé, com m'he adonat de la Wi-Fi era una mica lent, Scratch, l' entorn de programació que estem utilitzant, amb possibilitat de descàrrega i executar en l'equip local. Així que el que vaig fer abans de la conferència, a cas que succeeixi, és que he descarregat tots els arxius que estem a punt de jugar amb de manera que puguin córrer una mica més ràpidament aquí al meu portàtil. Així que per això ara que estic veient una interfície de Mac-específica. Així que seguiré endavant i obrir aquest. Vaig a seguir endavant i ara pantalla completa de la finestra. I com veurem, podem molt ràpidament, igual que aquest estudiant, un seus predecessors, van de hola món a un molt més convincent aplicació. Així que aquí estan les instruccions. Oh, i no tenim altra cosa. Vaig pensar que seria divertit, ja que, Normalment, estarem filmant càmeres d'aquesta manera. Vaig pensar que seria divertit si, Vanessa, podríem veure el món a través dels seus ulls. Així que aquí tenim una mica de vidre Google. [Sospirs sorpresos] DAVID Malan: Només estarem donant distància llums d'escriptori actuals. [El] Així que em cue això. D'acord, tocar això. Acceptar, Cristall, gravar un vídeo. Bé, Vanessa? Ara, en un apart que no té res a veure amb Scratch, si ens fixem lleugerament cap amunt i cap a la dreta, veuràs el vidre literal, i que hauria de veure una petita finestra rectangular. Heu de veure a tots els seus companys de classe està filmant ara mateix? Sí VANESSA: Si. DAVID Malan: OK. Així està bé. Ens llançarem aquest metratge més tard. Per ara, dirigeixi la seva atenció a la pantalla aquí. I el que el seu predecessor ha fet és posar les instruccions que apareixen a la pantalla simplement mitjançant l'ús d'un programa de pintura. Així que anem a, en un moment, premeu la barra espaiadora per a començar. I després algunes peces del trencaclosques es van per començar a moure per la pantalla. I vostè desitja colpejar les tecles de fletxa, simplement com en béns DDR, de conformitat amb les coses alineant amb les fletxes. VANESSA: OK. DAVID Malan: Has jugar abans. VANESSA: Si. DAVID Malan: Molt bé, Vanessa, seguir endavant i se'l tregui. [MUSIC - Kayne OEST, "FORT"] [Aplaudiments] DAVID Malan: Així que anem ara fer un pas d'això. Així que està clar, és el final del joc. La fi del joc no és hola món. Però vostè no ha de veure necessàriament coses que són tan interactius. També es pot fer animació. Així, per exemple, un altre de la seva successors van fer aquest programa aquí, que narra una història de més de que no va posar en pràctica un joc. Així que permetin-me anar per davant i obrir ací un programa al nostre mateix directori d'origen a partir d'avui. Aquesta crida, i anem a començar amb, una història d'amor galeta. I per no fer això massa acadèmica, però, com veus aquesta, crec que mateix que dels simples conceptes de programació que hem parlat aproximadament fins al moment - les variables i bucles, i les condicions, va fer el seu antecessor probablement utilitzeu només per aplicar algunes de les visualitzacions. Vostè veu aquí. Així que li dono una història d'amor galeta. [MUSIC - Green Day, "vacances"] [CRASH] [MUSIC - LES TORTUGUES, "Happy Together"] DAVID Malan: Molt bé, pel que, vam tenir una història d'amor galeta. Però fins i tot allà - [Aplaudiments] DAVID Malan: Està bé, fins i tot allà, pensar, com els cors van ser de la part inferior a la part superior de la pantalla, no era en realitat una mica de aleatorietat passant. I, de fet, anem a veure que fins i tot al simple d'entorns, com Scratch, com en C, pot generar nombres aleatoris, o la il · lusió de nombres aleatoris, de manera que el joc és un poc més interessant del que podria ser si vostè tenia absolutament fortament codificats tot. En el moviment que es veu, no hi ha algun tipus de resposta. Tan aviat com l'home de pa de gingebre toca la dona del pa de gingebre, que sembla allunyar-se. I així, de fet, es pot posar en pràctica, en la majoria dels llenguatges de programació, la noció d'esdeveniments, de manera que si una mà toca D'altra banda, que pot desencadenar alguns del seu codi font per fet executar. Vostè pot escoltar a aquest coses a la pantalla. Així que donem un ràpid recorregut, doncs, de alguns dels elements bàsics que podem utilitzar per assolir alguns d'aquests objectius. Així que aquí és el que farem a partir d'ara trucar a un comunicat. Una declaració passa a ser de color porpra en Scratch, una mica d'alguna cosa com això, però això és arbitrari. Una declaració és només una peça del trencaclosques o, més en general, una instrucció, que li diu a l'ordinador per fer alguna cosa, un comunicat. Així que aquí hi ha una mostra simple. Say hello world. Una altra podria esperar un segon. Així que aquesta peça del trencaclosques, que és recolzat en Scratch, deixarem que el seu caràcters de pausa per alguns nombre de segons. Això, també, és només una declaració. Aquí al costat, tenim un altre més un interessant joc de so miau, i significa la petita fletxa que en Scratch, aquest és un menú desplegable. Així que vostè pot importar sons. Pot gravar sons i fer una altra coses divertides a zero. I això, també, però, al final i la fi, és només una declaració. Però ara anem a introduir una major peça interessant, el conegut com Expressió booleana. Capital B, el nom de un tipus anomenat Bool. I una expressió booleana és només un peça del trencaclosques o, més en general, una peça d'informació que és vertader o fals - un o zero, si o no. Així que és només un dels dos oposats. Així que una de tals expressió booleana al món d'esgarrapades sembla aquest blau tros del trencaclosques. I s'està fent una pregunta, ratolí cap avall, i que, o bé pot ser, de Per descomptat, veritable o fals. Així que amb aquesta peça de trencaclosques en el Scratch, així, vostè serà capaç de detectar si un trencaclosques si el ratolí és, de fet, estar celebrada per la interacció humana amb el seu programa. Aquest és una mica més abstracte, però aquests dos caixes blanques són només per als números. Així que vostè pot fer coses com aquesta és nombre menor que l'altre? I si és així, Scratch es comportarà d'una manera o altra. Aquest és una mica més gràfic. És si el sprite, si el gat, per exemple, es tocar realment el punter del ratolí. Així que si la petita punta de fletxa plana sobre el gat, llavors aquest peça del trencaclosques s'avaluarà com true. Serà veritat, en aquest cas, si utilitzar aquesta expressió booleana, com veurem veure en un moment, en una branca, pot o bé fer això, o vostè pot fer això, igual que vam tenir una condició que marcada, hi ha una última persona més a la sala? Si és així, afegiu una. En cas contrari, no et preocupis més. Per tant una expressió booleana pot ser també i-ed junts o o-ed junts. Així que vostè pot combinar expressions booleanes i dir això i això ha de ser cert per tot això per ser veritat. I aquí hi ha un exemple del món més real. Si ha utilitzat CS50 Cursos d'fer curs compres, aquestes caselles allà, on si es marca la casella següent als cursos, que dirà, sí, Només mostreu-me cursos pels quals el valor Q és 4.5 o superior. Si la desactiva, no, no ho fa preocupar-se per això. O igualment, a la dreta, no Conflicte amb cursos que estic prenent, això és vertader o fals. És només una expressió booleana. Així que tot aquest temps en què vostè ha utilitzat llocs web amb caselles de verificació, només són alternar l'equivalent d'un valor booleà expressió d'encesa i apagat. Així doncs, en quina forma utilitza aquests? Doncs bé, en Scratch, veurem en un moment que hi ha condicions que aquest aspecte. I això és una cosa sensata, perquè gran part com en pseudocodi, s'aplica sagnia el tipus de peces d'un trencaclosques en forma d'U, amb una mitjana que res dins d'aquesta U és va a executar, o no, depenent on està. Així que si l'expressió booleana, a continuació, el que hi ha dins es vulguin realitzar. Mentrestant, hi ha un bloc if / else. Així que si vols una branca que va això o tal manera, Scratch ens dóna això. I per aquesta lògica, ara, tot i que peça del trencaclosques és clarament massa petit per calçar una mica més dins d'ella, les peces del trencaclosques res, que estan només creixerà. En arrossegar i deixar anar sobre alguna cosa, només creixerà per adaptar al que és el que estàs tractant de fer. Així que podem tenir dues d'aquestes coses i fer una forquilla de tres vies de la carretera, així que no fa això, o allò, o aquesta altra cosa només per ells implantació d'aquesta manera. Per descomptat, si ho fa massa molt, comença a posar lleig. Però en aquest moment, en realitat estàs Probablement no es programa molt bé. Així que serà recurrent el tema, també, que d'estil. Què tan bé fer realitat formatar el codi? O què tan bé el disseny del seu codi? Però més sobre això en el futur. I ara tenim llaços. Hi ha un bonic llaç per sempre en zero el que significa, literalment, que - do el que hi ha dins d'aquest nou, i una altra, i una altra. Pot ser més concret i dir: fer el següent 10 vegades. També podeu utilitzar les variables. Vostè pot pujar amb qualsevol nom en aquest poc desplegable i dir, dóna'm un variable anomenada n i ajust és igual a algun valor. I llavors vostè pot tenir funcions. Però més sobre això en un moment. Deixa tornar al meu Raspe interfície. I m'ho dius a mi anar per davant en aquesta ocasió. I seguirem endavant i obrir, diguem, un exemple de - això és una mica més interessant. Déjame anar per davant, i, en realitat, Permetin-me fer jo mateix. No necessito obrir aquest. Déjame anar a Arxiu, Nou. Vaig a anar a esdeveniments. Me'n vaig a anar quan la bandera verda fet clic, i jo aniré a So. I jo vaig a arrossegar i deixar anar aquest peça del trencaclosques, el joc miau so. Es bloqueja junts. I ara, si faig clic a la bandera verda - [SO MEOW] DAVID Malan: Adorable. OK, així que ara farem alguna cosa una mica més lògic només per demostrar que podem, per ara. Vaig a desenganxar això d'aquest tipus. Vaig a anar a Control. I em vaig a prendre un estat. Així que si alguna cosa llavors. Així que això és el que es veu allà. Així que necessito una expressió booleana. I m'ho dius a mi seguir endavant i dir, m'ho dius a mi anar als operadors. Vaig a fer una cosa una mica Mathy, només per diversió. Vaig a entrar-hi i dir, si una cosa que és menys que una altra cosa, seguir endavant i fer alguna cosa. Així que ara, saps què, un bloc a l'atzar. Així explica com, si planen sobre aquesta cosa aquí, que s'ajustarà en aquest país. Ara, fixeu-vos, estic començant a fer alguna cosa ja més lògica interessant. Si un nombre aleatori entre 1 i 10 és menys de, diguem 06:00. Si trio sis, que, bàsicament, mitjans, feu el següent amb un 50% probabilitat. És com llançar una moneda. Ara, puc fer alguna cosa condicional. I aquesta cosa que vaig de fer és reproduir el so. Així que ara, quan faig clic a la pantalla bandera, és com tirar una moneda a l'aire. [SO MEOW] DAVID Malan: Va ser caps o el que sigui allà. Anem a fer-ho de nou. [SO MEOW] DAVID Malan: Caps de nou. [SO MEOW] DAVID Malan: Caps de nou. Ufff, OK. Tails aquest moment. Així que el 50% de les vegades, si ho fem infinitament llarg, anem a obtenir el 50% miols i 50% silencis. Així que, només un component bàsic bloc que ens permet fer això. Però això és una mica tediós que tinc per seguir fent clic en aquest botó. Així que només has de arrossegar i llençar tots els de distància. Si vostè els ha arrossegat a la meitat, que només va a eliminar a si mateixos. Déjame anar a controlar. Déjame anar a per sempre. I aquesta vegada, faré minorly una mica molest. [El] DAVID Malan: I em va deixar anar endavant i fer control. Esperi un segon, només per no és massa reixeta. [SO MEOW] DAVID Malan: Això no és natural. D'acord. [SO MEOW] DAVID Malan: I fixin-se el que, nice sobre Scratch, per a aquells de vostès que tenir experiència prèvia en programació, vostè no és necessari per iniciar i aturar. No és necessari per compilar. Vostè acaba de canviar, i el programa s'adaptarà dinàmicament. Així que això és cada vegada un poc interessant. Però anem un pas més enllà. Deixin-me seguir endavant i obtenir lliurar d'aquest programa. [SO MEOW] DAVID Malan: Això és el que anem a trucar a un error a zero. No hauria de seguir fent aquest so. Així que anem a dir-li que pari. Molt bé, així que ara estic va a entrar en - Et deixaré saber MIT. Anem a repassar aquí per sempre. I ara, vull fer alguna cosa una i altra vegada. Vaig a entrar en control. I anem a veure, vaig a arrossegar meva condició if allà. Així que ara compta de la lògica. Quan la bandera verda es fa clic, fer alguna cosa per sempre, sinó només fer-ho alguna cosa si aquesta altra cosa és certa. Vaig a anar, anem a per exemple, la detecció. I jo vaig a seguir endavant i triar tocar i deixar-lo allà. Aquesta és una expressió booleana. I ara, fixa't, en aquesta caiguda menú de sota, hi ha alguns valors predefinits. Així que puc dir que estàs tocant la vora de la pantalla? O estàs tocant el punter del ratolí, la fletxa a la pantalla? Així que vaig a fer això. I si és així, llavors jo vaig a anar endavant i jugar miau so. Així que ara tinc el tipus de inici d'un joc - un joc adorable. [SO MEOW] DAVID Malan: OK, un adorable, joc amb errors. Déjame esperar, diguem, un segon allà. Ara toca de nou, fent clic a la bandera verda. [SO MEOW] DAVID Malan: Així que ara és com acariciar a un gat. [SO MEOW] DAVID Malan: Molt bé, ara aquesta que jo vaig fer per avançat. Molt tard, es posa tipus de fàcil de fer coses estúpides. Així que permetin-me anar aquí. Diguem, que era la mascota del gat. Ara obrirem No acariciï el Gat. Ara, si juguem aquest, es pot endevinar, si ets mirant a la pantalla - [SO MEOW] DAVID Malan: Ara, si em acaricio el gat [Rugit del lleó] DAVID Malan: Així que en realitat no acariciar al gat en aquest cas. Així que ara només tenim un exemple d'un branca que va en dues direccions. Ara vaig a seguir endavant i obri un altre aquí. Aquest, també, entre la nostra font arxius de codi per al dia. Així que em torno al meu Font directori i entrar, anem a triar aquest noi aquí i vegi el que és diferent. Wow, està bé, de manera que ara s'està fent una mica més complex. I abans que vegem el que fa aquest tipus, Tractarem d'inferir, a partir del programa al costat dret. I ara zero permet clarament ens tenir diversos guions, múltiples programes associats a un follet, amb un personatge i, segons sembla, tots dos estan anant a córrer al mateix ritme. A causa d'aquests dos programes s'inicia quan fa clic amb el verd de la bandera, és fent al · lusió a un tema més avançat, amb que alguns de vostès podrien estar familiaritzats, conegut com roscat, o multi-threading. Resulta que el conte llarg, ordinadors avui pot fer essencialment múltiple coses alhora. O poden fer una cosa alhora per ràpid que no t'adones que en realitat està fent una cosa alhora. Però per ara, anem a suposar que tots dos aquests programes es van a executar en el al mateix temps. I fixin-se, tots dos tenen sempre trencaclosques peces. Així que estan tant seguirà funcionant fins que vaig arribar al senyal de stop de color vermell. Llavors, què van a fer? Pel costat de la mà esquerra, jo sóc pel que sembla es declara una variable anomenada silenciada. Així que no em dic una cosa així com avorrit com N. vaig trucar silenciat aquest temps per transmetre significat. Em vaig posar igual a zero. Pensem en això com False, o pensarem en això com Fals. Ara, per sempre fer el següent. Si es prem la barra d'espai del teclat, a continuació, si és igual a zero silenciat, a continuació, canviar silenciat a la igualtat d'una. Si no, establir silenciat a zero. Així que, lògicament, tot i que és un tot munt de peces d'un trencaclosques que hi ha Només dic, quan em va colpejar la barra d'espai, Què he de fer per a la variable anomenada silenciat? Canviar d'un a zero, o de zero a un. Això és tot. Així que és com encendre un interruptor de llum dins o fora i recordar, amb una variable, ho he fet. Mentrestant, al costat dret, a termes senzills, quin és el propòsit de el guió de la dreta? ESTUDIANT: Per reproduir el so de llops marins. DAVID Malan: Per reproduir el so del lleó de mar, si no està en silenci, per naturalesa d'aquesta variable. Així que estem compartint estat, per dir-ho, compartir informació a través d'aquests dos guions, perquè, fixeu-vos aquí, estem sempre fent el següent. Si silencia és zero, pel que si no és silenciat - si silencia és fals, llavors el joc aquest so del lleó de mar. I pensa a si mateix, hi, hi, hi, per de dos segons, esperi un moment i, a continuació, pots tornar a intentar-ho. Així que si ens anem ara per aquí a l'esquerra, d'on és aquest tipus, i premi el bandera verda, [LLEÓ DE MAR DE SO] DAVID Malan: En quin moment això aconsegueix realment molest? Com que aquest s'acaba d'anar per sempre. Així que a vegades, bucles infinits, per així dir-ho, són deliberada. Però en aquest cas, tan aviat com Prem la barra d'espai, s'atura. Ara, el programa no ha deixat. Està encara en marxa en aquests bucles. Però si tinc la barra espaiadora una vegada més - [LLEÓ DE MAR DE SO] DAVID Malan: Ell va a recollir fins on ho havia deixat. Així que hi ha una manera perquè fem alguna cosa una i altra vegada, però, que temps, només condicionalment. Bé, ja que estem en aquesta línia de fer coses una i altra vegada, em van deixar anar a un altre exemple aquí. Aquest anomenarem comptar ovelles. I noti el que fa aquest tipus. En realitat és una mica més com el pseudocodi juguem amb el Dimecres, mitjançant la qual s'estableixen algunes taulell, pensar-hi és com nord de nou, per zero, que sempre fa el següent. Ell diu que el valor del comptador durant un segon, espera un segon, i després canvia el comptador en un. I en aquest context, que només vol dir que l'esperona. Així que un s'agrega a ell. Així que això és literalment - no és exactament el que pensem de com comptar ovelles. És l'ovella fent el recompte, sempre, a partir de zero. Pel que podem fer coses similars allà, lògicament. Però ara anem a tractar de netejar algunes d'aquestes coses. Déjame anar endavant ara en un simple exemple, quan el nostre gat és només va a comença a tossir. Molt bé, així que aquí tenim tos 0 - els informàtics comencen comptant des de 0. Així que aquest gat és només va a tossir tres vegades. I així és com he implementat això. Quan la bandera verda es fa clic, tos, espera, tossir, espera, tossir, espera. I ho vaig fer només arrossega i deixar anar les peces del trencaclosques. O si vostè comença a jugar amb Scratch, veuràs que en realitat es pot duplicar peces de manera que vostè pot fer les coses amb més rapidesa sense arrossegar i caient fins a la sacietat. Però no estem en el millor camí aquí. Perquè ¿com ho faig ments per quarta vegada? Bé, podria ordenar de baixar aquí. Podria duplicar i després enganxa aquest aquí. Com li faig tossir cinquena vegada? Bé, copieu i enganxeu altra vegada. O arrossegar deixar anar de nou. I molt aviat, aquest programa s'inicia aconseguir molt, molt redundant, molt llarg, però molt interessant. Però hi ha una manera de netejar això. Quina és la manera òbvia a netejar això? OK, així que podríem anar realment fora i, quan arribi l'espai bar, demani-li que faci ombra. Però si jo només vull fer alguna cosa repetitiva, recordar que nosaltres tenim cert control construeix. Permetin-me que passi això de la Així, anar sota control. Permetin-me fer una repetició, per exemple, tres vegades. I ara anem a robar una mica de d'aquestes peces del trencaclosques. Permetin-me trenco això aquí. Déjame llançar aquestes lluny per complet. I ara tinc una millor programa dissenyat. Per què? Si vull canviar el nombre de vegades Aquest gat tus, tot el que han de fer és canviar una variable o un valor, en lloc de tres, o quatre, o 05:00, o sis. O podria fer alguna cosa condicional, fins i tot, amb l'espai bar si volia. Així que aquest és un principi general. Una vegada que comença a copiar i enganxar el codi, ja sigui en Scratch, oa C, que està fent una cosa malament, el més probable. O almenys, un cop superat alguna un nombre raonable de còpies i pastes, probablement fent alguna cosa malament. Però saps què? No m'agrada molt això. Aquest no és el disseny més net. M'agradaria que hi hagués una peça del trencaclosques anomenat ments, perquè llavors no ho faria d'aplicar això a mi mateix, a la manera antiga, per havent dir i esperar - I si no eren més que una peça del trencaclosques per a la tos. Bé, jo puc fer realitat això. Déjame anar sota més blocs, feu clic a Fer un bloc, i ara em surt aquest aquí finestra. Vaig a trucar a aquesta cosa tos. Vaig a seguir endavant i feu clic a D'acord. I ara fixeu-vos, em surt una nova partida peça que està corbat a la part superior. ¿I què faré amb això, estic va a robar només aquests blocs. Vaig a posar aquí. I ara, amb aquestes tres peces, no tinc implementat el que vaig a trucar a un funció, o un procediment, o alguns és possible que el coneixen com un mètode. Les petites diferències entre les paraules. Però per ara, anem a cridar a aquesta funció. Això és només una nova peça del trencaclosques. Ara es porta a terme d'aquesta manera. Però noti que zero ens ha donat un representació física que tota bloquejar per aquí. Així que ara, puc arrossegar això aquí, dir, repeteix tres vegades, i Què passarà ara, quan joc aquest script, és només un programa s'està executant en un moment. Només hi ha un quan bandera verda clic. Però aquest bloc de color porpra és cridada tos dient efectivament Scratch, cada vegada que vegi a aquest tros del trencaclosques, en realitat executar aquests passos que jo passar a aplicar manualment. Així que això és molt guai. Però ara, suposo que em vaig decidir, no ho sé vull aquest gat només per tossir. Vull que ell sigui capaç esternudar també. Bé, com podem anar sobre implementació d'esternut? Bé, jo podria molt bé fer el mateix. Podria fer un altre bloc. Podria anomenar aquest esternut, feu clic a D'acord. Llavors, aquí el que vaig poder en realitat haver, deixa duplicar aquest - i allà és on vostè ha de sentir com probablement no estàs fent alguna cosa en la millor manera. Podria dir alguna cosa així com: achoo, durant un segon. Espereu un segon. Ara tinc un nou bloc anomenat esternut. I, de fet, no ho és. Però això, també, ha de començar a sentir - potser no sigui la primera setmana de classes, però pel segon - només una mica redundant. És evident que hi ha una mica de redundància aquí. Així que em proposo, en canvi, que perfeccionar aquesta definició de la següent manera. Deixa anar al meu menú arxiu. Jo no vaig a guardar aquesta versió. Vaig a anar a un els meus arxius prefabricats aquí. I seguiré endavant i obrir la tos 2. Vaja que era tos 2. Deixin-me seguir endavant i obrir la tos 3, aquest és el directori d'origen. Tos 3 i noti - oh, jo vaig dir la història en l'ordre equivocat. Déjame recuperar d'aquesta història. La història que volia explicar extrems amb tos 4 - aquí està. I què si, en canvi, definir una peça del trencaclosques gran anomenada definir, per exemple la paraula n vegades. Esternudar és, segons sembla, en Scratch, achoo. Així ho expressem com una paraula, perquè aquesta és la restricció del programa. I la tos és [S], però la tos, C-O-O-G-H. Així que això és només dos paraules diferents fent, essencialment, la mateixa cosa. Així que realment pot fer un nou bloc com aquest. Jo no utilitzar aquesta opció de menú anterior. No obstant això, en fer clic a Make Block, vostè pot triar algunes opcions. I es pot dir que aquest bloc realitat té alguns insums, en cas contrari conegut com a arguments o paràmetres, per la qual cosa que pot modificar el comportament dels seva bloc. Així que el que vaig fer fa un moment estava Vaig trucar a aquest bloc de Say. I llavors em vaig dir, pren una entrada de cadena. I ara compte, per defecte, diu string 1. Una cadena és tan sols una paraula, o un frase, per als nostres propòsits. Però jo només vaig a posar una mica de text de marcador de posició allà, igual que en un lloc web, quan veus nom d'usuari, o contrasenya, i després desapareix quan de començar a escriure. Això és tot el que és. I ara em vaig a afegir una entrada de nombre. I jo vaig a trucar a aquest n - però això és bastant arbitrària. I a continuació, només una etiqueta, només per fer aquest bloc una mica més de si explicativa - vegades, això és el que acabo de fer. I el resultat final és que em surt un bloc que s'assembla a això. I ara m'adono, estic fent servir un bloc de repetició. Però en lloc de difícil codificació de tres, jo sóc arrossegar i deixar anar n en allà, així que pot parametritzar la funció. Puc fer aquesta funció faci alguna cosa un nombre diferent de vegades sobre la base de aquest valor. I es va adonar, per exemple, això és el que vaig aquí, si em arrossego paraula, puc dir que no és un paraula codificada dur, però el que sigui es passa en un segon. Mentrestant, com puc tornar a implementar tos? En canvi jo defineixo com la tos dient ments n vegades. Així que en resum, estic passant per això ràpidament, però la idea bàsica és tan aviat ja es comencen a veure al programa que, espera un minut, el que he fet una cosa semblant a això abans, Jo puc factoritzar alguns comuns funcionalitat? Puc descompondre el que estic fent en algunes idees bàsiques? Això és el que estem fent aquí. I he apilats aquestes coses, visualment, a la part superior d'un a l'altre perquè és testimoni de la idea de començant amb el binari, va a ASCII, fent programes gràfics, tipus de capes les idees cada vegada més complexes en un sobre l'altre. La mateixa idea aquí. Vaig començar des de zero, la implementació de ments, a continuació, tos adonat és realment dir alguna cosa. Així que permetin lloc implementar la idea de dir alguna cosa. I a sobre d'això, puc aplicar achoo o tos? I podríem fer més, com variants fixes. Així que d'aquest principi bàsic, podem començar a fer cada vegada més complexos programes. Permetin-me obro aquest. De fet, podem tenir múltiples sprites interactuar a la pantalla alhora. Si vaig al meu directori d'origen i agafar un anomenat Temes, recordar que una fil és realment la capacitat de dues seqüències d'ordres per executar costat a costat al mateix temps. Observeu ara, tenen tant un sprite d'aus i un sprite gat, dos dels quals tenen seus propis guions. Així avís, quan faig clic al gat, tinc aquests scripts. Quan faig clic sobre l'ocell, Tinc aquests scripts. Així que cada un d'aquests tipus té seus propis programes. Quan ara faig clic a la bandera verda, noto que el que fa el programa és tenir el gat, molt poc a poc, perseguir les aus. Però el gat té l'avantatge de tenir estat programat de tal manera que no importa on l'au és que el gat va cap a ell. Podem jugar a aquest joc molt més ràpid. Així que si estic en el gat, noto que estic usant, diguem que moure una escala. Haurem de es mogui cinc passos a alhora, així cinc punts alhora. Permetin-me feu clic a Reproduir. [Rugit del lleó] DAVID Malan: Molt bé, ara podem realment donar al gat l'avantatge. 10 passos alhora. [Rugit del lleó] DAVID Malan: Molt bé, molt ràpid, es posa una mica d'avantatge per al gat. Però em sacsejo la mà a alguns dels detalls. Però la raó que aquest camí és de partida una mica diferent cada vegada és que estic fent una mica d'aleatorietat. En realitat estic assenyalant al gat en una direcció diferent basa en on vol que comenci pel que cada vegada el joc, o l'animació, és un mica diferent. Ara, permetin-me presentar a un altra construcció aquí. Així que en aquest cas, vam tenir funcions. Hi ha també serà una peça del trencaclosques conegut com una matriu o una llista, que li permet emmagatzemar múltiples valors dins d'una variable. Vam veure temes, i ara té esdeveniments. Així que aquest és un esdeveniment mitjançant aquests dos nois aquí. I si obro l'arxiu anomenat Esdeveniments a partir d'exemples de l'actualitat, ho farem veure un programa que es veu una mica com això. I ara compte aquest tipus - per adonar-se que tinc el blau Muppet clic - que només fa el següent. No té un dels peces del trencaclosques bandera verda. Ell té una quan rebo esdeveniment - així que una paraula arbitrària. M'acaba d'escriure a terme esdeveniments allà - que dirà, Pol, durant dos segons. Així que aquells de vostès que estan familiaritzats amb aquest joc podria saber on va això. Si ara faig clic al Muppet taronja, seu programa fa això. Sempre, si la barra d'espai del teclat suprimida, ell dirà, Marc, durant dos segons a la pantalla. Però també va a utilitzar aquest columbòfil bloquejar conegut com difusió. Ell va a emetre cita fi de la cita, "event". Mentrestant, l'home blau, recordo, és escoltar entre cometes, "event". Així que d'alguna manera, ara, podem tenir 2 sprites interactuar. I quan arribem a la programació web, més tard en el terme, com aquesta avantatjós tenir el seu lloc web fer alguna cosa en resposta a, per exemple, un clic del teclat. Així que permetin-me anar endavant i prémer la barra espaiadora. Taronja tipus diu Marc. Blau tipus diu Pol. Si ho faig noi nou de taronja diu Marc, individu blau diu pol. Així que anem a fer un pas més enllà. Aquesta vegada, anirem, probablement, només uns pocs minuts més aquí. Tenim - llum d'escriptori, anem cap avall. Estàs just al final. Acceptar, pot tant pujar. Tenim els llums d'escriptori per a tots. Anem. No sé si podem mantenir aquest gag ridícul fins durant tot el semestre, però. Bé, anem cap avall. I mentrestant, tenim la seguint els exemples per tirar cap amunt, només per accelerar les coses ara, de tal manera que ens tenir una manifestació d'un altre predecessor seu utilitzant el mateixos blocs bàsics de construcció. Com et dius? JOHN: John. DAVID Malan: John. Agradable per a mi. ¿I? Setz: Setz. DAVID Malan: Setz, amable amb mi vostè. John, si vols venir dalt primer, aquest és un vell joc de l'escola anomenat Frogger. El teclat s'utilitza per això també. I l'objectiu és arribar a l'altre costat carrer i l'aigua. [MUSIC Frogger I JOCS SO] DAVID Malan: Ho sento, no llum d'escriptori d'avui. D'acord, Setz, oi agradaria entrar en un màxim? Molt bé, ho farem de nou. Setz: Faig servir les fletxes? DAVID Malan: Només les tecles de fletxa. A dalt, baix, esquerra, dreta. [MUSIC Frogger I JOCS SO] DAVID Malan: Els anomenarem accèssits avui, llavors, molt ben fet. En aquest cas, per als dos, Joan i Setz. Felicitacions, molt bé. Així que de nou, ja que aquest joc es juga, pensar en el que està passant? Un, clarament hi ha una gran quantitat de moviment. Però hem vist com, amb el gat i el exemple, ocell, com es pot fer que el il · lusió del moviment amb només moure una mica nombre de píxels i una altra. I si vostè té un bloc de sempre, vostè pot tenir aquests cotxes fent això per sempre. Tenim la capacitat de tenir una mica d'aleatorietat. Així que aquest joc no té per què ser exactament el mateix cada vegada. Aquests registres, els cotxes, poden començar a temps lleugerament diferents de manera que el joc en si és més interessant amb cada joc. I mentrestant, hem vist la capacitat per escoltar la barra d'espai. Però és evident que, en Scratch, pot també escoltar per amunt, avall, esquerra, dreta, i Realment qualsevol tecla del teclat. I també es pot fer altres coses. Deixin-me seguir endavant i tornar a la versió web. Déjame entrar a la nostra col · lecció d'exemples aquí. I sota el meu estudi, de vídeo que és, en essència, una carpeta de scratch.mit.edu. Tenim les versions web de tots aquests projectes. I anem a veure si puc aconseguir el meu equip de cooperar aquí. Això està escrit per un dels nostres amics al MIT, anomenat Moveu la papallona. I una vegada que això s'obre, es tracta de va a utilitzar realment més maquinari del meu ordinador. Zero passa a ser implementat amb Flash. Flash pot parlar amb la seva webcam, si vostè té un. Així que si segueixo endavant i pantalla completa aquest aquí, feu clic a la bandera verda, l'avís que el missatge de seguretat de flash és a dir, què vol permetrà utilitzar el meu webcam? Normalment, vostè ha probablement diria Denegar. Però en aquest cas, direm ho permetin. Llavors jo vaig a dir Chrome per permetre que això també. I ara, en un moment, em veus, sí, jo. I si la meva mà s'aixeca - He de canviar la meva no el cap al mateix temps. També hi ha una reflexió a la pantalla. Anem, aquí anem - es pot moure a la pantalla perquè també hi ha peces d'un trencaclosques - oh, sé el que és, és perquè també veure la pantalla del projector darrere meu. Així que tenim una mica d'infinit El que passa allà. Molt bé, així que vaig a jugar aquí. Això és. Així també hi ha una peça del trencaclosques que diu, quan vostè veu el moviment per sota de un dels sprites, vostè pot haver d'anar amunt, avall, esquerra, dreta o similars. Així que tenim una mica de la realitat virtual passant aquí també, tot això dins del confins del meu navegador, només aquí amb la meva webcam. Quin és llavors l'horitzó. El primer conjunt de problemes, com es veurà, o el lloc web estarà en línia més endavant aquesta nit a cs50.net, és bastant hi ha molt a fer per ser de composició oberta. I posar en pràctica un projecte de Scratch del seu interès, un joc, una interacció, quelcom artístic, i el repte d'utilitzar qualsevol nombre d'aquestes peces del trencaclosques. I pot ser interactiu d'aquesta manera. O pot ser una mica més deliberada fet d'explicar una història. I, de fet, aquí és on anem a acabar fora avui, amb un últim exemple. Déjame anar a zero a nivell local. Deixin-me seguir endavant i obrir això, i joc un últim programa escrit per un dels seus predecessors, és a dir, que un aquí. Bé, pugi el volum per aquest. [Reproducció de música] NARRADOR: En la següent CS50, David Convida un voluntari a l'escenari. DAVID Malan: Per a aquesta demostració, anem a necessitar un voluntari. T'agradaria venir a baix? Com et dius? Canviant de tema.