ZAMYLA CHAN: Kom ons pret met Vyftien. Vyftien is die eerste wedstryd wat jy te implementeer en dit is interaktiewe. Nou, om nie te bekommer nie. Jy hoef nie te skryf die hele ding jouself. Kyk na die verspreiding-kode omdat 'n Baie van die spel struktuur is reeds stel vir jou. Dit aanvaar en ontleed 'n command line argument van die gebruiker en skep 'n raad gebaseer op die insette. Dit gaan as die spel is gewen en uitgange Sodra die gebruiker se het die wedstryd gewen. En die wedstryd te wen, is dit kry toevoer van die gebruiker en roep die skuif funksie. So ons gaan word die uitvoering van vier funksies vir die spel van Vyftien, init, te teken, te beweeg, en gewen. Eerstens, laat ons pak init. In init vir inisialiseer, ons verteenwoordig die raad in 'n 2D heelgetal skikking. En dit is 'n globale veranderlike genoem raad met afmetings MAX, en Max, Die maksimum afmetings van die raad. Nou, die werklike dimensie van die raad gegee word deur die gebruiker, verteenwoordig in Die heelgetal d, wat kan minder as MAX. Maar, in C, jy kan nie skikkings grootte, sodat jy vas met dat die maksimum dimensie. Jou werk in init is om vul die waardes van die direksie met die korrekte waarde. Nou, ons het gesien 1D skikkings, maar hoe 2D skikkings werk? Daar is 'n indeks van die ry, nul kruip soos altyd, en dan ook die kolom. En jy sal jou rooster vul in dalende waardes, net soos hierdie. Rooster, 0, 0, 0 ry, kolom 0, 8, rooster 0, 1 is 7. Dit is vir 'n voorbeeld waar d, bietjie d, is 3. Nou, is die direksie in Vyftien moet ook bevat 'n leë teël, as jy al ooit gespeel met die fisiese spel. Maar, raad 'n heelgetal is skikking, so alle waardes het heelgetalle te wees. Dus is dit aan jou om 'n heelgetal te besluit waarde 'n leë teël te verteenwoordig. Jou raad te inisialiseer, kan jy gebruik lus strukture bevat begin stand van die raad, waar direksie i j verteenwoordig die element op ry i en kolom j. Hulle begin in dalende orde en onthou dat indien die aantal teëls is vreemd, dan is jy gaan te hê ruil die ligging van 2 en 1. So is daar, ons het ons geïnisialiseer raad. Nou, dat ons geïnisialiseer ons direksie, is dit tyd om dit te trek. Trekking sal die huidige stand van die druk raad, maar jy moet seker maak teëls te druk in dieselfde volgorde dat jy hulle het geïnisialiseer. En jy moet ook die formaat jou nommers korrek. Omdat ons kan hê enkelsyfers en dubbelsyfers, dan wil hê jy moet druk 'n leë ruimte voor 'n enkele syfer getalle. Jy gebruik wat deur die gebruik van die plekhouer -. Maar onthou ons leë ruimte. Ons wil nie die werklike getal te druk dat ons gekies het om te verteenwoordig dat leë ruimte in raad, maar ons het ook wil nie niks om te druk nie. So, wat jy kan doen is om 'n simbool te definieer of karakter te verteenwoordig die leë teël. In die vorige voorbeelde wat ek gekies het 'n onderstreep, en dan kan jy net druk dat wanneer jy by die leë ruimte in jou trekking funksie. So teken sal geneste vir loops. Iets soos hierdie. Vir elke ry, en dan vir elke waarde in die ry, gaan jy om te druk die waarde in hierdie ruimte. Sodra jy al die waardes het gedruk in die ry, dan is jy kan druk om 'n nuwe lyn. Onthou dat die einde vir jou trekking funksie moet die einde eggo of 'n spieëlbeeld in jou geïnisialiseer funksie. Nou dat jy dit geïnisialiseer die direksie en wat jy geteken het, is dit tyd om jou te laat die gebruiker wysig en maak hul beweeg. So in die Fifteen.c funksie, die program neem toevoer van die gebruiker en dan roep die skuif funksie, verby in die getal van die teël wat die gebruiker wil om te beweeg. Nou, wees versigtig. Dit is die werklike getal van die teël en nie die werklike posisie. So, sal jy nodig het om te soek na die teël se posisie om te weet waar dit is. Nou, moet jy net die gebruiker toelaat 'n skuif te maak indien dit is reg. 'N wettige skuif is 'n teël wat aangrensend aan die leë teël. Dit beteken dat, bo en onder, te links en regs. Sodat jy nodig het om te weet waar die leë teël is so goed. Nou, vir elke beweging wat jy op soek is na die gebruikers teël, maar dit is waarskynlik nie die beste om te soek na die leë teël elke keer, want jy doen dit elke keer die gebruiker wil om te beweeg. So, in plaas daarvan, is dit die beste om te onthou waar die leë teël is die gebruik van 'n paar goed genoem veranderlikes. So wanneer jy toelaat dat die gebruiker om hul beweeg, is hulle goed op hul manier om te wen van die spel van vyftien. Die spel van Vyftien, die teëls te wen hoef te word in 'n spesifieke volgorde, en die het funksie tjeks of die spel is gewen. Dit gee Waar indien die spel is gewen en die teëls in die korrekte volgorde, en Valsbaai anders. So het die spel van Vyftien, teëls te wen moet word stygende volgorde, met die leë teël op die onderste regterkantste hoek. So hoe tjek jy of die gebruiker Die direksie het sy intrek in die regte oriëntasie? Wel, sal jy Itereer oor die direksie en check die waardes om seker te maak dat hulle is op die regte plek. Om dit te doen, kan jy dit gebruik sub- vir loops net soos jy gedoen het in trekking en in init. Daar is 'n paar maniere om te kyk en bekragtig of die raad is korrekte en 'n wen- vorming, al is. As jy gaan van links na regs, begin uit die boonste ry af, dan sal elke aantal moet groter wees as die vorige een. Wees versigtig oor wat jy waardeer het wat gekies is vir jou leë teël al is. Of jy kan 'n toonbank veranderlike gebruik om te verseker dat elke waarde in plek is, as jy kom met 'n soort van formule om dit te stel. So het baie pret eksperimenteer met die wiskunde. Sodra jy kom met 'n manier, terugkeer True wanneer die gebruiker het die spel gewen. Maar as 'n waarde is verkeerd, terugkeer Vals is, die gebruiker het om voort te gaan beweeg want hulle het nie die spel gewen. Sodra jy die tjek te implementeer en saam met inisialiseer, teken, en beweeg, jy klaar die spel van vyftien. Baie geluk en om pret te hê speel. My naam is Zamyla en dit is CS50.