Så här kodar du ditt eget äventyrsspel i Python

Raspberry Pi är en underbar bit av teknik, men många människor använder inte den till sin fulla potential. Med din Raspberry Pi kan du skapa allt du vill - en robot som känner av sin miljö, ett mediecenter för att titta på filmer eller en fantasivärld som skapas av några enkla kodlinjer och en hel del fantasi från dig själv.

På 1980-talet var datorgrafik fortfarande i sin spädbarn, med blockiga speltecken och en begränsad färgpalett att arbeta med. Det var mycket vanligt att äventyrs- och rollspel skulle vara helt textdrivna, med spelaren som använder sin fantasi för att skapa visioner i spelvärlden.

Spel som Zork skapade rika världar, med engagerande historier och karaktärer, men med mycket få grafik för att illustrera omgivningarna. Detta var så länge till slutet av 1980-talet och början av 90-talet, och ändrade bara på grund av det fantastiska arbetet av LucasArts, som skapade en samling klassiska grafiska äventyrsspel som Loom, Monkey Island och Full Throttle.

  • Kolla in vår samling fantastiska Raspberry Pi-projekt

För den här handledningen använder vi vår Raspberry Pi och ett programmeringsspråk som heter Python för att skapa vårt eget texteventyr med vår egen spelvärld och några tecken att bevara den världen. Och allt detta kommer att skapas med någon Python-kod och några programmeringskoncept.

Python är ett lättläst programmeringsspråk som har blivit en fast favorit för Raspberry Pi-användare och skolor över hela Storbritannien.

Så vad är Python?

Python är ett textprogrammeringsspråk, och därmed menar vi att det skrivs in i en redaktör. Python använder en mycket förlåtande syntax och är väldigt lätt att läsa, vilket gör att lärandet kodar en riktigt trevlig upplevelse.

På Raspberry Pi har vi redan en bra kodredigerare installerad som standard - den heter IDLE och vi kommer att använda den för att bygga vårt spel. Du kan hitta en länk till IDLE på Raspberry Pi-skrivbordet.

Python kommer förinstallerad på alla Raspberry Pi som kör Raspbian operativsystem. Om du inte har installerat Raspbian på din Pi kan du ta en kopia från Raspberry Pi-webbplatsen.

Det är en del av det lätta att använda NOOBS-arkivet (New Out of the Box Software) som kan laddas ner och sedan extraheras till ett tomt 4 GB (eller högre) SD-kort.

För närvarande finns det två versioner av Python tillgängliga: versioner 2.7 och 3. För den här handledningen använder vi 2,7 eftersom den har största möjliga support och dokumentation. Python 3 är ett utmärkt språk att lära sig och det är verkligen språkets framtid, men det är för närvarande i ett flussläge och bör endast användas av erfarna Python-programmerare.

Skapa en berättelse

Vårt spel behöver två saker: en historia för att hålla spelaren underhöll, och logik för att styra hur historien utvecklas. För vår historia skapar vi Narules värld, där magi och äventyr ligger runt varje hörn. Och vi skapar en hjälte - du - som måste resa landet, besöka nya byar och bosättningar, och prata med människor för att lära sig mer om detta land och den mörka skuggan dödade på den.

För att starta vårt projekt, har vi skapat en del berättelse för att du ska kunna expandera. Var beredd att göra historien din egen - det är hela meningen med denna handledning. Detta är ditt spel. För att komma igång har vi skapat en kod för att fungera som en startmall. Du kan ladda ner en gratis kopia här.

Ladda ner koden och öppna den med IDLE ('File> Open' och navigera till var du hämtade koden). Ta en titt på koden och var särskilt uppmärksam på några rader som börjar med en # eftersom det är kommentarer i koden som har lagts till för att hjälpa dig att förstå vad koden gör vid den tiden.

För närvarande har vår kod en grundläggande historia för att vi ska kunna expandera, och vi kommer att göra det under denna handledning. Vår historia utvecklas via block av text som bildar vår berättelse, och du kommer att se att varje block ser ut som det här:

chapter1 = "Det var en kall natt och regnet svepte in från

väst med en förkärlek som bara är känd för gudarna "

Dessa kallas variabler, och de gör det möjligt för oss att lagra mycket text eller siffror. Vi använder dem för att innehålla vår historia, och när vi vill använda dem använder vi skrivarfunktionen så här:

skriv ut kapitel1

Utskriftsfunktionen ser inuti variabeln och skriver ut innehållet på skärmen vilket är väldigt användbart och innebär att vi bara måste skriva historien en gång och vi kan använda den så många gånger som vi önskar.

Föregående Sida 1 av 15 Nästa Föregående Sida 1 av 15 Nästa

Programmering begrepp

Python är ett riktigt bra språk att lära sig eftersom det är väldigt lätt att förstå, och när du förstår begreppen programmeringslogik med Python kommer du att vara väl på väg att utveckla större applikationer.

Oavsett vilket språk du använder, innehåller de underliggande begreppen kodning en fast grund som kan användas på många språk. Huvudbegreppen är:

sekvenser

En rad uppgifter som måste fyllas i i en viss ordning. Till exempel behövde stegen att lösa en labyrint.

Loops

Ett sätt att upprepa en sekvens. Kan köras för evigt (medan True) eller kontrolleras med hjälp av ett för uttalande (för x i intervallet (0,3)).

parallel~~POS=TRUNC

Running mer än en sekvens av kod samtidigt.

evenemang

En händelse är en utlösare som startar en sekvens av kod och den mest synliga händelsen i spelet vi skapar går in i vår hjältes namn för att starta spelet.

Data

Vi använder en variabel för att lagra värdet av vår hjälte namn och då kan vi senare hämta och manipulera variabeln för att visa spelarens namn i hela spelet, anpassa spelupplevelsen.

villkors

Conditionals utgör grunden för vår logik, och de ger en metod för att vi ska kunna jämföra data mot ingången från spelaren. Vi använde villkor i vårt spel för att jämföra svaret på det förväntade svaret. Om de matchade, skulle det i Booles logik klassas som TRUE.

operatörer

Det här är de grundläggande matematiska regler som vi lärde oss tillbaka i skolan. Vi kan tillämpa operatörer på text och nummer, vilket gör det möjligt för oss att utföra beräkningar i vår kod och iterera data om det behövs.

Föregående Sida 2 av 15 Nästa Föregående Sida 2 av 15 Nästa

1. Spela spelet

IDLE har två fönster att arbeta med: redaktören, som innehåller vår kod och ett skal, där vårt spel spelas. För att starta spelet, klicka i redaktorn på "Kör" och sedan "Kör modul".

Skalfönstret visas framför alla andra fönster och vårt spel börjar spela.

Föregående Sida 3 av 15 Nästa Föregående Sida 3 av 15 Nästa

2. Importera moduler

Moduler som skapats av andra kodare kan importeras till din kod. Vi importerar två moduler: Slumpmässig, som innehåller kod som gör att vi kan använda slumpmässigt val för vår karaktär; och Time, vilket gör det möjligt för oss att arbeta med tiden och pausa spelet.

Föregående Sida 4 av 15 Nästa Föregående Sida 4 av 15 Nästa

3. Skapa funktioner

Du kan gruppera mycket kod till en funktion. För att skapa en använder vi def name (): - detta skapar en funktion som heter namn, och vi kan ringa funktionen vad vi vill.

Vi trycker på [Enter] och Python indrager vår kod med fyra mellanslag och väntar på att koden ska köras i den här funktionen.

Föregående Sida 5 av 15 Nästa Föregående Sida 5 av 15 Nästa

4. Använd variabler

Vi använder variabler för att lagra information som vi kan använda senare. Vi sparar till exempel vår berättelse och använder den många gånger igen. Tänk på variabler som tomma lådor - vi kan lägga något i dem och skriva deras namn på sidan.

Du kommer att se termen "global" som används med vissa variabla namn; Detta gör att vi kan använda dem inom och utanför funktionerna.

Föregående Sida 6 av 15 Nästa Föregående Sida 6 av 15 Nästa

5. Få inmatning

Råinmatning är Python-sättet att be om inmatning från spelaren. Vi använder den för att fånga spelarens namn och att fånga sina beslut i spelet.

Råingången tar in tangentbordsinmatningen som en textsträng, så alla upptagna nummer måste konverteras till ett heltal eller float, och detta kan göras med hjälp av int () och float () hjälparfunktionerna.

Föregående Sida 7 av 15 Nästa Föregående Sida 7 av 15 Nästa

6. Gör val

Villkorliga uttalanden är logiska val vi använder dem för att styra spelets flöde - till exempel vilken riktning går du??

Vi lagrar den riktning som spelaren vill gå som en variabel som heter flytt, jämför sedan värdet som lagras i variabeln med den tangent vi bad användaren att trycka på. Om de två matcherna körs den relaterade koden.

Föregående Sida 8 av 15 Nästa Föregående Sida 8 av 15 Nästa

7. Annat och annars om

Om ... elif ... annars är ytterligare villkorliga uttalanden och de fungerar enligt följande: Det första villkoret ses, och om det är korrekt (eller sant i Python) körs koden under detta villkor. Annars om (elif) detta villkor är sant körs koden för detta uttalande.

Annars är alla ovanstående villkor falska, då måste det vara sant, så den här koden körs.

Föregående Sida 9 av 15 Nästa Föregående Sida 9 av 15 Nästa

8. Använd listor

Listor är stora behållare som kan rymma mycket data. Tänk på dem som ett arkivskåp fyllt med dokument. I vårt spel använde vi en lista för att lagra vår inventering av objekt (vårt svärd och sköld).

Vi skapar först en tom lista med hjälp av:

"vapen = []"

Precis som variabler kan vi ge vår lista något namn vi önskar. För att lägga till i vår lista använder vi:

weapons.append ( "svärd")

Föregående Sida 10 av 15 Nästa Föregående Sida 10 av 15 Nästa

9. Välj ett nummer

Slumpmässiga siffror hjälper vår hjälte att vara helt unik. För att slumpmässigt välja dessa tal använder vi den slumpmässiga modulen, i synnerhet en funktion som kallas randint eller slumpmässigt heltal.

För att använda randint måste vi berätta vad antal tal som ska fungera med, och detta görs enligt följande:

randint (5,20)

Detta skapar ett intervall mellan 5 och 20, och frågar randint att välja ett slumptal i det intervallet.

Föregående Sida 11 av 15 Nästa Föregående Sida 11 av 15 Nästa

10. presentera människor

Vårt spel behöver intressanta människor att prata med, så låt oss skapa en. Du kommer att se på rad 57 i koden att vi har en ny funktion som hanterar en slumpmässig bybor.

Deras namn är slumpmässigt och väljs från en lista, men först slår vi listan och väljer sedan det första objektet från listan, vilket i Python alltid är 0 (noll) eller npcnamechoice [0].

Föregående Sida 12 av 15 Nästa Föregående Sida 12 av 15 Nästa

11. Expandera historien

Att lägga till nytt innehåll i ditt spel är enkelt. Om du vill lägga till nya tecken eller bybor, är det bästa sättet att skapa en ny funktion. På så sätt ingår koden för varje ny post i sin egen funktion, men kan enkelt användas i ditt spel.

Din berättelse bör sammanfoga dessa funktioner och ge en linjär historia för den spelare som ska följa.

Föregående Sida 13 av 15 Nästa Föregående Sida 13 av 15 Nästa

12. Välj en kamp

Vad sägs om kamp? Fiender kan skapas på samma sätt som bybor, men kanske du vill ge dem slumpmässigt tilldelade hälso- och magapunkter (HP och MP i äventyr tala), precis som du har gett din hjälte.

Skapa en ny funktion som innehåller en fiende och placera den i din kod vid en bestämd punkt, och testa sedan din kod.

Föregående Sida 14 av 15 Nästa Föregående Sida 14 av 15 Nästa

13. Gå med strängar och siffror

När du arbetar med text eller, i Python-tal, strängar, kanske vi vill gå med i en sträng och ett tal tillsammans. Om vi ​​försöker göra det så här:

skriv ut "Hej" + 1

Python ger ett fel som säger att de två inte kan förenas. Men om vi sätter in heltalet i en hjälpfunktion som heter str () kan vi gå med dem båda tillsammans som så:

skriv ut "Hej" + str (1)

  • Njut av den här artikeln? Utöka din kunskap om Linux, få mer från din kod och upptäck de senaste open source-utvecklingen inom Linux-format. Läs vår provtagare idag och dra nytta av erbjudandet inomhus.
Föregående Sida 15 av 15 Nästa Föregående Sida 15 av 15 Nästa
aktier