segunda-feira, novembro 25, 2013

Raspberry Pi: Dragon Island

Vamos matar a saudade (ou conhecer) como era a programação em 1977? Direto das páginas da newsletter do famoso Homebrew Computer Club, o jogo Dragon Island.


No meio das minhas bagunças estão alguns exemplares da newsletter do Homebrew Computer Club, que eles me enviaram quando escrevi para eles em 1978. Este programa saiu no número de setembro/outubro de 1977 (veja HCC_V2I20.pdf nos arquivos do blog). Foi escrito por Walt Hutchinson no Tiny Basic de Tom Pittman. Nos anos 80 eu fiz uma adaptação para o TK82 que foi publicada na revista MicroHobby.

Precisei fazer algumas pequenas adaptações para rodar com o yabasic. Se você for digitar, atenção que letras maiúsculas e minúsculas são diferentes nos nomes das variáveis. A organização do programa é típica de um Basic que não tem IF THEN / ELSE nem IFs multilinha.
#!/usr/local/bin/yabasic
21 print "Voce esta sozinho e os dragoes comem as 8!"
22 print
23 h = 5
24 m = 0
25 d = 1 + int(ran(11))
26 rem print d
27 gosub 57
28 print "Em qual caverna voce atira a sua lanca?"
29 input t
30 if (d = t)  goto 51
31 if ((d-t)*(t-d) >= -1) print "S*N*O*R*T!"
32 print "Voce errou! ";
33 print "O dragao ";
34 s = int(ran(4))- 1
35 if (s = 0) goto 41
36 d = d + s
37 if (d < 1) d = 10 + d
38 if (d > 10) d = 10 + d
39 print "se move!"
40 goto 42
41 print "aguarda."
42 print "Voce se arrisca a pegar a lanca? (S ou N)"
43 input a$
44 if (a$="S" or a$="s") goto 48
45 if (a$<>"N" and a$<>"n") goto 42
46 gosub 57
47 goto 33
48 if (d = t) goto 55
49 print "Voce conseguiu!"
50 goto 27
51 print "A*A*R*R*R*G*G*H*H! V*O*C*E M*E* P*E*G*O*U!"
52 print ""
53 print "PARABENS!!!"
54 end
55 print "T*E* P*E*G*U*E*I*!!! N*H*A*C! N*H*A*C!"
56 end
57 print ""
58 print "Sao ",h;
59 if (m=0) goto 62
60 print ":",m
61 goto 64
62 print " horas"
63 if (h=8) goto 55
64 m = m + 15
65 if m <> 60 goto 68
66 h = h + 1
67 m = 0
68 return
Para digitar no Raspberry você vai precisar de um editor. Eu usei o joe (sudo apt-get install joe), mas você pode usar o nano que vem no Raspbian ou o seu editor predileto. Após editar e salvar com o nome dragao, marque o arquivo como executável (chmode +x dragao).

Para executar, digite ./dragao. O shell utilizará a primeira linha para saber que a execução é feita pelo yabasic.

O jogo em si é bem simples. Um dragão está escondido em uma de 10 cavernas dispostas circularmente e numeradas de 1 a 10. Você tem uma lança que você atira em uma das cavernas. Se acertar o dragão, ganhou o jogo. Se acertar a caverna ao lado do dragão, ele urra. Em seguida, o dragão pode aguardar ou se mover para uma caverna adjacente. Aí você precisa decidir se vai entrar na caverna para pegar a espada ou não. Se você entrar e o dragão está lá, *nhac* *nhac*! Tem ainda um limite de tempo: o jogo começa às 5:00, cada ação consome 15 minutos e às 8:00 escurece e o dragão te come.

Um comentário:

EverPi disse...

Rapaz em 1977 eu não era nem nascido, parabéns pelas adaptações.