Qbasic igre jednostavne za izradu
BASIC, što je kratica za Beginner's All-Purpose Symbolic Instruction Code, još uvijek je najpoznatiji programski jezik za apsolutne početnike, a QBasic je jednostavan tumač za njega kroz koji možete pisati i pokretati programe. Još uvijek postoji znatna zajednica QBasic hobista, a učenje izrade QBasic igara uči vas osnovama programiranja i vrlo je zabavno.
Početak rada s QBasicom
Ako nemate QBasic na svom sustavu, možete preuzeti originalnu verziju na Peteovoj QB stranici (pogledajte Resurse) ili noviju verziju pod nazivom QB64 koja je dizajnirana da bude kompatibilna s originalom. Nakon što ga otvorite, prikazat će vam se plavi ekran. Upišite sljedeće:
CLS PRINT "Zdravo, svijete!" INPUT "Kako se zoveš?"; name$ PRINT "Zdravo, "; ime$; "!" KRAJ
Zatim pritisnite Shift + F5 za pokretanje programa. Evo što se događa:
"CLS" je kratica za "clear screen" i osigurava da vaš program počinje s praznim zaslonom; inače ćete vidjeti ostatke iz prethodnog programa.
"ISPIS" jednostavno ispisuje niz teksta na ekran. Ako samo ispisujete broj, ne trebaju vam navodnici.
"INPUT" je način da se od korisnika traži unos. Kraj retka, "name$", je varijabla:to je mjesto gdje će se pohraniti korisnički odgovor. Možete ga zvati kako god želite; varijable koje sadrže tekst trebaju završavati s "$", a varijable koje sadrže samo brojeve trebaju završavati s "%".
Drugi redak "ISPIS" ispisuje tekst zajedno s onim što je korisnik unio.
"END", očekivano, završava program.
QBasic igre pogađanja
Unesite sljedeći kod u QBasic:
CLS šanse% =1 RANDOMIZE TIMER broj% =INT(RND * 10) + 1 PRINT "Razmišljam o broju od 1 do 10. Imate tri šanse da to ispravite."
DO WHILE šanse% <4 PRINT PRINT "Imate priliku #"; šanse%; "." ISPIS UNOSA "Pogodi broj"; pogodi% IF pogodi% =broj% THEN GOTO youwin ELSEIF pogodi%
ISPIS ISPIS "Ponestalo vam je šanse! Oprostite!" KRAJ
youwin:PRINT PRINT "Pogodili ste broj! Broj je bio"; broj%; "!" KRAJ
U ovoj igrici, program stvara nasumični broj od 1 do 10 i nudi vam tri prilike da to učinite kako treba, dajući vam tragove nakon prva dva savjeta. Uključuje mnogo koncepata programiranja.
Nakon brisanja zaslona, "chances% =1" stvara brojčanu varijablu i postavlja je na 1. Ovo će pratiti sve šanse koje igrač ima da pogodi broj.
Sljedeća dva retka stvaraju slučajni broj. "RANDOMIZE TIMER" je jednostavno metoda koju QBasic koristi da smisli nasumično raspoređivanje brojeva. Sljedeći redak, "broj% =INT(RND * 10) + 1", stvara nasumični broj od 1 do 10 i pohranjuje ga u varijablu broj%. Izgleda komplicirano, ali u osnovi samo govori "Neka to bude jedan od prvih deset pozitivnih cijelih brojeva." "+ 1" na kraju osigurava da će broj biti od 1 do 10, a ne od 0 do 9.
Redak "DO WHILE..." stvara petlju. Whenever you see a line that starts with "DO," scroll down a bit until you find a line that says "LOOP." Everything in between that line will continue to loop over and over again until a certain condition is met--in this case, until chances% is no longer less than four (or "<4" in programming-speak).
The program then asks for a guess with the INPUT command, stores it in guess%, and proceeds to process it with the "IF...THEN...ELSE" method. As you can see, it works logically:"IF a statement is true, THEN do this; ELSEIF another statement is true, then do this; ELSE anything else is true, then do this."
The only extra aspect is the GOTO command. In this case, if the number is correct, the program goes to the section of the document labeled "youwin".
Right before the end of the loop, there's the "chances% =chances% + 1" line. That's to assure the loop only runs three times.
If the loop runs three times and the player has never been sent to the "youwin" section, the player loses, so right after the loop is a line informing the player of the loss. Below it is the "youwin" section, declared just by writing the name of the section with a colon.
More Game Ideas
With PRINT, INPUT, IF...THEN...ELSE, and GOTO, you have everything you need to create an easy-to-make text adventure. Here's some sample code:
house:INPUT "You're standing in a house. What would you like to do"; choice$ IF choice$ ="go upstairs" THEN GOTO upstairs ELSE GOTO house
Try to make it as complex as you can based on what you know. And for more inspiration, the web offers plenty of free QBasic game downloads. Play them and examine the code behind them to learn new techniques and get ideas.