1 00:00:07,360 --> 00:00:09,360 [Powered by Google Translate] NATE Hardison: Kun olet saanut useita ohjelmia auki 2 00:00:09,360 --> 00:00:11,250 tietokone, se tuntuu kaiken olevan 3 00:00:11,250 --> 00:00:12,880 käynnissä samaan aikaan. 4 00:00:12,880 --> 00:00:15,350 Esimerkiksi, saatat olla työskentelevät selaimella, kuten 5 00:00:15,350 --> 00:00:19,360 Firefox tai Internet Explorer, kuunnella musiikkia iTunesiin, 6 00:00:19,360 --> 00:00:21,490 ja esseen kirjoittaminen Wordissa. 7 00:00:21,490 --> 00:00:24,240 Kuitenkin konepellin alla, ohjelmat todellisuudessa 8 00:00:24,240 --> 00:00:25,830 suorittaa yksi kerrallaan. 9 00:00:25,830 --> 00:00:29,750 Se on työtä käyttöjärjestelmä, Windows, Mac OSX, tai 10 00:00:29,750 --> 00:00:33,070 Linux, hallita jokainen erillisiä prosesseja, kuten 11 00:00:33,070 --> 00:00:35,900 ohjelmat ovat tunnettuja, ja vaihtaa niiden välillä siten, että kun 12 00:00:35,900 --> 00:00:38,610 mennä tarkistaa Facebook-sivun työstää essee 13 00:00:38,610 --> 00:00:41,590 uudelleen, Word on yksi, joka on käynnissä. 14 00:00:41,590 --> 00:00:44,890 >> Joskus kuitenkin haluamme itse ohjelmia pystyä 15 00:00:44,890 --> 00:00:47,440 tehdä useita asioita, kuten tämäkin. 16 00:00:47,440 --> 00:00:49,630 Jos olet kuten minä, sinulla todennäköisesti on joukko 17 00:00:49,630 --> 00:00:52,730 erilaisia ​​välilehtiä auki selaimessasi, yksi sähköpostin, 18 00:00:52,730 --> 00:00:55,070 yksi kalenteri, ja niin edelleen. 19 00:00:55,070 --> 00:00:58,270 Voisimme hoitaa kukin välilehti erillisenä ohjelma tai prosessi, 20 00:00:58,270 --> 00:01:01,300 kuten Google Chrome tekee, mutta monet ohjelmat käyttävät 21 00:01:01,300 --> 00:01:04,430 kevyempiä versiota prosessia kutsutaan säiettä. 22 00:01:04,430 --> 00:01:07,190 >> Lanka on vain yksi yksikkö käsittely, joukko 23 00:01:07,190 --> 00:01:10,100 ohjeita tai koodia, joka voi "ajaa", lainaus lainaus päättyy, 24 00:01:10,100 --> 00:01:12,560 samanaikaisesti muiden kierteet. 25 00:01:12,560 --> 00:01:15,150 Tämä tekee mahdolliseksi voit selata Facebook 26 00:01:15,150 --> 00:01:17,940 kuunnellessa minulle taustalla tai kaksi 27 00:01:17,940 --> 00:01:20,790 YouTube-videoita pelaa samaan aikaan. 28 00:01:20,790 --> 00:01:24,660 Joten tämä yleinen aihe, kutsutaan samanaikaisuuden, tyypillisesti 29 00:01:24,660 --> 00:01:26,930 ei tule niin aikaisin tietojenkäsittelytieteen kursseja 30 00:01:26,930 --> 00:01:29,790 koska alemman tason tiedot vaativat keskustelua 31 00:01:29,790 --> 00:01:31,930 käyttöjärjestelmiä ja vastaavia. 32 00:01:31,930 --> 00:01:34,170 Kuitenkin ohjelmointikieli käytämme 33 00:01:34,170 --> 00:01:38,000 alussa CS50, Scratch, tarjoaa joitakin näppäriä työkaluja 34 00:01:38,000 --> 00:01:40,390 helpompi kirjoittaa ohjelmia useita asioita 35 00:01:40,390 --> 00:01:42,390 meneillään kerralla. 36 00:01:42,390 --> 00:01:45,050 >> Kun rakentaa Scratch ohjelmia, olet jatkuvasti 37 00:01:45,050 --> 00:01:46,760 kanssa kierteet. 38 00:01:46,760 --> 00:01:49,770 Kunkin Scratch-skripti, joka on koodin lohko, joka alkaa 39 00:01:49,770 --> 00:01:52,600 yksi "kun" palapelin palaset, voidaan ajatella 40 00:01:52,600 --> 00:01:54,380 erillisenä säiettä. 41 00:01:54,380 --> 00:01:58,040 Katsotaanpa yksinkertainen Scratch ohjelman nähdä miten tämä toimii. 42 00:01:58,040 --> 00:02:01,730 >> Täällä meillä kala esine tai sprite, kaksi skriptejä 43 00:02:01,730 --> 00:02:05,000 että molemmat alku kun klikkaa pieni vihreä lippu painiketta. 44 00:02:05,000 --> 00:02:07,290 Ensimmäinen käsikirjoitus ohjaa kalan liikettä. 45 00:02:07,290 --> 00:02:09,850 Kun vihreä lippu napsautetaan, kala saa sijoittaa 46 00:02:09,850 --> 00:02:12,450 vasemmalla puolella näytön, jota kutsutaan vaiheessa, 47 00:02:12,450 --> 00:02:14,090 oikealta. 48 00:02:14,090 --> 00:02:17,070 Sitten joukko ohjeita, jotka juoksee ikuisesti, kunnes 49 00:02:17,070 --> 00:02:20,270 lopettaa ohjelman, kala liukuu oikealle puolelle, 50 00:02:20,270 --> 00:02:22,900 kääntyy, menee takaisin vasemmalle puolelle ja 51 00:02:22,900 --> 00:02:24,470 kääntyy uudelleen. 52 00:02:24,470 --> 00:02:27,410 Toinen käsikirjoitus ohjaa kalan ajattelua. 53 00:02:27,410 --> 00:02:29,290 On käynyt ilmi, että tämä on nälkäinen kala. 54 00:02:29,290 --> 00:02:32,080 Joten kun odottaa 3 sekuntia, kalat ajattelevat, 55 00:02:32,080 --> 00:02:34,420 "Olen nälkäinen" neljättä toinen. 56 00:02:34,420 --> 00:02:36,440 Tämä skripti toimii myös ikuisesti. 57 00:02:36,440 --> 00:02:38,940 Ja kuten näemme, mistä käynnissä ohjelma klikkaamalla 58 00:02:38,940 --> 00:02:41,730 vihreä lippu, molemmat skriptit näyttävät toteuttaa 59 00:02:41,730 --> 00:02:43,100 samanaikaisesti. 60 00:02:43,100 --> 00:02:46,460 Kala liikkuu ja ajattelee samaan aikaan. 61 00:02:46,460 --> 00:02:49,030 >> Koska huono kala näyttää niin nälkäinen, lisätään joissakin 62 00:02:49,030 --> 00:02:50,670 cheesy haikua sitä syödä. 63 00:02:50,670 --> 00:02:53,060 Toivottavasti ne eivät hajoa vedessä. 64 00:02:53,060 --> 00:02:55,560 Kun tähän lisätään toisessa sprite, me myös voitava 65 00:02:55,560 --> 00:02:58,020 lisätä skriptejä joka vastaa sprite. 66 00:02:58,020 --> 00:02:59,580 Ja näin ollen siellä tulee olla toinen joukko 67 00:02:59,580 --> 00:03:00,830 säikeiden juoksee. 68 00:03:03,590 --> 00:03:06,270 Voit antaa käyttäjälle ohjelmamme valvoa, kun 69 00:03:06,270 --> 00:03:09,340 nälkäinen kala saa ruokaa, sanotaanko että aina Space 70 00:03:09,340 --> 00:03:11,840 Baari on osuma, cheesy tyynyt näkyvät vaiheessa 71 00:03:11,840 --> 00:03:13,300 kalaa syödä. 72 00:03:13,300 --> 00:03:15,760 Ennen kuin välilyöntiä, me haluamme pitää cheesy 73 00:03:15,760 --> 00:03:19,020 puffs piilossa niin että kalat eivät näe niitä. 74 00:03:19,020 --> 00:03:21,140 Voit tehdä tämän, tarvitsemme pari skriptit 75 00:03:21,140 --> 00:03:22,750 cheesy suihketta sprite. 76 00:03:22,750 --> 00:03:26,980 Ensimmäinen käsikirjoitus, vihreä lippu, joka vain piilottaa ruokaa. 77 00:03:26,980 --> 00:03:29,530 Toisin kuin muut komentosarjat olemme kirjoittaneet, tämä ei pidä 78 00:03:29,530 --> 00:03:30,560 käynnissä ikuisesti. 79 00:03:30,560 --> 00:03:33,250 Se alkaa ja päättyy hyvin nopeasti, oikealla kun klikkaa 80 00:03:33,250 --> 00:03:35,000 Vihreä lippu-painiketta. 81 00:03:35,000 --> 00:03:37,180 >> Seuraava skripti meillä odottaa Space Bar on 82 00:03:37,180 --> 00:03:39,590 painetaan ennen sen suorittamista. 83 00:03:39,590 --> 00:03:42,770 Voimme kutsua odottaa käyttäjän syötettä "odottaa" tai "kuuntelee" 84 00:03:42,770 --> 00:03:43,860 tapahtumaan. 85 00:03:43,860 --> 00:03:46,750 Ja koodi, joka suoritetaan, kun tapahtuma on saanut tai 86 00:03:46,750 --> 00:03:50,280 kuullut kutsutaan tapahtuman käsittely koodi. 87 00:03:50,280 --> 00:03:53,550 Meidän Space Bar tapahtumakäsittely näyttää cheesy suihketta päälle 88 00:03:53,550 --> 00:03:56,330 näytön niin, että kalat voivat syödä niitä. 89 00:03:56,330 --> 00:03:58,880 Tässä vaiheessa kaikki on hyvä. 90 00:03:58,880 --> 00:04:00,990 >> Seuraava asia meidän täytyy tehdä, on selvittää, miten saada 91 00:04:00,990 --> 00:04:03,570 kalat ymmärtää, että siellä on ruokaa. 92 00:04:03,570 --> 00:04:06,030 Katsotaanpa lisätä toisen langan kalat jatkuvasti 93 00:04:06,030 --> 00:04:08,790 tarkistaa onko se koskettaa cheesy suihketta. 94 00:04:08,790 --> 00:04:11,510 Teemme tämän erillisen säikeen, koska näin voimme 95 00:04:11,510 --> 00:04:13,710 jatkuvasti tarkistaa ruokaa. 96 00:04:13,710 --> 00:04:16,829 Muuten olisimme vain voi tarkistaa säännöllisesti ruokaa 97 00:04:16,829 --> 00:04:21,180 välillä luisto, kääntää ympäri, odottamassa, tai ajattelua. 98 00:04:21,180 --> 00:04:22,000 >> OK. 99 00:04:22,000 --> 00:04:23,785 Nyt ajaa meidän Scratch ohjelmaa. 100 00:04:23,785 --> 00:04:26,921 Kuten odotettua, ruoka välittömästi piilottaa ja 101 00:04:26,921 --> 00:04:28,920 nälkäinen kala ui edestakaisin aivan kuten ennen. 102 00:04:32,050 --> 00:04:35,060 Kun me välilyöntiä, cheesy tyynyt tulevat näkyviin, 103 00:04:35,060 --> 00:04:37,470 ja nälkäinen kala sanoo whoo. 104 00:04:37,470 --> 00:04:39,340 Mutta hetkinen, se on outoa. 105 00:04:39,340 --> 00:04:42,150 Miten tulla kalan "Olen nälkäinen" ajatus keskeyttää 106 00:04:42,150 --> 00:04:43,580 muita juttuja? 107 00:04:43,580 --> 00:04:45,780 Tämä johtuu siitä, että emme ole asettanut yhteensovittamisen 108 00:04:45,780 --> 00:04:47,590 välillä kolme kalaa skriptejä. 109 00:04:47,590 --> 00:04:50,610 Jokainen toimii omalla lanka, tietämättömänä mitä 110 00:04:50,610 --> 00:04:52,120 muut tekevät. 111 00:04:52,120 --> 00:04:54,980 Katsotaanpa korjata ennen kuin siirrymme. 112 00:04:54,980 --> 00:04:57,700 >> Välinen koordinointi kierteet on hankala tehtävä, sillä me 113 00:04:57,700 --> 00:05:00,940 ei ole nimenomaisia ​​valvoa kun jokainen lanka loppuu tai 114 00:05:00,940 --> 00:05:02,190 ei toimi. 115 00:05:02,190 --> 00:05:04,710 Jos haluat lähettää viestin yhdeltä lanka toiseen, tarvitsemme 116 00:05:04,710 --> 00:05:08,300 käyttää muuttujaa että voimme asettaa, tai kirjoittaa, yhden säikeen 117 00:05:08,300 --> 00:05:10,170 ja lukea muiden. 118 00:05:10,170 --> 00:05:12,920 Luodaan muuttuja nimeltä foodFound että voimme asettaa 119 00:05:12,920 --> 00:05:15,530 totta, kun kala joutuu cheesy suihketta. 120 00:05:15,530 --> 00:05:17,540 No, tietysti, haluamme varmistaa, että asetamme sen 121 00:05:17,540 --> 00:05:19,240 false aluksi. 122 00:05:19,240 --> 00:05:22,540 Sitten kala ajattelussa lanka, me tarkistamme onko 123 00:05:22,540 --> 00:05:25,400 kala on löytänyt ruokaa ennen näyttämistä "Olen nälkäinen" 124 00:05:25,400 --> 00:05:26,770 ajatteli kupla. 125 00:05:26,770 --> 00:05:29,670 >> Nyt käynnissä ohjelman uudelleen, näemme, että kalat 126 00:05:29,670 --> 00:05:31,580 ei saa keskeyttää ajatuksilla nälkä kun 127 00:05:31,580 --> 00:05:33,820 cheesy suihketta ovat poissa. 128 00:05:33,820 --> 00:05:36,820 Viimeinen ongelma meillä on, että cheesy tyynyt eivät mene 129 00:05:36,820 --> 00:05:39,800 pois, kun kala, lainatakseni lainaus päättyy, "syö" niitä. 130 00:05:39,800 --> 00:05:42,305 Kaloja skriptejä, ei ole helppo tapa piilottaa cheesy 131 00:05:42,305 --> 00:05:44,710 puffs, joten meidän täytyy lähettää viestin cheesy suihketta 132 00:05:44,710 --> 00:05:46,780 sprite piiloutua. 133 00:05:46,780 --> 00:05:49,550 Voisimme tehdä tästä toisen muuttujan että cheesy suihketta 134 00:05:49,550 --> 00:05:52,680 sprite on pääsy, sekä kalan sprite. 135 00:05:52,680 --> 00:05:55,720 >> Kuitenkin on olemassa puhtaampi tapa tehdä tämä tässä tapauksessa, 136 00:05:55,720 --> 00:05:57,840 koska lähettämisen sijaan viestin kirjoitus, joka on 137 00:05:57,840 --> 00:06:00,570 jossain keskellä suorituksen, voimme lähettää 138 00:06:00,570 --> 00:06:03,710 viestin skripti, joka odottaa aloittaa. 139 00:06:03,710 --> 00:06:07,360 Teemme tämän ottaa kala lähettää tapauksessa yksi käymme 140 00:06:07,360 --> 00:06:08,800 soita syönyt. 141 00:06:08,800 --> 00:06:11,510 Sitten luomme käsikirjoituksen cheesy puffs joka 142 00:06:11,510 --> 00:06:13,030 odottaa tätä tapahtumaa. 143 00:06:13,030 --> 00:06:15,560 Tämä on samanlainen kuin välilyöntinäppäintä tapauksessa, paitsi että tämä 144 00:06:15,560 --> 00:06:19,250 aika, käyttäjä ei yksi suoraan laukaisee tapahtuman. 145 00:06:19,250 --> 00:06:22,800 Nyt meidän täytyy tehdä, on asettaa meidän foodFound muuttuja takaisin 146 00:06:22,800 --> 00:06:25,750 arvoksi false, ja voimme nyt antaa nälkäinen kala niin monta 147 00:06:25,750 --> 00:06:28,470 annosta cheesy tyynyt koska se haluaa. 148 00:06:28,470 --> 00:06:30,040 >> Joten ei ole kovin paha, eikö? 149 00:06:30,040 --> 00:06:33,400 C-, kirjoitus-monisäikeinen ohjelmia on monimutkaisempi, 150 00:06:33,400 --> 00:06:35,700 mutta perusasiat ovat samat. 151 00:06:35,700 --> 00:06:38,690 Anyway, toivottavasti on hyvä aika rakentaa hauskaa 152 00:06:38,690 --> 00:06:41,030 samanaikainen ohjelmia Scratch. 153 00:06:41,030 --> 00:06:42,570 Nimeni on Nate Hardison. 154 00:06:42,570 --> 00:06:45,260 Tämä on CS50.