Inhoudsopgave:

CODE EEN SPEL MET PYTHON (VOOR DUMMIES!): 14 stappen
CODE EEN SPEL MET PYTHON (VOOR DUMMIES!): 14 stappen

Video: CODE EEN SPEL MET PYTHON (VOOR DUMMIES!): 14 stappen

Video: CODE EEN SPEL MET PYTHON (VOOR DUMMIES!): 14 stappen
Video: PYTHON TUTORIAL VOOR BEGINNERS | 👉 Gratis Python cursus om te leren programmeren (Nederlands) 2024, Juli-
Anonim
CODE EEN SPEL MET PYTHON (VOOR Dummies!)
CODE EEN SPEL MET PYTHON (VOOR Dummies!)

Welkom bij Python, de op twee na populairste programmeertaal ter wereld!… en misschien wel de eenvoudigste! Wist je dat YouTube en Google allebei Python als hun hoofdtaal hebben voor hun succesvolle apps en websites die je ziet? GOED… Nu weet je het; en je moet ook bedenken waarom Python ook extreem belangrijk is voor de toekomst van The 4.0 Modern Technology Era!

Je weet misschien ook dat de game-coderingsindustrie meer dan ooit bloeit, omdat steeds meer mensen tegenwoordig smartphones bezitten. En Python is een vrij ideale codeertaal die kan worden gebruikt voor eenvoudige … maar goed geprogrammeerde, verslavende games! Nu klinkt het misschien als een verdomd ontmoedigende taak wanneer het woord "game-codering" in je opkomt… Maar maak je geen zorgen! Via deze Instructable word je samen met mij op deze reis gezet over hoe je een eenvoudig spel volledig kunt coderen, van A tot Z, voor iedereen, snel en kort, zonder te betalen!

Als je Python nog niet hebt gehad, klik dan HIER om deze geweldige taal te downloaden (en dier ook! Ik denk…). Het is helemaal gratis. Als je klaar bent, tijd voor wat plezier!

Stap 1: Begrijp welk spel je gaat doen

Begrijp welk spel je gaat doen!
Begrijp welk spel je gaat doen!

Het is van cruciaal belang dat u voor een Python-programma zit en precies weet wat u moet coderen.

Onthoud dat dit Instructable voor IEDEREEN is! En je zou niet willen kiezen voor een doorgewinterd idee zoals Asphalt 8 of FIFA Mobile; Natuurlijk is Python tot alles in staat, maar het zal wat tijd kosten om Python te belijden (waarschijnlijk 2 jaar! Past niet in deze Instructable *urgh*). In plaats daarvan zou je willen vechten met traditionele ideeën zoals Tic-Tac-Toe (waarvan ik heb gekozen om een voorbeeld voor je te zijn!), Galgje, enz. Spullen die geen grafisch vereisen (grafisch brengt je naar een andere … ohhhh … ahh een andere wereld, je kunt het proberen! Maar niet hier, want nogmaals, het kost echt tijd). Bedenk wat je inspireert, een spel waaraan je misschien speciale gehechtheden hebt, of een spel waarvan je precies weet hoe het werkt.

Stap 2: Analyseer je spel

Analyseer je spel!
Analyseer je spel!

Nadat je hebt besloten waaraan je jezelf gaat wijden voor mogelijk de volgende week coderen, is het tijd om op te schrijven wat de game nodig heeft, zodat je een beter beeld hebt van hoe de game is opgezet!

Mijn 3x3 Tic-Tac-Toe zou bijvoorbeeld 9 lege ruimtes nodig hebben waar de gebruikers kunnen afdrukken in "X" of "O". Dan hebben we nog 9 lege plekken nodig om de zetten van de gebruikers te corresponderen en op te slaan. Ik zou iets moeten doen om elke keer dat een speler zijn/haar termijn beëindigt heen en weer te schakelen tussen "X" en "O". Ik zou ook het proces van het wisselen en opslaan van zetten moeten herhalen totdat er later een winnaar is, door 3 precies dezelfde opeenvolgende symbolen in horizontale, verticale of diagonale richting te bekijken.

In principe is dat het! Je hoeft niet meer te doen dan dat… nog, ervan uitgaande dat je geen eerdere ervaring hebt tot heel weinig kennis over Python! Nu … de volgende stap vereist dat je jezelf veel afvraagt over hoe je wat je hebt geanalyseerd … in code kunt omzetten!

Stap 3: Vorm uw analyse om tot "computerachtige" grammatica

Vorm uw analyse in
Vorm uw analyse in

Inmiddels zou je moeten begrijpen waar het spel naartoe gaat, in je hoofd, in je taal, met je logica! Nou… de computer zal het niet begrijpen; en aangezien we zoveel meer intelligentie hebben, zouden we de eerste stap moeten zetten om in zijn taal te praten.

Terug naar mijn Tic-Tac-Toe als voorbeeld, verwijzend naar stap 2, dat ik eerst ongeveer 9 lege ruimtes nodig heb om de zetten van de gebruikers op te slaan. Een manier zou kunnen zijn om Python te vertellen dat hij een lijst moet maken met de 9 spaties! En terwijl de gebruikers hun zetten intypen, vervangt u diezelfde spatie beurtelings door de "X" of "O". Ik kan een soort lusfuncties in Python gebruiken om het proces vele malen te herhalen totdat er een gelijkspel is of … een winnaar! De manier waarop ik de winnaar bepaal, is door een voorwaarde te gebruiken, dat het spel doorgaat in zijn lus als er niets gebeurt, of anders als alle 9 velden bezet zijn of als er een winnaar is, de lus wordt afgebroken en het spel eindigt!

Deze stap is, geen reden om te betogen, de moeilijkste stap in deze hele Instructable! Je moet nu menselijke logica gebruiken om te zien hoe je kunt converteren wat je hebt geschreven in Python. Je hoeft je geen zorgen te maken of Python in staat is om al je verbeeldingskracht aan te kunnen, het heeft genoeg codeermateriaal om het te bevredigen! Als je de weg niet kunt vinden (wat meestal het geval zou zijn), is een zoekmachine die ik super aanbeveel, Stack Overflow, het is een kleine gemeenschap waar mensen zich meestal de meest absurde vragen stellen die ik ooit heb gezien, en ook waar er zijn enkele van de meest briljante antwoorden die iemand ervan kan krijgen!

BLIJF HIER BIJ MIJ! In de volgende 7 stappen zal ik je 7 Python-methoden laten zien die ik allemaal nodig vond in elk tot het eenvoudigst speelbare spel! Laat de spoedcursus beginnen!

Stap 4: Afschriften, cijfers of objecten afdrukken - Print()

Afschriften, cijfers of objecten afdrukken - Print()
Afschriften, cijfers of objecten afdrukken - Print()

Dit is waarschijnlijk het meest fundamentele ding ooit in Python! Als je niets kunt afdrukken, hoe geweldig je programma ook is, het is nutteloos voor de wereld. De manier waarop het werkt is: print([typ hier iets]). Print('Je bent slim') laat Python bijvoorbeeld "Je bent slim" afdrukken (WAARSCHUWING: het maakt niet uit of je enkele aanhalingstekens of dubbele aanhalingstekens gebruikt, je moet er een gebruiken en je moet de string met dezelfde aanhalingstekens!). Blijf spelen met de print()-functie, laat Python alles afdrukken waar je je goed bij voelt (dat zou ik doen!). Totdat je het gevoel hebt dat je door kunt gaan naar de volgende stap, kun je eventueel aanvullend onderzoek doen naar print() voor een beter begrip, indien gewenst via Google of Stack Overflow.

print ("Yayyyy ik ben hier!")

print('Ik ben zo goed omg')

P/S: Je kunt dubbele aanhalingstekens tussen enkele aanhalingstekens plaatsen en vice versa, maar plaats niet hetzelfde in elkaar of… je zult zien wat ik bedoel!

Mijn Tic-Tac-Toe-project… vereist natuurlijk veel printwerk, van het printen van het bord en de gebruikersinterface tot het bevestigen van de status van het spel.

Stap 5: Maak een lijst met verschillende objecten -

Maak een lijst met verschillende objecten -
Maak een lijst met verschillende objecten -

Een lijst bevat alle variabelen waarin je het wilt plaatsen, het is echt een geschenk dat Python maakt! Nu hoef je er alleen maar een naam aan te geven, vierkante haken te plaatsen, variabelen te scheiden met komma's of je kunt het ook leeg laten (zodat je ze later kunt toevoegen) en je bent klaar om te gaan! WAARSCHUWING: je wilt het niet naar sommige methoden noemen, anders treedt er een syntaxisfout op, als de naam in andere kleuren dan zwart verschijnt, moet je bel meteen worden ingeschakeld!

dalist = [5, 7, "ik ben knap", 12 + 1, 3.141592657]

of…

dalistisch =

dalist.append(5) #now dalist heeft [5] als element!

Herinner je je het bord met 9 vakjes waar ik je over vertelde? Dit is waar het gebruikt gaat worden! Het zal eerst alle "-" opslaan; en als de speler een slash maakt, zal zijn symbool de "-" vervangen. Alle elementen in een lijst beginnen bij 0, dus 0 verwijst naar het 1e element, 1 verwijst naar het 2e element, enzovoort. Een ideaal voorbeeld zou zijn: werk er alsjeblieft hard aan om je deze hier voor te stellen, dat de 3 plekken 0, 1, 2 de eerste rij van het 3x3-bord zijn. Als dalist[0] en dalist[1] en dalist[3] allemaal naar hetzelfde symbool verwijzen, dan hebben we een winnaar! Kijk, een lijst kan erg handig zijn, en eenvoudiger dan je denkt! Meer kennis over Python-lijst is te vinden via Google of Stack Overflow.

Stap 6: Stel voorwaarde(n) voor opdrachten vast - If, Elif & Else

Stel voorwaarde(n) voor opdrachten vast - If, Elif & Else
Stel voorwaarde(n) voor opdrachten vast - If, Elif & Else

Het leven verloopt niet altijd zoals je wilt, en soms doe je dit alleen als het scenario aan je eisen voldoet. Hetzelfde geldt voor Python! Je zou niet willen dat het door alles en alle situaties gaat, want dat is een echte pijn! Daarom is de if-voorwaarde zo handig. Het werkt precies zoals het wordt geïnterpreteerd, de commando's in dat if-blok worden alleen uitgevoerd ALS alleen als het voldoet aan wat je vraagt. U drukt bijvoorbeeld alleen de verklaring "Yessss" af ALS uw happy-modus waar is (ervan uitgaande dat de identifier al van tevoren is aangegeven):

gelukkig = waar

indien gelukkig == waar:

print("Jasss")

Als er een IF is, is er meestal een ELSE voor de rest van de scenario's die niet overeenkomen met de eerder opgestelde voorwaarde. Stel, als je verdrietig bent, druk je in plaats daarvan "Noooo" (vervolg van de if-verklaring hierboven):

anders:

print("Noooo") #Maar het zal dit toch niet afdrukken, maak je geen zorgen!

Er is een speciaal type if in Python dat we ELIF noemen. Uit de naam zelf zou je waarschijnlijk kunnen opmaken dat het de combinatie is van als en anders. Dus als je twee of meer voorwaarden hebt, is de elif degene die je zou bellen (aangenomen dat de score daarvoor wordt toegewezen aan enkele willekeurige getallen):

score = 65

als score >= 90:

print("Goed gedaan!")

elif 80 <= score < 90:

print("Goede poging!")

elif 70 <= score < 80:

print("Het had beter gekund!")

anders:

print("Nou……")

WAARSCHUWING: Inspringen is hier van belang! Het zal bepalen welke commando's bij welke if, elif of else instructie horen. Wees dus voorzichtig bij het ontwerpen van uw code! U kunt ook genest if-statements samen zullen een voorwaarde ALLEEN in overweging worden genomen als de buitenste if eerst waar is. En nogmaals… Inspringen!

In mijn Tic-Tac-Toe-project heb ik er letterlijk tonnen van gebruikt. Het 3x3-spel klinkt misschien eenvoudig genoeg, maar je zult een heleboel scenario's moeten overwegen die kunnen plaatsvinden. In dit geval moet ik overwegen of er een winnaar is of niet door de 3 opeenvolgende markeringen in alle richtingen te controleren. Ja… raak nu niet in de war, want het is ook niet zo ingewikkeld, het is gewoon een reeks overbodige codes, en alles wat je hoeft te doen is het controlegebied te veranderen en klaar! Klik voor meer diepgaande kennis over dit onderwerp op Stack Overflow.

Stap 7: Al met al meer voorwaarden - en & Of

Meer Algemene Voorwaarden - en & Of
Meer Algemene Voorwaarden - en & Of

Wie zei dat één voorwaarde altijd de enige voorwaarde kan zijn? Een enkele voorwaarde kan ook meerdere criteria hebben. Hoewel geneste if-instructie een kortetermijnoplossing kan zijn, maakt het de code aanzienlijk langer. Er zijn dus de EN & OF-methoden. Daar worden ze allemaal gebruikt om voorwaarden samen te voegen tot één groot verdrag. Het enige verschil tussen beide is dat en vereist dat alle voorwaarden in die if-statement correct zijn voordat je verder gaat; terwijl of slechts één van hen correct is. Beide kunnen erg handig zijn als ze op de juiste manier worden gebruikt, wees wijs of deze twee kunnen je hersenlogica in de war brengen!

n = 5

a = 7

als n == 5 en a == 6:

print("Nee zou dit niet moeten afdrukken")

als n == 3 of a == 7:

print("Yupp zou dit moeten printen")

Ik heb en & of serieus gebruikt om mijn Tic-Tac-Toe drastisch in te korten, omdat er soms tot 3 voorwaarden tegelijk zijn, wanneer ik alle 3 de posities van het merkteken moet overwegen om te bepalen of er een winnaar is of niet. En & of zou super handig zijn! Ga voor meer informatie naar Stack Overflow.

Stap 8: Een lus die opdrachten herhaalt totdat aan de criteria wordt voldaan - While

Een lus die opdrachten herhaalt totdat aan de criteria wordt voldaan - While
Een lus die opdrachten herhaalt totdat aan de criteria wordt voldaan - While

We hebben besproken hoe u kunt afdrukken en dingen alleen kunt verwerken als de voorwaarde waar is. Dus hoe zit het met … dat blok vele malen herhalen, helemaal totdat aan de voorwaarde is voldaan? Ja, daarom geeft Python je een WHILE!

n = 1

terwijl n = 1:

print("hooooo") #Ja, dit zal "hooooo" voor altijd afdrukken… en altijd… eigenlijk… voor altijd… en altijd…

Dit kan een probleem zijn, omdat je niet wilt dat je commando's oneindig lang doorlopen. Dus meestal, als je while gebruikt, is er een techniek waarbij je de waarde van de voorwaarde verandert elke keer dat deze in een lus wordt geplaatst, zodat de voorwaarde wordt bijgewerkt, en tot het moment dat het de criteria nodig heeft, zal het uiteindelijk stoppen. U kunt bijvoorbeeld de waarde een voor een bij zichzelf optellen en vervolgens de while instellen om te werken tot een soort waarde die het aantal uiteindelijk zal bereiken:

n = 1

terwijl n < 5:

print("Ik heb " + n + " bieren boiiiiii!")

n = n + 1 #of je kunt ook schrijven n += 1

Hoe dit werkt, is dat n zichzelf blijft optellen tot 1 aan het einde van elk codeblok. De while-lus loopt door zolang n nog kleiner is dan 5. Nu tot een moment (met name 4 keer lus), zal n de waarde 5 bereiken en stopt de lus!

gelukkig = waar

terwijl blij:

print("Yayyy I did it!") # Doe dit niet echt, maar je verdiende te weten dat je er altijd komt!

Terwijl het vooral handig kan zijn in games zoals Tic-Tac-Toe, die van foutcontrole. Soms moet je je ondeugende gebruikers veroorloven en als ze het blijven verknoeien, zal de while-lus ze op afstand houden totdat ze zich daadwerkelijk gedragen en echte geldige inputs invoeren! Meer info op Stack Overflow

Stap 9: While Loop versie 2.0 - For

While Loop versie 2.0 - For
While Loop versie 2.0 - For

Er zijn zeker situaties waarin FOR door while zal worden onttroond, maar for doet iets anders voor jou dat terwijl dat niet kan… Het heeft de waarde waarin het zal herhalen, vereist dat de gebruiker het bereik van looping uiteenzet (Ja, voor loop never loop voor altijd en altijd … eigenlijk …), en draag de loop-waarde ook elke keer dat het transformeert! Nu ben ik misschien te langdradig, maar neem dit voorbeeld in gedachten, stel dat tm de waarde is die u wilt voortzetten met de for-lus:

voor tm in bereik (1, 5):

print("Ik heb al " + tm + " bieren urghhh") # Dit zal afdrukken "Ik heb al 1….5 bieren urghhh"

Kijk, het bespaart je één regel code, maar het zal het leven van games een stuk gemakkelijker maken (geloof me, ik heb dit op de harde manier geleerd, en je wilt er niets van weten)! Gewoonlijk moet je voor de FOR-lus gaan als je sterk in je hoofd hebt gedefinieerd hoe vaak je een codeblok wilt herhalen. WAARSCHUWING: De variabele die met de for-lus werd meegedragen, bestaat alleen binnen de for-lus zelf, als je ernaar verwijst ergens buiten de for-lus, zal Python je gaan bijten en vragen: "Waar heb je het in godsnaam over???"

Tic-Tac-Toe gebruikt veel for-loop. Je kunt het je niet veroorloven om elke keer dat een variabele verandert alles te controleren (een echte pijn argh). Maar wat ik deed was de regel van de Tic-Tac-Toe-anatomie ontdekken, de waarde binnen de for-lus veranderen, om alle 3 kolommen met symbolen te controleren, waarbij ik Python alleen maar moest leren hoe ik er een moest controleren! Zorg ervoor dat je Stack Overflow bekijkt voor meer vragen.

Stap 10: Vraag om invoer van gebruikers - Input()

Vraag om invoer van gebruikers - Input()
Vraag om invoer van gebruikers - Input()

Last but not least, jij bent de maker van het spel en iemand gaat jouw spel spelen! En je raadt nooit wat ze van plan zijn. Dus wat je kunt doen, is doen wat ze je programma hebben verteld om te doen, laat ze direct dingen INPUT! Samen zijn INPUT en PRINT misschien wel de meest fundamentele methoden in Python, je hebt het nodig om te overleven (ze zitten in elke spelcode, ik kan 100,00% garanderen)! Dit is eenvoudig genoeg, wijs gewoon een variabele toe en laat het zijn wat de gebruiker wil:

alo = input("Typ je geluksgetal in!")

WAARSCHUWING: er zijn veel soorten invoer, meer over Stack Overflow. Ze zullen altijd werken als je het gewoon invoer() zo laat. Maar soms wilt u misschien dat het specifiek is, zoals een integer-invoer of float-invoer (standaard is string).

lucky_day = int(input("Yessss je geluksdag! Typ hier een getal: ") #Typ nu geen letters, je wilt niet #rotzooien met Python!

Tic-Tac-Toe heeft hier veel van nodig! Ik weet zeker dat je er zelf uit kunt komen, van hoe ik weet waar de gebruikers naartoe gaan en waar ze naar streven (je hebt het goed, ik weet het niet … maar ik heb input() gebruikt!).

Stap 11: Doe aanvullend onderzoek voor alle methoden die u nodig hebt

Doe aanvullend onderzoek voor alle methoden die u nodig hebt!
Doe aanvullend onderzoek voor alle methoden die u nodig hebt!

Yup, je hoeft niet alles over Python te weten om een game te maken, je hoeft eigenlijk alleen genoeg te weten, te beginnen met de Ultimate 7 (stap 4-10, ik weet zeker dat je ze allemaal op de een of andere manier een tijdje zult moeten aanraken game), en anders als je denkt dat al deze 7 niet kunnen voldoen aan wat je doet. Python heeft veel verrassingen, en soms zijn er enkele terminologiemethoden die voor dat zeer specifieke gebruik zijn, je weet maar nooit. Zoek ze dus zeker op met Google of Stack Overflow!

Mijn Tic-Tac-Toe gebruikte alle "Big Seven" en een klein beetje meer, maar niet veel. Ik weet zeker dat iedereen het kan!

Zorg ervoor dat je ze allemaal op het papier schrijft, en speel met alles wat je nodig hebt om te spelen, begrijp het probleem voordat je jezelf eraan vastklampt. Voel je je voldoende voorbereid? Laten we verder gaan met… de laatste stap!!! BLIJF HIER BIJ MIJ, je bent er bijna!

Stap 12: Bouw een skeletframe voor uw code die WERKT

Bouw een skeletframe voor uw code die WERKT!
Bouw een skeletframe voor uw code die WERKT!

Ik wil je helemaal niet ontmoedigen, maar als je een spel wilt maken dat voor iedereen werkt, moet het eerst legitiem werken, te beginnen bij jou! Verzamel alle materialen die je nodig hebt, zet het raamwerk op. Ik weet dat het makkelijker gezegd dan gedaan is, maar met al het papierwerk klaar (als je iets hebt gedaan zoals ik je had gezegd), zou je allemaal goed moeten zijn om te gaan.

Val de syntaxisfouten in het begin niet lastig. Het is belangrijk dat u uw code zonder enige onderbreking afmaakt, alleen wanneer u een doodlopende weg bereikt die u moet stoppen. Wij mensen, zijn gevoelig voor gedachtestromen, ik ben een situatie tegengekomen waarin alles zo soepel en vloeiend verliep, dan ging ik naar de badkamer … Voor ik het wist, verloor ik de gedachte. Dus ja, herhaal mij niet! Zet alles in je hoofd terwijl het er nog is en vers eerst.

Het Tic-Tac-Toe-proces omvat het vragen om de gebruikersinvoer, met behulp van input(), gebruik while om alleen de geldige invoer te zuiveren. Vervolgens wordt er een set van if elif else, for and while opgesteld om elke keer te controleren of er een winnaar is. Niemand wint, en de while-lus zorgt ervoor dat het spel doorgaat totdat er één of alle 9 velden bezet zijn, wat resulteert in een gelijkspel.

Nadat je zeker weet dat dit het spel IS, begin je het programma uit te voeren en zoek je later naar syntaxis- of semantische fouten. En nogmaals, bouw eerst een spel voor jezelf, ga NIET helemaal ballistisch creatief voordat je originele frame er al was. Doe het nu, en ga verder! Je spel is er, waar wacht je op???

Stap 13: Ga naar buiten, test en maak een SPEL voor jezelf

Ga naar buiten, test en maak een SPEL voor jezelf!
Ga naar buiten, test en maak een SPEL voor jezelf!

Dat is het! Het enige dat u nu hoeft te doen, is niet al uw inspanningen van tevoren te verspillen, uzelf eropuit te trekken! Ik geloof dat als je al deze stappen volgt, je absoluut voldoende zult zijn om een spel te maken. Als je dat niet doet, geef niet op, probeer het; Deze Instructable is om iedereen te helpen, maar alleen jij kunt het lot van je SPEL bepalen! Denk eraan, geef niet op, bouw eerst de skeletframes. Als er rare syntaxisfouten zijn die je niet kunt zien, zoek dan hulp via Stack Overflow, dit ding is me door dik en dun bijgebleven!

Hoe dan ook, om af te sluiten, veel succes op je Python-reis, programmeer een spel, maak me trots, want WIJ ZIJN PROGRAMMERZZZZZZZ!!!!!

P/S: Stap 14 voor creatieve aanmoediging!

Stap 14: *EXTRA!* Nadat uw versie 1.0 werkt, gericht op creativiteit

*EXTRA!* Nadat uw versie 1.0 werkt, gericht op creativiteit!
*EXTRA!* Nadat uw versie 1.0 werkt, gericht op creativiteit!

Als je dit nog steeds leest, geweldig! Dat hoeft niet, maar ik wil je alleen laten weten dat als alles soepel voor je werkt, ALLEEN je kunt bewerken zodat anderen je programma ook kunnen gebruiken; versier het opnieuw voor spelervriendelijkheid; of upgrade je game (ik heb mijn Tic-Tac-Toe geüpgraded door een AI te programmeren! Nu kostte het me een week (of 7/8 van mijn tijd ervoor) om te voltooien!). Zorg ervoor dat u Stack Overflow gebruikt en gebruikt als er vragen zijn. Ik wenste je veel succes, voltooi je spel, deel het in de onderstaande reactie en wijd de codeerbeweging op grote schaal!!!

WIJ ZIJN PROGRAMMERZZZZ!!!!!

Aanbevolen: