Gå til innhold

Hvordan lage enkle textspill?


Anbefalte innlegg

Hvordan kan jeg lage enkle textspill?

Som du for eksempell først må skrive inn ditt eget navn.

Etterpå bare sånn enkle ting som trykk 1 hvis du vil gå til høyre eller trykk 2 hvis du vil til venstre.

 

Jæeg vet egentlig hvordan man gjør noe av det, men jeg følerjeggjør det på en veldig dum måte...

Lenke til kommentar
Videoannonse
Annonse

Hvis du ikke vil skrive en skikkelig text-parser, skulle du slippe unna med en enkel loop og switch-case.

 

Kjapp pseudo av hvordan jeg ville lagt det opp

 

  //get name
 char input;
 while(cin.get(input)){
switch(input){
case '1': //do something; break;
case '2': //do something else; break;
}
//possible random encounter here
 }

 

Så får du ta testene om det er en vei i den retningen, om du treffere monsteret etc., i de forskjellige metodene du kaller. La til et mulig encounter i loopen, men den kan like godt være knyttet opp til en av de forskjellige metodene du har..

Lenke til kommentar

Mr.Gabaldi, viss du gjer det slik, må du ikkje trykke ENTER etter å ha tasta det du vil velje?

 

Og eg berre spør nett (ikkje fordi eg set spørsmål om koden din er god, men fordi eg lurar...) her, kvifor brukar du char input og ikkje string input eller int input?

Lenke til kommentar

Jo, helt riktig, du må trykke enter, noe som er en sub-optimal løsning, men jeg tenkte mer på å vise game-loop'en.. (Test input, kall metoder som behandler input, evt. kall tilfeldig hendelse)

Skal ikke påstå at koden er veldig god, da det er flere steder det kan optimaliseres (bl.a. ved å bruke cin.get() uten en variabel i switch).

 

Jeg kommer ikke på stående fot på hvordan lese inn fra bufferen direkte uten enter, som jo hadde vært en mer elegant måte å gjøre det på, men jeg kan jo også gjemme meg bak at med denne løsningen kan man trykke feil og endre det igjen uten at det gjør noe ;)

 

Ville nok faktisk bare brukt switch(cin.get()), som jo returnerer en int, så har ikke noe godt argument for å bruke char (annet enn at det var det første som falt meg inn i farten når jeg skrev det)...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...