INHOUDSOPGAWE:

KODEER 'N SPEL MET PYTHON (VIR DUMMIES!): 14 stappe
KODEER 'N SPEL MET PYTHON (VIR DUMMIES!): 14 stappe

Video: KODEER 'N SPEL MET PYTHON (VIR DUMMIES!): 14 stappe

Video: KODEER 'N SPEL MET PYTHON (VIR DUMMIES!): 14 stappe
Video: TUDev Solving Coding Challenges with Python! 2024, November
Anonim
KODEER 'N SPEL MET PYTHON (VIR DUMMIES!)
KODEER 'N SPEL MET PYTHON (VIR DUMMIES!)

Welkom by Python, die derde gewildste programmeertaal wêreldwyd! … en waarskynlik die eenvoudigste! Het u geweet dat Youtube en Google albei Python as hooftaal het vir hul programme en webwerwe wat u sien? Wel … Nou weet jy; en u moet ook uitvind waarom Python ook uiters belangrik is vir die toekoms van The 4.0 Modern Technology Era!

U weet miskien ook dat die spelkoderingsbedryf meer as ooit floreer, aangesien meer en meer mense deesdae slimfone besit. En Python is 'n redelik ideale koderingstaal wat gebruik kan word vir eenvoudige … maar as dit goed geprogrammeerde, verslawende speletjies is! Nou klink dit miskien na 'n verdomde uitdagende taak as die woord "spelkodering" jou opval … Maar moenie bekommerd wees nie! Deur middel van hierdie instruksies, sal u saam met my op reis wees oor hoe u 'n eenvoudige spel, van A tot Z, volledig en vinnig kan kodeer vir almal, sonder om te betaal!

As u nog nie Python gehad het nie, klik HIER om hierdie wonderlike taal af te laai (en ook diere! Ek dink …). Dit is heeltemal gratis. Sodra jy klaar is, tyd vir 'n bietjie pret!

Stap 1: Verstaan watter speletjie u gaan doen

Verstaan watter speletjie u gaan doen!
Verstaan watter speletjie u gaan doen!

Dit is van kardinale belang dat u voor 'n Python -program sit en presies weet wat u moet kodeer.

Onthou dat hierdie instruksies vir ALMAL is! En u wil nie 'n deurdagte idee kies nie, soos Asphalt 8 of FIFA Mobile; Die Python is natuurlik tot alles in staat, maar dit sal u 'n rukkie neem om in Python te bely (waarskynlik 2 jaar! Kan nie by hierdie instruksionele *urgh *pas nie). In plaas daarvan sou u wil veg met tradisionele idees, soos Tic-Tac-Toe (wat ek vir u 'n voorbeeld wou wees!), Hangman, ens. Dinge wat nie grafies benodig nie (grafika neem u na 'n ander … ohhhh … ahh 'n ander wêreld, jy kan dit probeer! Maar nie hier nie, want dit neem regtig tyd). Dink na oor wat u inspireer, 'n speletjie waaraan u spesiale aanhangsels kan hê, of 'n speletjie wat u presies weet hoe dit werk.

Stap 2: Ontleed u spel

Ontleed u spel!
Ontleed u spel!

Nadat u besluit het waaraan u u gaan toewy vir moontlik die volgende week met kodering, is dit tyd om op te skryf wat die spel vereis, sodat u 'n beter idee het van hoe die spel opgestel is!

Byvoorbeeld, my 3x3 Tic-Tac-Toe benodig 9 leë spasies waar gebruikers in 'X' of 'O' kan druk. Dan benodig ons nog 9 spasies om die gebruikers se bewegings te beantwoord en te red. Ek sal iets moet doen om heen en weer te wissel tussen "X" en "O" elke keer as 'n speler sy/haar termyn beëindig. Ek sal ook die proses om oor te skakel en te stoor, moet loop totdat daar later 'n wenner is deur drie presies dieselfde opeenvolgende simbole in horisontale, vertikale of diagonale rigting te oorweeg.

Dit is basies dit! U hoef nie meer as dit te doen nie … nog steeds, in die veronderstelling dat u nie baie kennis van Python het nie! Nou … die volgende stap vereis dat u uself baie moet afvra oor hoe u dit wat u ontleed het omskakel in kode!

Stap 3: vorm u analise in 'rekenaaragtige' grammatika

Vorm u analise daarin
Vorm u analise daarin

Teen hierdie tyd behoort u te verstaan waarheen die spel gaan, in u kop, in u taal, met u logika! Wel … die rekenaar sal dit nie verstaan nie; en aangesien ons soveel meer intelligensie het, moet ons die eerste stap maak om in sy taal te praat.

Terug na my Tic-Tac-Toe as voorbeeld, met verwysing na stap 2, dat ek eers 9 leë spasies nodig het om die bewegings van die gebruikers op te slaan. Een manier kan wees om Python te vertel om 'n lys te maak wat die 9 spasies bevat! En terwyl die gebruikers hul bewegings intik, vervang u die spasie met die 'X' of 'O' om die beurt. Ek kan 'n paar lusfunksies in Python gebruik om die proses baie keer te herhaal totdat daar gelykop is of … 'n wenner! Die manier waarop ek die wenner bepaal, is om 'n voorwaarde te gebruik dat die spel in sy loop sal voortgaan as niks gebeur nie, of as al die 9 spasies beset is of daar 'n wenner is, die lus breek en die spel eindig!

Hierdie stap is, hoef nie te redeneer nie, die moeilikste stap in hierdie hele leerbare! U moet nou menslike logika gebruik om te sien hoe u dit wat u geskryf het in Python kan omskep. U hoef nie bekommerd te wees of Python al u verbeelding kan hanteer nie; dit bevat genoeg koderingsmateriaal om dit te bevredig! As u nie die weg kan vind nie (wat gewoonlik die geval is), is Stack Overflow 'n soekenjin wat ek sterk aanbeveel, dit is 'n klein gemeenskap waar mense gewoonlik wonder oor die mees absurde vrae wat ek nog ooit gesien het, en ook waar daar is Dit is van die mees briljante antwoorde wat almal daaruit kan kry!

STIK BY MY HIER! In die volgende sewe stappe sal ek u 7 metodes van Python wys wat ek in elk geval vir die eenvoudigste speelbare speletjie nodig geag het! Laat die ongelukskursus begin!

Stap 4: Druk state, nommers of voorwerpe - Druk ()

Druk state, syfers of voorwerpe - Druk ()
Druk state, syfers of voorwerpe - Druk ()

Dit is waarskynlik die mees fundamentele ding ooit in Python! As u niks kan druk nie, maak dit nie saak hoe hoog u program is nie, dit is nutteloos vir die wêreld. Die manier waarop dit werk, is: druk ([tik iets hier]). Byvoorbeeld, druk ('U is slim') laat Python 'U is slim' druk (WAARSKUWING: Maak nie saak of u enkele aanhalings of dubbele aanhalings gebruik nie, u moet een daarvan gebruik en u moet begin en eindig die string met dieselfde aanhalingspesie!). Hou aan om te speel met die print () -funksie, laat Python druk wat u ook al laat voel (dit is wat ek sou doen!). Totdat u voel dat u kan voortgaan met die volgende stap, kan u addisionele navorsing oor print () doen vir 'n dieper begrip indien nodig deur Google of Stack Overflow.

druk ("Yayyyy I am here!")

print ('Ek is so goed omg')

P/S: U kan 'n dubbele aanhaling in 'n enkele aanhalingsversperring plaas, en omgekeerd, maar moenie dieselfde in mekaar plaas nie, of u sal sien wat ek bedoel!

My Tic-Tac-Toe-projek … vereis natuurlik baie druk, van die afdruk van die bord en die gebruikerskoppelvlak tot die bevestiging van die spelstatus.

Stap 5: Skep 'n lys met verskillende voorwerpe -

Skep 'n lys om verskillende voorwerpe te bevat -
Skep 'n lys om verskillende voorwerpe te bevat -

'N Lys bevat alle veranderlikes waarin u dit wil plaas, dit is 'n geskenk wat Python maak! Al wat u nodig het om een te vestig, is om dit 'n naam te gee, vierkantige hakies te plaas, veranderlike met komma's te skei, of u kan dit ook leeg laat (sodat u dit later kan byvoeg) en u kan gereed wees! WAARSKUWING: U wil dit nie na 'n paar metodes noem nie, anders kom daar 'n sintaksfout, as die naam in ander kleure as swart verskyn, moet u klok onmiddellik aangeskakel word!

dalist = [5, 7, "ek is mooi", 12 + 1, 3.141592657]

of…

dalist =

dalist.append (5) #now het dalist [5] as element!

Onthou u die bord met 9 spasies waarvan ek u vertel het? Dit is waar dit gebruik gaan word! Dit sal eers al die '-' stoor; en namate die speler in beweging beweeg, sal hul simbool die "-" vervang. Al die elemente in 'n lys begin by 0, dus 0 verwys na die 1ste element, 1 verwys na die 2de element, ensovoorts. 'N Ideale voorbeeld sou wees: werk hard daaraan om hierdie een hier voor te stel, dat die 3 kolle 0, 1, 2 die eerste ry van die 3x3 -bord is. As dalist [0] en dalist [1] en dalist [3] almal na dieselfde simbool verwys, dan het ons 'n wenner! Kyk, die lys kan baie nuttig en eenvoudiger wees as wat u dink! Meer kennis oor die Python -lys kan gevind word deur Google of Stack Overflow.

Stap 6: Stel voorwaarde (s) vir bevele vas - If, Elif & Else

Stel voorwaarde (s) vir bevele op - If, Elif & Else
Stel voorwaarde (s) vir bevele op - If, Elif & Else

Die lewe gebeur nie altyd soos jy dit wil hê nie, en soms doen jy dit slegs as die scenario aan jou vereiste voldoen. Dieselfde geld vir Python! U sou nie wou hê dat dit deur alle situasies moes gaan nie, want dit is regtig seer! Daarom is die if -toestand so nuttig. Dit werk presies soos dit geïnterpreteer word, die opdrag (te) binne dat as die blok slegs uitgevoer sal word AS dit slegs voldoen aan wat u vra. U sal byvoorbeeld slegs die stelling "Yessss" druk as u gelukkige modus waar is (as die identifiseerder vooraf verklaar is):

gelukkig = waar

as gelukkig == waar:

druk ("Yessss")

As daar 'n IF is, is daar gewoonlik 'n ANDER vir die res van die scenario's wat nie ooreenstem met die voorwaarde wat voorheen uiteengesit is nie. Sê: as u hartseer is, druk u dan "Noooo" (voortsetting van die if -stelling hierbo):

anders:

print ("Noooo") #Maar dit sal dit in elk geval nie druk nie, moenie bekommerd wees nie!

Daar is 'n spesiale tipe if in Python wat ons dit ELIF noem. Uit die naam self kan u waarskynlik agterkom dat dit die kombinasie is van as en anders. As u dus twee of meer toestande het, is die elif die ou wat u sou bel (die veronderstelde telling word vooraf aan 'n paar ewekansige getalle toegeken):

telling = 65

as telling> = 90:

print ("Goeie werk!")

elif 80 <= telling <90:

print ("Goeie poging!")

elif 70 <= telling <80:

print ("Kon beter gewees het!")

anders:

druk ("Wel …")

WAARSKUWING: inkeping is hier belangrik! Dit bepaal die opdragte waartoe behoort if, elif of else statement. Wees dus versigtig met die ontwerp van u kode! U kan ook nes maak as stellings saam 'n voorwaarde slegs SLEGS oorweeg word wanneer die buitenste as eers waar is. En nogmaals … Inbraak!

In my Tic-Tac-Toe-projek het ek letterlik tonne hiervan gebruik. Die 3x3 -spel klink miskien eenvoudig genoeg, maar u moet baie scenario's wat kan plaasvind, oorweeg. In hierdie geval moet ek kyk of daar 'n wenner is of nie, deur die drie agtereenvolgende punte in alle rigtings na te gaan. Ja … moenie verward raak nie, want dit is ook nie so ingewikkeld nie; dit is slegs 'n reeks oortollige kodes, en al wat u hoef te doen is om die kontrolegebied te verander en klaar te wees! Klik op Stack Overflow vir meer ingewikkelde kennis oor hierdie onderwerp.

Stap 7: Altesaam meer voorwaardes - en & Of

Meer voorwaardes altesaam - en & Of
Meer voorwaardes altesaam - en & Of

Wie het gesê dat een voorwaarde altyd slegs voorwaarde kan wees? Een enkele voorwaarde kan ook verskeie kriteria hê. Alhoewel die verklaring 'n korttermynoplossing is, maak dit die kode aansienlik langer. So daar is die AND & OF metodes. Almal word gebruik om toestande saam te voeg tot een groot verdrag. Die enigste verskil tussen hulle is dat en vereis dat alle voorwaardes in die een as stelling korrek is voordat u verder gaan; terwyl of slegs een van hulle nodig is om korrek te wees. Albei kan baie handig wees as dit reg gebruik word, maar wees verstandig, want hierdie twee kan eintlik met u breinlogika mors!

n = 5

a = 7

as n == 5 en a == 6:

print ("Nee, dit moet nie gedruk word nie")

as n == 3 of a == 7:

print ("Yupp moet dit druk")

Ek het my Tic-Tac-Toe ernstig gebruik en & of om my Tic-Tac-Toe dramaties te verkort, aangesien daar soms tot 3 toestande tegelyk is, as ek al drie die posisies van die punt moet oorweeg om te bepaal of daar 'n wenner is of nie. En & of sou baie handig wees! Besoek Stack Overflow vir meer besonderhede.

Stap 8: 'n herhalende lus totdat bevele nagekom word - terwyl

'N Lus wat herhaal, beveel totdat die kriteria nagekom word - terwyl
'N Lus wat herhaal, beveel totdat die kriteria nagekom word - terwyl

Ons het gedetailleer hoe om te druk, dinge verwerk slegs as die voorwaarde waar is. En hoe … herhaal die blok baie keer totdat die voorwaarde bereik is? Ja, daarom gee Python u 'n TERWYL!

n = 1

terwyl n = 1:

druk ("hooooo") #Ja, dit sal "hooooo" vir ewig uitdruk … en altyd … eintlik … vir ewig … en altyd …

Dit kan 'n probleem wees, want u wil nie hê dat u opdragte onbepaald moet loop nie. So gewoonlik is daar 'n tegniek waarmee u die waarde van die toestand elke keer as u dit gebruik, verander, sodat die toestand opgedateer word, en totdat dit soms die kriteria benodig, sal dit uiteindelik stop. U kan die waarde byvoorbeeld een eenheid op 'n slag by homself voeg, en dan die tyd in werking stel totdat 'n soort waardes wat die getal uiteindelik sal bereik:

n = 1

terwyl n <5:

print ("Ek het" + n + "bier boiiiii!")

n = n + 1 #of jy kan ook n + = 1 skryf

Hoe dit sal werk, is n sal aan die einde van elke kodeblok steeds by 1 voeg. Die while lus sal loop solank n nog kleiner is as 5. Nou tot een oomblik (spesifiek 4 keer lus), sal n waarde van 5 bereik en die lus sal stop!

gelukkig = waar

terwyl hy gelukkig is:

print ("Yayyy, ek het dit gedoen!") # Moet dit nie eintlik doen nie, maar u het verdien om te weet dat u altyd daar sal wees!

Alhoewel dit veral handig kan wees in speletjies soos Tic-Tac-Toe, is dit 'n foutkontrole. Soms moet u onnodige gebruikers bekostig, en as hulle aanhou deurmekaar raak, sal die while -lus hulle in die steek hou totdat hulle hulself gedra en 'n paar werklike geldige insette invoer! Meer inligting by Stack Overflow

Stap 9: While Loop Weergawe 2.0 - Vir

While Loop Weergawe 2.0 - Vir
While Loop Weergawe 2.0 - Vir

Daar is beslis 'n paar situasies waar FOR solank onttroon sal word, maar wat iets anders vir u doen wat nie kan nie … Dit hou die waarde waarin dit sal loop, en vereis dat die gebruiker die omvang van die lus bepaal (Ja, vir loop nooit lus vir ewig en ewig nie … eintlik …), en dra ook die luswaarde elke keer as dit verander! Nou is ek miskien te woordryk, maar neem hierdie voorbeeld in gedagte, sê tm is die waarde wat u met die for lus wil voortbring:

vir tm in reeks (1, 5):

print ("ek het al" + tm + "biere urghhh") # Dit sal druk "ek het al 1….5 biere urghhh" gedruk

Sien, dit spaar u een reël kode, maar dit sal die lewe baie makliker maak vir spelkodering (vertrou my, ek het dit op die moeilike manier geleer, en u wil nie daarvan weet nie)! Gewoonlik moet u vir FOR -lus gaan as u die aantal kere wat u 'n kodeblok wil herhaal, sterk gedefinieer het. WAARSKUWING: Die veranderlike wat saam met die for -lus saamgevoer is, sal slegs binne die for -lus self bestaan, as u dit oral buite die for -lus verwys, sal Python u begin byt en vra 'Waarna bedoel u dit ???"

Tic-Tac-Toe gebruik baie lus. U kan dit nie bekostig om alles na te gaan elke keer as 'n veranderlike verander nie ('n ware pyn). Maar wat ek gedoen het, was om die reël van Tic-Tac-Toe-anatomie te ontdek, die waarde in die for-lus te verander, om al drie die kolomme simbole na te gaan, en ek hoef net Python te leer hoe om een te kontroleer! Kyk gerus na Stack Overflow vir nog vrae.

Stap 10: Vra vir gebruikers se insette - invoer ()

Vra vir gebruikers se insette - invoer ()
Vra vir gebruikers se insette - invoer ()

Laastens, maar nie die minste nie, u is die skepper van die spel en iemand gaan u speletjie speel! En jy kan nooit raai wat hulle doen nie. Dus, wat u kan doen, is om te doen wat hulle aan u program gesê het, laat hulle dinge direk invoer! Saam is INPUT en PRINT waarskynlik die mees fundamentele metodes vir elke in Python; u sal dit nodig hê om te oorleef (hulle is in elke spelkode, ek kan 100,00% waarborg)! Dit is eenvoudig genoeg, ken slegs 'n veranderlike toe en laat dit wees wat die gebruiker wil hê:

alo = input ("Tik u gelukkige nommer in!")

WAARSKUWING: Daar is baie soorte insette, meer oor Stack Overflow. Hulle sal altyd werk as u dit net so invoer (). Maar soms wil u hê dat dit spesifiek moet wees, soos 'n heelgetal -invoer of float -invoer (standaard is string).

lucky_day = int (input ("Yessss your lucky day! Tik 'n nommer hier:") #Tik nie nou letters nie, jy wil nie #om met Python te mors nie!

Tic-Tac-Toe benodig 'n klomp hiervan! Ek is seker dat u dit self kan uitmaak, uit hoe ek weet waarheen die gebruikers gaan en waarna hulle mik (u het dit reg, ek weet nie … maar ek het insette () gebruik).

Stap 11: Doen ekstra navorsing oor al die metodes wat u benodig

Doen addisionele navorsing oor al die metodes wat u nodig het!
Doen addisionele navorsing oor al die metodes wat u nodig het!

Ja, jy hoef nie alles van Python te weet om 'n speletjie te skep nie; jy hoef eintlik net genoeg te weet, begin met die Ultimate 7 (stap 4-10, ek is seker dat jy elkeen op een of ander manier moet aanraak vir 'n spel), en as u nie dink dat al hierdie 7 kan voldoen aan wat u doen nie. Python het baie verrassing, en soms is daar 'n paar terminologiemetodes wat spesifiek vir hierdie spesifieke gebruik is; u weet nooit. Maak dus seker dat u hulle soek met Google of Stack Overflow!

My Tic-Tac-Toe gebruik al die "Big Seven" en nog 'n bietjie meer, maar nie veel nie. Ek is seker enigiemand kan dit doen!

Maak seker dat u almal op die papier neerskryf, en speel met alles wat u nodig het om te speel, verstaan die probleem voordat u daaraan hang. Voel jy genoeg voorbereid? Kom ons gaan na… die laaste stap !!! STIK BY MY HIER, jy is amper daar!

Stap 12: Bou 'n skeletraamwerk vir u kode wat werk

Bou 'n skeletraamwerk vir u kode wat werk!
Bou 'n skeletraamwerk vir u kode wat werk!

Ek wil u glad nie ontmoedig nie, maar as u 'n speletjie wil skep wat vir almal werk, moet u eers eers werk! Versamel al die materiaal wat u benodig, en stel die raamwerk op. Ek weet dit is makliker gesê as gedaan, maar met al die papierwerke gereed (as u iets gedoen het soos ek u gesê het), moet u klaar wees.

Moenie die sintaksisfoute in die eerste plek pla nie. Dit is belangrik dat u u kode sonder enige onderbreking voltooi, slegs wanneer u 'n doodloopstraat bereik wat u moet stop. Ons mense, is sensitief vir denkstrome, ek het 'n situasie ondervind toe alles so glad en vloeiend vloei as wat ek badkamer toe gegaan het … Die volgende ding wat ek weet, het ek die gedagte verloor. So ja, moenie agter my aan herhaal nie! Sit alles in u kop neer terwyl dit nog daar is en eers vars.

Die Tic-Tac-Toe-proses sluit in om die gebruikersinvoer te vra, met behulp van input (), gebruik terwyl om slegs die geldige insette te suiwer. Dan word 'n stel as elif anders, vir en terwyl uitgelê om elke keer te kyk of daar 'n wenner is. Geen wen nie, en solank die lus die spel laat voortduur totdat daar een of al 9 spasies beset is, wat 'n gelykop uitslag tot gevolg het.

Nadat u seker gemaak het dat dit die spel is, begin u die program en loop u later na sintaksis of semantiese foute. En weer, bou eers 'n speletjie vir jouself; moenie eers ballisties kreatief wees voordat jou oorspronklike raam nog daar was nie. Maak dit nou klaar, en gaan aan! U spel is daar, waarop wag u ???

Stap 13: Kry jouself daar buite, toets en maak jouself 'n SPEL

Kry jouself daar buite, toets en maak jouself 'n SPEL!
Kry jouself daar buite, toets en maak jouself 'n SPEL!

Dis dit! Al wat u nou hoef te doen is om nie al u vooraf pogings te mors nie, maar stel uself daar buite! Ek glo dat as u al hierdie stappe volg, u absoluut voldoende sal wees om 'n speletjie te skep. As u dit nie doen nie, moenie moed opgee nie; Hierdie instruksie is om almal te help, maar slegs u kan die lot van u SPEL bepaal! Onthou, moenie moed opgee nie, bou eers die geraamtes. As daar vreemde sintaksisfoute is wat u nie kan sien nie, soek hulp deur Stack Overflow, dit het my deur dik en dun bygebly!

In elk geval, tot slot, baie geluk met u Python -reis, programmeer 'n speletjie, maak my trots, want ONS IS PROGRAMMERZZZZZZZ !!!!!

P/S: Stap 14 vir kreatiewe aanmoediging!

Stap 14: * EKSTRA! * Nadat u weergawe 1.0 werk, is dit gerig op kreatiwiteit

* EKSTRA!* Nadat u weergawe 1.0 werk, is dit gerig op kreatiwiteit!
* EKSTRA!* Nadat u weergawe 1.0 werk, is dit gerig op kreatiwiteit!

As jy dit nog lees, wonderlik! U hoef dit nie te doen nie, maar ek wil u net laat weet dat alles vlot vir u werk, SLEGS as wat u kan wysig, sodat ander ook u program kan gebruik; versier dit weer vir spelervriendelikheid; of gradeer u speletjie op (ek het my Tic-Tac-Toe opgegradeer deur 'n AI te programmeer! Dit het my 'n week geneem (of 7/8 van my tyd daarvoor)!). Maak seker dat u Stack Overflow gebruik en gebruik, as daar enige vrae is. Ek wens jou baie geluk, voltooi jou speletjie, deel dit in die kommentaar hieronder en versprei die koderingsbeweging !!!

ONS IS PROGRAMMERZZZZ !!!!!

Aanbeveel: