1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA Chan: Estu la salto en Mario. 3 00:00:11,070 --> 00:00:14,850 Mario estas programo kie ni fari nian propran, kvankam primitiva, versio de 4 00:00:14,850 --> 00:00:17,760 klasika Super Mario Brothers ludo fono. 5 00:00:17,760 --> 00:00:21,100 Por ĉi tiu problemo aro, ni iras amuzi la duono-piramido por 6 00:00:21,100 --> 00:00:23,000 Mario salti plu. 7 00:00:23,000 --> 00:00:27,330 Nia programo estos interaga, do demandos la uzanton al eniro certa 8 00:00:27,330 --> 00:00:28,660 alteco por la piramido. 9 00:00:28,660 --> 00:00:32,920 Kaj la programo presos ekster duon-piramido de tiu alteco, kie la 10 00:00:32,920 --> 00:00:37,390 malsupro maldekstra hash vicigas kun la fundo maldekstra angulo de la fina stacio 11 00:00:37,390 --> 00:00:39,710 eligo fenestro. 12 00:00:39,710 --> 00:00:44,870 >> Ni rompi tiun problemon en du partojn, unu, get Uzanta enigo, kaj du, 13 00:00:44,870 --> 00:00:47,040 elprinti la piramido. 14 00:00:47,040 --> 00:00:51,150 Memoru, ke kvankam la GetInt funkcio estos elsxuti entjero, vi 15 00:00:51,150 --> 00:00:56,260 devas certigi ke tiu enigo faras senson por via programo, do en 16 00:00:56,260 --> 00:00:59,690 Mario, ĝi ne faros nur produkto por entjero. 17 00:00:59,690 --> 00:01:03,440 Vi bezonos por certigi ke la uzanto enigoj entjero kiu estas ene de la 18 00:01:03,440 --> 00:01:06,985 suba kaj supra limojn de la piramido, ke vi povas presi. 19 00:01:06,985 --> 00:01:12,300 Per ĉi tiu specifo, ĉi tiu estas 0 kaj 23 inkluziva. 20 00:01:12,300 --> 00:01:16,410 Se la uzanto enigas entjero ekstere de nia akceptita baroj, tiam ni volas 21 00:01:16,410 --> 00:01:20,840 instigi ilin denove kaj denove ĝis Ili donu al ni valida entjero. 22 00:01:20,840 --> 00:01:25,990 >> Unu maniero certigi korekta Uzanta enigo estas uzante Do-Dum buklo, kiu estas 23 00:01:25,990 --> 00:01:28,100 tre simila al Dum buklo. 24 00:01:28,100 --> 00:01:32,580 La Do-Dum buklo ekzekutas la kodo interne de la korpo fojon, kaj tiam kontrolas 25 00:01:32,580 --> 00:01:35,270 ĉu la kondiĉo estas konis aŭ ne. 26 00:01:35,270 --> 00:01:38,830 Ĉi tio estas utila por akiri Uzanta enigo ĉar vi scias, ke vi bezonas 27 00:01:38,830 --> 00:01:41,805 instigi ilin almenaŭ unufoje. 28 00:01:41,805 --> 00:01:45,940 Se la kondiĉo ne konis, la programo faros la linion post 29 00:01:45,940 --> 00:01:47,270 via Do-Dum buklo. 30 00:01:47,270 --> 00:01:50,950 Se la kondiĉo estas konita, kvankam, la ciklo ripetos. 31 00:01:50,950 --> 00:01:55,560 >> Al Do-Dum buklo por validigi uzanto enigo aspektos iu kiel ĉi tio. 32 00:01:55,560 --> 00:02:02,920 Mi deklaras variablon n, GetInt, kaj ripeti gxis n estas valida. 33 00:02:02,920 --> 00:02:06,270 Memoru ke kiam vi deklaras vian variablo, ĝi bezonas la taŭgajn 34 00:02:06,270 --> 00:02:08,449 medion, samkiel en Scratch. 35 00:02:08,449 --> 00:02:12,510 Se mi deklarus n ene mia Do-Dum buklo, la resto de la programo ne estos 36 00:02:12,510 --> 00:02:13,750 povis konsenti ĝin. 37 00:02:13,750 --> 00:02:16,100 Ĝi estas limigita al la randoj de la krispa krampoj. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Bone, do nun kiam ni validigita la uzanto enigo, ni vere bezonas 40 00:02:23,090 --> 00:02:25,020 desegni ĉi duon-piramido. 41 00:02:25,020 --> 00:02:29,700 Ĝi estas formita de presitaj signoj, do ni faru duon-piramido en simpla 42 00:02:29,700 --> 00:02:31,480 tekstoredaktilo. 43 00:02:31,480 --> 00:02:35,920 Se ni volas fari Mario stilo piramido de alteco tri kiu estas vicigitaj 44 00:02:35,920 --> 00:02:41,370 sur la maldekstra flanko de nia fenestro, tiam ni volas tajpi du hashes, klaku Enter, 45 00:02:41,370 --> 00:02:47,180 tiam tajpi tri hashes, klaku Enter, kaj poste tajpi kvar. 46 00:02:47,180 --> 00:02:51,090 >> Sed en ĉi tiu problemo aro, nia duone piramido devas esti ĝuste vicigitaj. 47 00:02:51,090 --> 00:02:55,550 Uzanta norma klavaro, kiom eble vi modifas ĉi tiun dosieron por movi hashes 48 00:02:55,550 --> 00:02:57,210 super la dekstra flanko? 49 00:02:57,210 --> 00:03:03,190 Mi povus uzi por substrekoj, du en la supera linio kaj unu en la dua. 50 00:03:03,190 --> 00:03:07,690 Tio ne aspektas kiel agrabla, kvankam, do ni anstataŭas la substrekoj kun 51 00:03:07,690 --> 00:03:12,450 spacoj, kaj tie ni havas duon-piramido de alteco tri. 52 00:03:12,450 --> 00:03:16,330 >> Provu kaj memoru tiun tekstoredaktilo Ekzemple kiel vi komencas pensi reen al 53 00:03:16,330 --> 00:03:20,100 C. Ni provu kaj eltrovi iun speco de ŝablono, ke ni povas 54 00:03:20,100 --> 00:03:22,750 meti en buklo konstruo. 55 00:03:22,750 --> 00:03:27,570 Prenu ekzemple alteco, diru ok, kaj vidu se vi povas komenci 56 00:03:27,570 --> 00:03:29,470 supreniru kun ŝablono. 57 00:03:29,470 --> 00:03:34,710 La unua vico havos sep spacoj sekvata de du hashes. 58 00:03:34,710 --> 00:03:40,090 La dua vico havos ses spacoj kaj tri hashes, kaj tiel plu ĝis la 59 00:03:40,090 --> 00:03:41,440 oka vico. 60 00:03:41,440 --> 00:03:45,210 >> Sed kiel vi reprezentus la n-a vico? 61 00:03:45,210 --> 00:03:48,170 Memoru ke programado konvencio estas nulo indeksita. 62 00:03:48,170 --> 00:03:51,870 Tio signifas ke vi komencas rakonti al nulo, do la unua vico estas teknike 63 00:03:51,870 --> 00:03:57,110 vico nombro nulo kun du lukoj, vico numero unu havas tri hashes, vico 64 00:03:57,110 --> 00:04:01,860 numero du havas kvar hashes, do sekvaj ĉi ŝablono por ĉiu vico 65 00:04:01,860 --> 00:04:05,800 nombro n, ekzistas n plus 2 hashes. 66 00:04:05,800 --> 00:04:09,270 Mi lasos ĝin al vi, kvankam, trovi el la desegnon por la spacoj. 67 00:04:09,270 --> 00:04:12,240 Memoru ke via ŝablono estos iomete malsama se vi elektos 68 00:04:12,240 --> 00:04:16,649 komenci vian grafo de unu kaj ne nulo. 69 00:04:16,649 --> 00:04:19,560 >> Nun, vi havas bildon por iu abstrakta vico n. 70 00:04:19,560 --> 00:04:25,190 Vi scias kiom da spacoj por presi kaj kiom da hashes, do por ĉiu vico, ke 71 00:04:25,190 --> 00:04:26,270 numeron ŝanĝos. 72 00:04:26,270 --> 00:04:30,700 Sed la sama procezo de presado oni sola karaktero, ĉu spaco aŭ 73 00:04:30,700 --> 00:04:33,200 hash, ripetas. 74 00:04:33,200 --> 00:04:37,470 Do ĉiuj devas fari estas ree presi tiun karakteron por tiom da fojoj 75 00:04:37,470 --> 00:04:40,120 kiel via mastro determinas. 76 00:04:40,120 --> 00:04:42,522 >> Nu do kiel ni ripetu procezoj? 77 00:04:42,522 --> 00:04:45,160 En Scratch, ni uzis la ripeto bloko. 78 00:04:45,160 --> 00:04:48,580 En C, ni uzas Por buklo. 79 00:04:48,580 --> 00:04:51,290 Ni rigardu la sintakso por Ĉar maŝojn. 80 00:04:51,290 --> 00:04:57,140 >> Ĉiu Por buklo estas formita de tri partoj, inicialización, kondiĉo, 81 00:04:57,140 --> 00:04:58,592 kaj ĝisdatigo. 82 00:04:58,592 --> 00:05:01,550 Via Por buklo estos pravalorizi variablo kiam ĝin unue 83 00:05:01,550 --> 00:05:02,960 eniras la Por iteracio. 84 00:05:02,960 --> 00:05:07,100 Se la kondiĉo estas konita, la korpo de la buklo faros. 85 00:05:07,100 --> 00:05:10,070 Poste, la ĝisdatigo faros. 86 00:05:10,070 --> 00:05:13,630 >> Se la kondiĉo estas ankoraŭ renkontis, la buklo ekzekutos kaj ĝisdatigi kaj 87 00:05:13,630 --> 00:05:18,580 ripeti tiel longe kiel via kondiĉo taksas al True. 88 00:05:18,580 --> 00:05:21,450 Vi estas kondiĉo devas eventuale valuate al falsa, kvankam, ĉar 89 00:05:21,450 --> 00:05:24,490 kontraste Scratch, ni ne havas neniun Forever maŝojn. 90 00:05:24,490 --> 00:05:28,270 Via programo devas finiĝi fine. 91 00:05:28,270 --> 00:05:32,330 >> Jen ekzemplo de Ĉar buklo kiun vi eble deziras uzi por Mario. 92 00:05:32,330 --> 00:05:36,790 La inicialización deklaras entjero i kun valoro 0. 93 00:05:36,790 --> 00:05:40,750 Tiel longe kiel i estas malpli ol la alteco, la korpon de la buklo ekzekutos kaj 94 00:05:40,750 --> 00:05:44,980 pliigi i per unu kaj ripeti ĝis mi estas pli granda ol aŭ 95 00:05:44,980 --> 00:05:47,220 egala al la alto. 96 00:05:47,220 --> 00:05:49,140 >> Nun, mia Por buklo estas nulo indekso. 97 00:05:49,140 --> 00:05:52,270 La Mez i komencas je nulo, ne unu. 98 00:05:52,270 --> 00:05:55,320 Se mi elektis unu, tiam mia kondiĉo farus ankaŭ esti malsamaj por 99 00:05:55,320 --> 00:05:58,740 la buklo de ekzekuti la sama nombro da fojoj. 100 00:05:58,740 --> 00:06:03,490 Memoru tion atente kiam vi estas elekti vian inicialización kaj via 101 00:06:03,490 --> 00:06:08,660 kondiĉo, kaj konsultas tiun streki duobligi ĉeko. 102 00:06:08,660 --> 00:06:13,430 >> Unu el la grandaj aĵoj pri komputilo scienco estas ke tie estas nur tiom da 103 00:06:13,430 --> 00:06:15,490 manieroj por ekzekuti aĵoj. 104 00:06:15,490 --> 00:06:19,450 Vi povas elekti, ĉu vi komenci ĉe nulo aŭ unu. 105 00:06:19,450 --> 00:06:22,380 Se vi ne volas uzi Por buklo, vi ankaŭ povas uzi Dum buklo al 106 00:06:22,380 --> 00:06:26,530 ripeti deklaroj tiel longe kiel vi observos la esenco de Ĉar buklo, 107 00:06:26,530 --> 00:06:31,430 inicialización, kondiĉo, kaj ĝisdatigon. 108 00:06:31,430 --> 00:06:36,890 Iam ni elkompreni la Por buklo kiun ni estas plej komforta kun, tiam ni 109 00:06:36,890 --> 00:06:38,450 povas kompletigi Mario. 110 00:06:38,450 --> 00:06:41,540 >> Ni unue kontrolis por uzanto enigo kaj poste identigis 111 00:06:41,540 --> 00:06:43,580 ŝablono por ĉiu vico n. 112 00:06:43,580 --> 00:06:49,990 Do por ĉiu vico de nulo al n minus 1 presos la taŭga nombro da 113 00:06:49,990 --> 00:06:55,340 spacoj, tiam la taŭga nombro da hashes laŭ nia mastro, kaj 114 00:06:55,340 --> 00:06:57,180 tiam nova linio. 115 00:06:57,180 --> 00:06:59,640 Kun tiu, vi havas vian piramido. 116 00:06:59,640 --> 00:07:02,630 Mia nomo estas Zamyla, kaj tio estis por Mario. 117 00:07:02,630 --> 00:07:11,765