Hallo en welkom.
Zijn jullie klaar voor een nieuwe uitdaging?
Ik weet dat ik dat ben.
Nu we klaar zijn met praten over lussen, laten we ze toepassen.
Laten we proberen erachter te komen hoe een probleem op te lossen.
Dus in deze uitdaging ga je maak een gok het nummer c programma.
Het gaat best gaaf worden.
Het wordt een klein spelletje.
Wat er gaat gebeuren is jouw programma
gaat een willekeurig getal van 0 tot 20 genereren.
Nadat je dat hebt gegenereerd willekeurig getal, je gaat de
gebruiker vragen om te raden wat het is.
Dus de gebruiker zou alleen in staat moeten zijn: cijfers van 0 tot 20 in te voeren.
Als ze proberen te raden zoals de nummer 50, je geeft een
foutmelding weer en zegt: hé, dat kan! voer alleen cijfers in van 0 tot 20.
Dat is dus een bepaling.
Maar zodra de gebruiker daadwerkelijk een raden en het is een geldige gok,
dan ga je de gebruiker vertellen of of niet, ze waren te hoog of te laag.
Of als ze correct waren, zul je scherm met de mededeling dat ze correct zijn
en dat ze het spel zullen winnen.
Nu hebben ze alleen een bepaalde aantal keren dat ze het
juiste aantal kunnen raden.
Ze kunnen alleen maar raden het getal 5 keer.
Na vijf keer verliezen ze het spel.
Dus deze game draait helemaal om het juiste aantal raden.
Elk nummer van 0 tot 20, u wilt valideer de invoer van de gebruiker om er zeker van te zijn
dat ze zijn ingevoerd voor 0 van 20.
En als ze iets hebben ingevoerd en ze... heb minder dan 5 pogingen, je gaat ze vertellen,
hey, dit was te hoog of, hé, dit was te laag dan het aantal
dat ze zouden moeten raden.
En dat zijn de basis vereisten van het programma, een
basisspel van het type nummer.
Hoe ziet de uitvoer er nu uit.
Om je een idee te geven hoe ik ontworpen, wilt u misschien volgen.
Deze. Toen ik voor het eerst begon met de programma, heb ik een klein bericht weergegeven.
Ik zei dat dit een raadspel is, zodat ze weten wat er aan de hand is.
Ik vertelde hen toen dat ik heb kies een getal tussen 0 en
20, dat je moet raden.
Je hebt nog vijf pogingen om te raden.
Ik zei toen: voer een schatting in.
Ze werden verondersteld om hun gok in te voeren.
Ze hebben 12 ingevoerd en ik heb geprint uit, sorry 12 is verkeerd, mijn nummer
is minder dan dat.
En toen liet ik je zien heb nog vier pogingen over.
Toen voerden ze een gok in van 8, en ik zei, nou, 8 is ook
verkeerd, mijn aantal is minder dan dat.
En toen kwamen ze binnen bij 3, ik zei dat ze had nog 3 pogingen over, ze kwamen binnen 4.
Ik zei dat 4 niet klopt.
En toen hadden ze 2 pogingen vertrokken, en ze
raadden eindelijk mijn nummer, dat was 2.
Toen ze het juiste aantal hadden geraden, Ik heb ze gefeliciteerd, je
raadt het al, dus ze hebben de wedstrijd gewonnen omdat ze nog 2 pogingen over hadden.
Het is een basistype van eenvoudig spel waar je if-statements
moet gebruiken, ga je om while-loops te gebruiken.
Dus je zult een moeten gebruiken loop hier in
omdat je om invoer moet blijven vragen totdat de gebruiker correct heeft geraden of totdat
het aantal pogingen meer dan 5 was.
Dus een van de beste manieren om een programma als dit starten is om op te schrijven hoe
het met je gaat om het programma op papier te maken.
En ik zou je aanraden om dat te doen want als je op papier opschrijft hoe
je het probleem gaat aanpakken, het zal gemakkelijker op te lossen zijn.
En je kunt het uitschrijven in pseudocode, dus het is
gewoon Engels, maar je wilt je identificeren waar ga je de lussen hebben en
waar ga je de if . hebben verklaringen om te controleren op voorwaarden.
Want als je hier naar kijkt output, er zijn veel voorwaarden waar
u op moet letten.
De while-lus gaat controleren voor voorwaarden of de for-lus die het gaat controleren om
er zeker van te zijn dat het verlaat de lus als je het goed hebt geraden of als
je hoger bent dan 5 voor pogingen.
Je zult voorwaarden hebben om valideren ook wat ze hebben ingevoerd.
Dus je krijgt een if-statement om te zeggen, hey,
je hebt zojuist een nummer ingevoerd.
En als het niet tussen 0 en 20 . is en dat kan zijn dat je misschien ook
een geneste lus wilt hebben voor dat geval.
Omdat je wilt blijven vragen om een ander nummer in te
voeren totdat ze een geldig nummer invoeren, niet het juiste getal dat je geraden
hebt, maar een geldig getal.
Hier kon ik dus voor kijken programmeer een buitenste lus.
De buitenste lus zou de lus zijn die de gebruiker gevraagd om cijfers in te voeren
totdat ze de . hebben geraden juiste aantal of totdat ze hun
aantal pogingen hebben gehaald.
Ik kon een innerlijke lus zien waar het vraagt of het nummer niet geldig is tussen 0
en 20, ze blijven vragen de gebruiker om een geldig nummer in te voeren.
En dan kan ik zien of verklaringen controleer in principe of
het aantal te laag, te hoog of gelijk is.
Omdat je meerdere uitgangen hebt voorwaarden voor je buitenste
lus, of je het nu al geraden hebt correct is of dat de
getallen gelijk zijn aan een goede case voor het gebruik van een break-statement.
Want onthoud, je gebruikt de break-instructie wanneer u
meerdere uitgangen heeft.
En zo zou je iets kunnen hebben in je buitenste lus die
zegt dat als ze goed raden, spring eruit.
En dan de toestand aan de buitenkant loop zelf in de while-lus of de for-lus
zelf, de voorwaarde x het zou zijn of het aantal pogingen
groter is dan 5.
Dus dat is één ontwerpbenadering.
Ik noemde veel dingen.
Het enige dat nog over is, heb je alles tot uw beschikking.
Als je alles hebt geleerd wat ik denk1d behalve deze generator voor willekeurige getallen.
Dit is nieuw.
Je weet wat je moet doen als uitspraken, je weet hoe je
loops moet doen, je weet hoe je variabelen declareert, je kent al die leuke dingen.
Je weet hoe je output moet afdrukken naar: het display, maar je weet niet hoe je
een random number generator moet doen.
Dus ik ga geven jij de code daarvoor.
U moet een willekeurig getal genereren.
Omdat elke keer dat u de programma, wil je een nieuw nummer
hebben dat ze kunnen raden.
Dus om een willekeurig getal te genereren van 0 tot 20, dit zijn de
stappen die u moet volgen.
Eerst moet je er nog 2 toevoegen bibliotheken, de stdlib. h, tijd. H.
Dus je wilt deze toevoegen: richtlijnen bovenaan uw bestand.
sdtlib. h zal u toestaan om te gebruiken de srand-functie, waarmee
u willekeurige getallen kunt genereren.
Tijd. h stelt u in staat om de seed voor het willekeurige getal met behulp van
de tijd, waarbij de huidige tijd wordt verkregen.
Dus als we extra bibliotheken buiten ons programma, het betekent alleen dat
we willen optreden wat extra functionaliteit.
We hebben het nog niet over alle standaardbibliotheken die met c worden
geleverd, maar ze komen met 2 mooie degenen om de huidige tijd te krijgen en ook
om een willekeurige te genereren nummer dat we gaan gebruiken.
Dus die nemen we eerst op 2 richtlijnen bovenaan.
Dan gaan we een maken variabele
in onze hoofdfunctie genaamd time_t, en jij kan het gewoon t noemen, dat voeg je toe.
Zodra u uw tijdvariabele heeft toegevoegd, kan uw generator voor willekeurige getallen
initialiseren met behulp van de srand-functie.
Dus wat je doet is srand zeggen.
Dit levert een zaadje op de willekeurige generator, het wordt alleen gebruikt
om het te initialiseren.
En hier kopieer je gewoon deze regel van code srand ((niet ondertekend) en dan tijd en dan pas je
een ampersand t.
Ik hoef het niet eens te begrijpen wat deze code
doet, kopieer en plak hem gewoon.
Maar het genereert een willekeurig, het initialiseert de generator
voor willekeurige getallen.
Nadat u a . hebt geïnitialiseerd random number generator,
je moet het nummer genereren.
En alles wat je doet om de getal zeg je
rand, je roept een functie aan met de naam rand en jij zeg %21 dat is een module omdat je wilt
dat deze tussen 0 . ligt en 21, gebruik je 21 hard-coded.
U kunt dat willekeurige nummer opslaan in een geheel getal, en dat is het getal
dat je gaat vergelijken tegen om de lus te verlaten, ongeacht of
ze goed geraden hebben.
Het wordt ook het nummer die je vergelijkt met uh om
te bepalen of u print te laag of te hoog.
Dit moet dus heel leuk zijn.
Nogmaals, veel concepten die je gaat worden blootgesteld
aan if-statements, looping-constructies, de break statement, binnen- en buitenlussen, geneste
lussen, een heleboel leuke dingen.
Dus veel succes, veel plezier, en ik zal een oplossing bieden in
de volgende lezing. Dank u.