Sisukord:

KOODI MÄNG PÜTHONIGA (DUMMIES!): 14 sammu
KOODI MÄNG PÜTHONIGA (DUMMIES!): 14 sammu

Video: KOODI MÄNG PÜTHONIGA (DUMMIES!): 14 sammu

Video: KOODI MÄNG PÜTHONIGA (DUMMIES!): 14 sammu
Video: Финансы с Python! Модель дисконтирования дивидендов 2024, Juuli
Anonim
KOODI MÄNG PÜTHONIGA (DUMMIES!)
KOODI MÄNG PÜTHONIGA (DUMMIES!)

Tere tulemast Pythonisse, mis on maailmas populaarsuselt kolmas programmeerimiskeel!… Ja vaieldamatult lihtsaim! Kas teadsite, et nii Youtube'is kui ka Google'is on Python peamine keel nende saavutatud rakenduste ja veebisaitide jaoks, mida näete? HÄSTI … Nüüd teate; ja peaksite ka välja mõtlema, miks on Python ka The 4.0 Modern Technology Era tuleviku jaoks äärmiselt oluline!

Samuti võite olla teadlik, et mängude kodeerimise tööstus õitseb rohkem kui kunagi varem, kuna tänapäeval omandab üha rohkem inimesi oma nutitelefoni. Ja Python on päris ideaalne kodeerimiskeel, mida saab kasutada lihtsateks … aga kui see on hästi programmeeritud, tekitavad sõltuvust tekitavad mängud! Nüüd võib see tunduda kuradima heidutava ülesandena, kui sõna "mängude kodeerimine" teile pähe tuleb … Kuid ärge muretsege! Selle juhendi kaudu saate koos minuga sellele teekonnale teada, kuidas lihtsat mängu A -st Z -ni igaühe jaoks kiiresti ja lühidalt, ilma maksmata täielikult kodeerida!

Kui teil pole veel Pythoni olnud, klõpsake selle hämmastava keele (ja ka looma! Ma arvan, et …) allalaadimiseks SIIT. See on täiesti tasuta. Kui olete lõpetanud, on aeg lõbutsemiseks!

Samm: saate aru, millist mängu kavatsete teha

Mõista, millist mängu kavatsete teha!
Mõista, millist mängu kavatsete teha!

On ülioluline istuda Pythoni programmi ees, teades täpselt, mida kodeerida.

Pidage meeles, et see juhend on mõeldud KÕIGILE! Ja te ei tahaks valida mõnda paadunud ideed, näiteks Asphalt 8 või FIFA Mobile; Loomulikult on see Python võimeline kõigeks, kuid Pythonis tunnistamiseks kulub natuke aega (tõenäoliselt 2 aastat! See juhis *urgh *ei sobinud). Selle asemel tahaksite võidelda traditsiooniliste ideedega nagu Tic-Tac-Toe (mille valisin teile eeskujuks!), Hangman jne. Asjad, mis ei vaja graafikat (graafika viib teid teisele … ohhhh… ahh teine maailm, võite proovida! Aga mitte siin, sest jälle, see võtab tõesti aega). Mõtle, mis sind inspireerib, kas mäng, millel võib olla mõni eriline manus, või mäng, mida sa täpselt tead, kuidas see toimib.

Samm: analüüsige oma mängu

Analüüsige oma mängu!
Analüüsige oma mängu!

Kui olete otsustanud, millele pühendate end järgmisel nädala kodeerimisel, on aeg kirjutada üles, mida mäng nõuab, et teil oleks parem ülevaade mängu seadistamisest!

Näiteks minu 3x3 Tic-Tac-Toe vajaks 9 tühja kohta, kus kasutajad saaksid printida kas "X" või "O". Seejärel vajame kasutajate käikudele vastamiseks ja salvestamiseks veel 9 tühikut. Ma peaksin tegema midagi, et vahetada X ja O vahel edasi ja tagasi iga kord, kui mängija oma ametiaja lõpetab. Peaksin ka käikude vahetamise ja salvestamise protsessi kordama, kuni hiljem on võitja, kaaludes kolme täpselt sama järjestikust sümbolit horisontaalses, vertikaalses või diagonaalses suunas.

Põhimõtteliselt ongi nii! Te ei pea midagi enamat tegema… veel, eeldades, et teil ei ole Pythonist väga vähe teadmisi. Nüüd… järgmiseks sammuks peate endalt palju küsima, kuidas analüüsitavat muuta koodiks!

Samm: kujundage oma analüüs arvutigrammatikaks

Kujundage oma analüüs
Kujundage oma analüüs

Nüüdseks peaksite oma loogika abil aru saama, kuhu mäng läheb, oma peas, oma keeles! Noh … arvuti ei saa sellest aru; ja kuna meil on nii palju intelligentsust, peaksime tegema esimese sammu selle keeles rääkimiseks.

Tagasi minu näite juurde Tic-Tac-Toe, viidates 2. sammule, et mul on kõigepealt vaja umbes 9 tühja ruumi kasutajate käikude salvestamiseks. Üks võimalus võiks olla käsk Pythonil koostada nimekiri, mis sisaldab 9 tühikut! Ja kui kasutajad oma käike sisestavad, asendate selle tühiku kordamööda kas „X” või „O”. Ma võin Pythonis kasutada mõningaid tsüklifunktsioone, et aidata protsessi mitu korda korrata, kuni on saavutatud viigiseis või… võitja! Kuidas ma võitja välja selgitan, on kasutada tingimust, et kui mängu ei juhtu, jätkub mäng omas ringis või muidu, kui kõik 9 tühikut on hõivatud või on võitja, tsükkel klõpsab ja mäng lõpeb!

See samm, pole vaja vaielda, on kogu selle juhendi kõige raskem samm! Nüüd peate kasutama inimloogikat, et näha, kuidas saate kirjutatu Pythoniks teisendada. Te ei pea muretsema, kas Python suudab kogu teie kujutlusvõimet käsitseda, sellel on piisavalt kodeerimismaterjale, et saaksite seda rahuldada! Kui te ei leia teed (mis tavaliselt nii on), on otsingumootor, mida ma soovitan, Stack Overflow, see on väike kogukond, kus inimesed imestavad tavaliselt kõige absurdsemate küsimuste üle, mida ma kunagi näinud olen, ja ka seal, kus on mõned kõige säravamad vastused, mida igaüks võib sellest saada!

PIDA MINUGA SIIN! Järgmised 7 sammu näitan teile 7 Pythoni meetodit, mida ma pidasin vajalikuks kõige lihtsamas mängitavas mängus! Lase kiirkursusel alata!

4. samm: avalduste, numbrite või objektide printimine - printimine ()

Avalduste, numbrite või objektide printimine - prindi ()
Avalduste, numbrite või objektide printimine - prindi ()

See on ilmselt kõige põhilisem asi Pythonis! Kui te ei saa midagi printida, siis olenemata sellest, kui tähtkuju teie programm on, on see maailmale kasutu. See toimib järgmiselt: print ([sisestage siia midagi]). Näiteks printimine („Sa oled tark”) paneb Pythoni välja printima „Sa oled tark” (HOIATUS: Pole tähtis, kas kasutad üksik- või kahekordseid jutumärke, peate kasutama ühte neist ning peate alustama ja lõpetama string sama tsitaadiga!). Jätkake printimise () funktsiooniga mängimist, laske Pythonil printida kõik, mis teile hea enesetunde tekitab (seda ma teeksin!). Kuni tunnete, et saate järgmise sammu juurde liikuda, võite soovi korral Google'i või Stack Overflow kaudu teha täiendavaid uuringuid printimise () kohta, et seda sügavamalt mõista.

print ("Yayyyy, ma olen siin!")

print ("Ma olen nii hea omg")

P/S: Võite topeltjutumärke panna ühe jutumärgi sisse ja vastupidi, kuid ärge pange sama asja üksteise sisse või … näete, mida ma mõtlen!

Minu projekt Tic-Tac-Toe… nõuab muidugi palju trükki, alates tahvli ja kasutajaliidese väljatrükkimisest kuni mängu oleku kinnitamiseni.

Samm: looge erinevate objektide loend -

Looge erinevate objektide loend -
Looge erinevate objektide loend -

Nimekiri sisaldab kõiki muutujaid, mida soovite selle sisestada, see on tõeline kingitus, mille Python teeb! Nüüd pole vaja muud, kui anda sellele nimi, panna nurksulgud, eraldada muutujad komadega või jätta ka tühjaks (et saaksite need hiljem lisada) ja oletegi valmis! HOIATUS: te ei soovi seda mõne meetodi järgi nimetada, vastasel juhul ilmneb süntaksiviga. Kui nimi kuvatakse muudes värvides kui must, tuleb teie kell kohe sisse lülitada!

dalist = [5, 7, "ma olen ilus", 12 + 1, 3.141592657]

või…

dalist =

dalist.append (5) #now dalisti elemendiks on [5]!

Mäletate 9-kohalist tahvlit, millest ma teile rääkisin? See on koht, kus seda kavatsetakse kasutada! See salvestab alguses kõik "-"; ja kui mängija kärbib käigul, asendab nende sümbol "-". Kõik loendi elemendid algavad nullist, seega 0 viitab esimesele elemendile, 1 viitab teisele elemendile jne. Ideaalne näide oleks: palun pingutage selle kujutamise nimel, et 3 punkti 0, 1, 2 on 3x3 tahvli esimene rida. Kui dalist [0] ja dalist [1] ning dalist [3] viitavad samale sümbolile, siis on meil võitja! Vaadake, nimekiri võib olla äärmiselt kasulik ja lihtsam kui arvate! Rohkem teadmisi Pythoni loendi kohta leiate Google'i või Stack Overflow kaudu.

6. samm: seadistage käskudele tingimused (if, Elif & Else)

Kehtestage käskudele tingimus (t) - If, Elif & Else
Kehtestage käskudele tingimus (t) - If, Elif & Else

Elu ei juhtu alati nii, nagu soovite, ja mõnikord teete seda ainult siis, kui stsenaarium vastab teie nõuetele. Sama Pythoniga! Sa ei tahaks, et see kõik ja kõik olukorrad läbi käiks, sest see on tõeline valu! Sellepärast on if -tingimus nii kasulik. See toimib täpselt nii, nagu seda tõlgendatakse, käsk (id), et kui plokk viiakse läbi ainult KUI siis, kui see vastab teie soovile. Näiteks prindite avalduse "Yessss" ainult siis, kui teie õnnelik režiim vastab tõele (eeldusel, et identifikaator on juba eelnevalt deklareeritud):

õnnelik = tõsi

kui oled õnnelik == tõsi:

print ("Yessss")

Kui on olemas IF, on tavaliselt ülejäänud stsenaariumide puhul ELSE, mis ei vasta eelnevalt sätestatud tingimustele. Ütle, et kui oled kurb, siis prindid selle asemel "Noooo" (ülaltoodud avalduse jätk):

muidu:

print ("Noooo") #Aga see ei prindi seda niikuinii, ärge muretsege!

Pythonis on olemas eriline tüüp, mida me nimetame ELIFiks. Nime enda järgi võiksite ilmselt järeldada, et see on kombinatsioon kas ja muust. Nii et kui teil on kaks või enam tingimust, on elif see tüüp, kellele te helistate (eeldatav skoor määratakse enne seda mõnele juhuslikule numbrile):

skoor = 65

kui skoor> = 90:

print ("Hea töö!")

elif 80 <= skoor <90:

print ("Head pingutust!")

elif 70 <= skoor <80:

print ("Oleks võinud parem olla!")

muidu:

trüki ("Noh …")

HOIATUS: siin on taane oluline! See määrab käsud, kuhu if, elif või muu lause kuulub. Nii et olge oma koodi kujundamisel ettevaatlik! Saate pesastada ka siis, kui avaldusi koos arvestatakse tingimusega AINULT siis, kui välimine, kui see vastab tõele. Ja jälle … Taane!

Oma projektis Tic-Tac-Toe kasutasin neid sõna otseses mõttes tonni. 3x3 mäng võib tunduda piisavalt lihtne, kuid peate kaaluma mitmeid stsenaariume, mis võiksid toimuda. Sel juhul pean kaaluma, kas on võitja või mitte, kontrollides 3 järjestikust märki igas suunas. Jah … nüüd ärge laske end segadusse ajada, sest see pole ka nii keeruline, see on lihtsalt üleliigne koodide jada ja kõik, mida peate tegema, on selle kontrolliala muutmine ja valmis! Selle teema kohta lisateabe saamiseks klõpsake nuppu Stack Overflow.

7. samm: rohkem tingimusi - ja & või

Veel tingimusi - ja & Or
Veel tingimusi - ja & Or

Kes ütles, et üks tingimus võib alati olla ainult tingimus? Ühel tingimusel võib olla ka mitu kriteeriumi. Kui avaldis on pesastatud, võib see olla lühiajaline lahendus, muudab see koodi oluliselt pikemaks. Seega on olemas AND & OR meetodid. Neid kõiki kasutatakse tingimuste ühendamiseks üheks suureks lepinguks. Ainus erinevus nende vahel on see ja nõuab, et kõik selles lauses olevad tingimused oleksid enne jätkamist õiged; kuigi õige või vajab ainult ühte neist. Mõlemad võivad olla väga kasulikud, kui neid õigesti kasutada, olge targad või need kaks võivad teie aju loogikaga segi ajada!

n = 5

a = 7

kui n == 5 ja a == 6:

print ("Ei, seda ei tohiks printida")

kui n == 3 või a == 7:

print ("Yupp peaks selle printima")

Kasutasin tõsiselt ja / või lühendasin oluliselt oma Tic-Tac-Toe'i, sest mõnikord on korraga kuni kolm tingimust, kui pean arvestama kõigi kolme märgi positsiooniga, et teha kindlaks, kas on võitja või mitte. Ja & või oleks väga mugav! Lisateabe saamiseks külastage Stack Overflow.

8. samm: tsükkel, mis kordab käske, kuni kriteeriumid on täidetud

Silmus, mis kordab käske, kuni kriteeriumid on täidetud - samas
Silmus, mis kordab käske, kuni kriteeriumid on täidetud - samas

Oleme uurinud, kuidas printida ja asju töödelda ainult siis, kui tingimus on tõene. Niisiis, kuidas… korrata seda plokki mitu korda, kuni tingimus on täidetud? Jah, sellepärast annab Python sulle MITTE!

n = 1

samas kui n = 1:

print ("hooooo") #Jah, see prindib "hooooo" välja igavesti … ja kunagi … tegelikult … igavesti … ja igavesti …

See võib olla probleem, sest te ei soovi, et teie käsud lõputult korduksid. Tavaliselt, kui kasutate ajal, on olemas tehnika, mille abil muudate tingimuse väärtust iga kord, kui see kordub, nii et tingimust värskendatakse ja kuni hetkeni, mil see kriteeriume vajab, see lõpuks peatub. Näiteks saate lisada väärtuse ükshaaval korraga ja seejärel määrata, kuni see töötab, kuni mingid väärtused, mille arv lõpuks jõuab:

n = 1

samas kui n <5:

print ("Mul on" + n + "õlu boiiiii!")

n = n + 1 #või võite kirjutada ka n + = 1

Kuidas see toimib, lisab iga koodiploki lõpus end 1 -le. Kuigi silmus pöörleb seni, kuni n on veel väiksem kui 5. Nüüd jõuab n kuni ühe hetkeni (täpsemalt 4 -kordne silmus) väärtus 5 ja silmus peatub!

õnnelik = tõsi

õnnelikuna:

print ("Yayyy, ma tegin seda!") # Ära seda tegelikult tee, aga sa väärisid teada, et jõuad alati kohale!

Kuigi see võib olla eriti kasulik sellistes mängudes nagu Tic-Tac-Toe, võib vigade kontrollimine olla kasulik. Mõnikord peate endale lubama üleannetuid kasutajaid ja kui nad pidevalt jama ajavad, hoiab while -tsükkel neid eemal, kuni nad tegelikult käituvad ja sisestavad mõned tegelikud kehtivad sisendid! Lisateavet leiate aadressilt Stack Overflow

Samm 9: Loop Version 2.0 - For

Kuigi Loop versioon 2.0 - jaoks
Kuigi Loop versioon 2.0 - jaoks

Kindlasti on mõningaid olukordi, mille eest FOR saab mõneks ajaks troonilt tõrjutud, kuid see teeb teie jaoks midagi muud, mida ei saa… See hoiab väärtust, milles see ringleb, nõuab kasutajalt silmuste vahemiku määramist (Jah, silmus ei lingu kunagi igavesti ja iial … tegelikult …) ja kanna ka silmuse väärtust iga kord, kui see teisendatakse! Nüüd võin olla liiga sõnakas, kuid pidage meeles seda näidet, öeldes, et tm on väärtus, mida soovite for -silmusega jätkata:

tm vahemikus (1, 5):

print ("Olen juba joonud" + tm + "õlled urghhh") # See prindib "Mul on juba 1….5 õlut urghhh"

Vaadake, see säästab teile ühe koodirea, kuid muudab mängude kodeerimise elu palju lihtsamaks (uskuge mind, ma õppisin seda raskel viisil ja te ei taha sellest teada)! Tavaliselt peaksite kasutama FOR -tsüklit, kui olete oma mõtetes kindlalt määratlenud, mitu korda soovite koodiplokki korrata. HOIATUS: Muutuja, mis kanti koos silmusega for, eksisteerib ainult for silmus endas, kui viidate sellele kusagil väljaspool for silmust, hakkab Python teid hammustama ja küsib: "Mida kuradit te viitate ???"

Tic-Tac-Toe kasutab silmuse jaoks palju. Te ei saa endale lubada kõike kontrollida iga kord, kui muutuja muutub (tõeline valu). Aga mida ma tegin, olin avastama Tic-Tac-Toe anatoomia reegli, muutma väärtust for silmus, kontrollima kõiki kolme sümbolite veergu, pidades ainult Pythonit õpetama, kuidas seda kontrollida! Lisateabe saamiseks vaadake kindlasti Stacki ülevoolu.

10. samm: küsige kasutajate sisendeid - sisend ()

Küsi kasutajate sisendeid - sisend ()
Küsi kasutajate sisendeid - sisend ()

Viimane, kuid mitte vähem tähtis, olete mängu looja ja keegi hakkab teie mängu mängima! Ja te ei saa kunagi arvata, millega nad tegelevad. Niisiis, mida saate teha, on teha seda, mida nad teie programmis käskisid teha, lasta neil otse sisestada! Üheskoos võivad INPUT ja PRINT olla Pythonis kõige põhilisemad meetodid, teil on seda ellujäämiseks vaja (neid on igas mängukoodis, ma võin 100,00% garanteerida)! See on piisavalt lihtne, määrake lihtsalt muutuja ja laske sellel olla kõik, mida kasutaja soovib:

alo = input ("Sisestage oma õnnenumber!")

HOIATUS: Sisendeid on mitut tüüpi, rohkem Stack Overflow kohta. Need töötavad alati, kui jätate selle lihtsalt sisestamiseks (). Kuid mõnikord võite soovida, et see oleks spetsiifiline, näiteks täisarvuline või ujukisisend (vaikimisi on string).

lucky_day = int (input ("Yessss, teie õnnelik päev! Sisestage number siia:") #Ärge trükkige kohe tähti, te ei soovi #Pythoniga jama!

Tic-Tac-Toe vajab seda hunnikut! Olen kindel, et saate selle ise välja selgitada sellest, kuidas ma tean, kuhu kasutajad lähevad ja mille poole nad sihivad (Saite õigesti aru, ma ei tea … aga ma kasutasin sisestust ()!).

Samm: tehke täiendavaid uuringuid kõigi vajalike meetodite jaoks

Tehke täiendavaid uuringuid kõigi vajalike meetodite jaoks!
Tehke täiendavaid uuringuid kõigi vajalike meetodite jaoks!

Jah, mängu loomiseks ei pea te Pythonist kõike teadma, tegelikult peate teadma ainult piisavalt, alustades Ultimate 7-st (samm 4–10, olen kindel, et peate kuidagi neid kõiki puudutama mäng) ja muidu, kui te ei arva, et kõik need 7 suudavad teie tegevust rahuldada. Pythonil on palju üllatusi ja mõnikord on olemas mõned terminoloogilised meetodid, mis on selle väga spetsiifilise kasutamise jaoks kunagi teada. Nii et otsige neid kindlasti Google'i või Stack Overflow abil!

Minu Tic-Tac-Toe kasutas kogu "Big Seveni" ja natuke rohkem, kuid mitte palju. Olen kindel, et igaüks saab hakkama!

Veenduge, et kirjutate need kõik paberile ja mängige kõike, mida vajate, et mõista probleemi, enne kui selle külge riputate. Kas tunnete end piisavalt valmis? Liigume edasi … viimase sammu juurde !!! Jääge minuga siia, olete peaaegu kohal!

12. samm: ehitage oma koodile skelettraam, mis TOIMIB

Ehitage oma koodile skelettraam, mis TOIMIB!
Ehitage oma koodile skelettraam, mis TOIMIB!

Ma ei taha teid üldse heidutada, aga kui soovite luua mängu, mis sobib kõigile, peab see kõigepealt töötama, alustades sinust! Koguge kokku kõik vajalikud materjalid, seadistage raamistik. Ma tean, et seda on kergem öelda kui teha, aga kui kõik paberid on valmis (kui tegite midagi nii, nagu ma teile ütlesin), siis peaks teil kõik korras olema.

Ärge häirige süntaksivigu kohe alguses. Oluline on lõpetada kood ilma katkestusteta, alles siis, kui jõuate ummikseisu, mille peaksite peatama. Meie, inimesed, oleme mõtetevoogudega tundlikud, olen kohanud olukorda, kus kõik sujus nii sujuvalt ja sujuvalt, kui läksin vannituppa … Järgmine asi, mida teadsin, kaotasin mõtte. Nii et jah, ärge korrake pärast mind! Pane kõik pähe, kui see alles on ja enne värske.

Tic-Tac-Toe protsess hõlmab kasutaja sisendi küsimist, kasutades sisestust (), kasutage ainult kehtivate sisendite puhastamiseks. Seejärel on välja pandud komplekt, kui elif else, selleks ajaks ja samal ajal, et kontrollida iga kord, kas on võitja. Keegi ei võida ja samas loop jätkab mängu, kuni üks või kõik 9 tühikut on hõivatud, mille tulemuseks on viik.

Kui olete veendunud, et see on mäng, alustate programmi käivitamist ja otsite hiljem süntaksit või semantilisi vigu. Ja jällegi, ehitage kõigepealt endale mäng, ÄRGE tehke ballistilist loomingut enne, kui teie algne raam oli veel olemas. Nüüd tehke see ja liikuge edasi! Sinu mäng on olemas, mida sa ootad ???

Samm 13: leidke end sealt, testige ja tehke endale MÄNG

Võta end sealt proovile ja tee endale MÄNG!
Võta end sealt proovile ja tee endale MÄNG!

See on kõik! Kõik, mida pead nüüd tegema, on mitte raisata kõiki oma eelnevaid jõupingutusi, pane end sinna! Usun, et kui järgite kõiki neid samme, piisab mängu loomisest täiesti. Kui te seda ei tee, ärge loobuge, proovige; See juhend on mõeldud kõigi abistamiseks, kuid ainult teie saate otsustada oma MÄNGU saatuse üle! Pidage meeles, et ärge loobuge, ehitage kõigepealt skelettraamid. Kui on mingeid imelikke süntaksivigu, mida te ei näe, otsige abi Stack Overflow kaudu, see asi on minust läbi jäänud.

Igatahes kokkuvõtteks, palju õnne Pythoni teekonnal, programmeerige mäng, tehke mind uhkeks, sest ME OLEME PROGRAMMERZZZZZZZ !!!!!

P/S: 14. samm loominguliseks julgustamiseks!

14. samm: * LISAKS! * Pärast teie versiooni 1.0 toimimist, mis on suunatud loovusele

* LISAKS!* Pärast teie versiooni 1.0 toimimist, mis on suunatud loovusele!
* LISAKS!* Pärast teie versiooni 1.0 toimimist, mis on suunatud loovusele!

Kui sa seda veel loed, siis suurepärane! Sa ei pea seda tegema, aga ma tahan sulle lihtsalt teada anda pärast seda, kui kõik sujub sujuvalt, AINULT kui sina saad muuta, et ka teised saaksid sinu programmi kasutada; kaunista see uuesti mängijasõbralikkuse huvides; või uuendage oma mängu (täiendasin oma Tic-Tac-Toe'i, programmeerides tehisintellekti! Nüüd kulus mul selle tegemiseks nädal (või 7/8 ajast)!). Kasutage ja kasutage kindlasti virna ülevoolu, kui tekib küsimusi. Soovisin teile palju õnne, lõpetage oma mäng, jagage seda allolevas kommentaaris ja levitage kodeerimisliikumist !!!

ME OLEME PROGRAMMERZZZZ !!!!!

Soovitan: