1 00:00:00,000 --> 00:00:00,490 2 00:00:00,490 --> 00:00:03,350 HÖGTALARE 1: Låt oss skriva ett program med ett grafiskt användargränssnitt som även 3 00:00:03,350 --> 00:00:04,580 innefattar etiketten. 4 00:00:04,580 --> 00:00:07,940 Och i denna etikett, kommer vi att lagra nummer, om än som en sträng. 5 00:00:07,940 --> 00:00:10,880 Och vi kommer att uppdatera den etiketten igen, och igen, och igen. 6 00:00:10,880 --> 00:00:15,040 Så att vi i slutändan räknas ned från 50 till noll. 7 00:00:15,040 --> 00:00:20,910 Glabel, kalla det etikett, blir det returnera värdet av nya glabel. 8 00:00:20,910 --> 00:00:22,900 Nu, jag kommer inte att ge denna etikettvärde än, så jag ska 9 00:00:22,900 --> 00:00:25,040 sätta in citat, unquote. 10 00:00:25,040 --> 00:00:29,080 >> Nästa låt oss kalla setFont, passerar på etiketten, och låt oss gå in 11 00:00:29,080 --> 00:00:32,910 specifikt ett typsnitt som heter SansSerif 36 punkt. 12 00:00:32,910 --> 00:00:36,370 Ett teckensnitt som råkar existera inuti CS50 apparaten. 13 00:00:36,370 --> 00:00:41,940 Sedan slutligen, låt oss lägga till etiketten till fönstret som följer. 14 00:00:41,940 --> 00:00:44,580 Nu ska vi gå vidare för att framkalla en loop som kommer att räkna 15 00:00:44,580 --> 00:00:46,400 från 50 ned till noll. 16 00:00:46,400 --> 00:00:49,520 Och inom denna slinga, låt oss iterativt uppdatera etiketten och 17 00:00:49,520 --> 00:00:55,800 visa den på skärmen, för, int i blir 50, i är större än eller lika 18 00:00:55,800 --> 00:00:59,750 till noll, i minus, minus. 19 00:00:59,750 --> 00:01:02,090 >> Nu etiketter, visar det sig, måste vara strängar. 20 00:01:02,090 --> 00:01:04,110 Men jag är faktiskt räkna, med hjälp av heltal. 21 00:01:04,110 --> 00:01:07,750 Så på något sätt jag kommer att behöva konvertera heltal, i, till en sträng 22 00:01:07,750 --> 00:01:09,010 representation pil. 23 00:01:09,010 --> 00:01:12,480 För att göra så låt oss förklara char s fäste tre. 24 00:01:12,480 --> 00:01:15,500 Så att vi har tillräckligt med lagringsutrymme för tvåsiffrigt nummer, följt av en 25 00:01:15,500 --> 00:01:16,910 null terminator. 26 00:01:16,910 --> 00:01:22,480 Låt oss då samtal s utskrifts f passerar i s, som går i citat, 27 00:01:22,480 --> 00:01:24,220 unquote procent i.. 28 00:01:24,220 --> 00:01:26,960 Vilket visar att vi verkligen vill ha formatera ett heltal. 29 00:01:26,960 --> 00:01:29,420 Slutligen passerar in i sig själv. 30 00:01:29,420 --> 00:01:34,100 Med andra ord, s tryck F eller sträng print f, precis som tryck f, förväntar sig en 31 00:01:34,100 --> 00:01:37,450 formatsträng följt av några variabler att sätta in i det 32 00:01:37,450 --> 00:01:38,430 formatsträng. 33 00:01:38,430 --> 00:01:41,910 Men det är också emot är den första argument, den plats där du 34 00:01:41,910 --> 00:01:44,400 vill lagra strängen att du har representerat 35 00:01:44,400 --> 00:01:45,830 med den formatsträng. 36 00:01:45,830 --> 00:01:52,540 >> Så nästa, låt oss gå vidare och ringa in, etikett, som går i etiketten, som går i s.. 37 00:01:52,540 --> 00:01:56,430 Nu, äntligen, bara för att dessa etiketter bredd kommer att förändras över tiden som 38 00:01:56,430 --> 00:02:00,640 Vi räknar ner från 50, till 49, till prick, prick, punkt, till 9-8. 39 00:02:00,640 --> 00:02:03,170 Vilket inte är så omfattande som ett tvåsiffrigt nummer är. 40 00:02:03,170 --> 00:02:05,570 Låt oss fortsätta att räkna ut dynamiskt vad bredden på denna 41 00:02:05,570 --> 00:02:08,930 Etiketten ska vara och sedan se till att det är alltid centrerad på skärmen. 42 00:02:08,930 --> 00:02:12,390 Jag först ska förklara en dubbel, kalla det x, och jag sedan gå till 43 00:02:12,390 --> 00:02:16,880 lagra insidan av x, resultatet av get bredd, som passerar i bredden på 44 00:02:16,880 --> 00:02:22,120 hela fönstret, minus få bredd, passerar i etiketten. 45 00:02:22,120 --> 00:02:24,880 Sedan dela det hela med två. 46 00:02:24,880 --> 00:02:29,660 På samma sätt kommer jag att förklara y vara lika med få höjden på hela 47 00:02:29,660 --> 00:02:37,280 fönster, minus få höjd på bara etikett, och dividera det med två också. 48 00:02:37,280 --> 00:02:40,680 Slutligen kommer jag att ringa setlocation, passerar i etiketten, 49 00:02:40,680 --> 00:02:43,180 passerar i x, som går i y. 50 00:02:43,180 --> 00:02:45,970 Det genom att placera etikett på x kommatecken y. 51 00:02:45,970 --> 00:02:49,290 >> Slutligen, så att denna nedräkning inte ske för snabbt låt oss 52 00:02:49,290 --> 00:02:53,350 pausa, för säg, 100 millisekunder mellan varje uppdatering av etiketten. 53 00:02:53,350 --> 00:02:56,320 För att göra detta, kan vi kalla det paus funktion, som är definierat i 54 00:02:56,320 --> 00:03:00,390 Stanford bärbar bibliotek, helt enkelt som följer. 55 00:03:00,390 --> 00:03:04,230 >> Nu ska vi spara, sammanställa, och köra programmet. 56 00:03:04,230 --> 00:03:08,320 Gör etikett, punkt snedstreck, etikett. 57 00:03:08,320 --> 00:03:11,000 Där är min användargränssnitt räkna ner från 50. 58 00:03:11,000 --> 00:03:14,570 Räknar ner, och ner, och ner, och gjort. 59 00:03:14,570 --> 00:03:16,992