Inteligência Artificial
Jogos sem AI


  Os jogos onde todo o esforço inteligente está concentrado em um ou mais jogadores humanos, são considerados como jogos sem qualquer tipo de inteligência artificial.
  Nesses casos, o programa necessita apenas controlar as ações do jogador, controlar ações pré-definidas de personagens do cenário, verificar por eventos, como, por exemplo, se um tiro acertou o alvo, e verificar se um dado objetivo foi atingido.
  A seguir, serão apresentados alguns exemplos de jogos sem inteligência artificial em Basic.
Jogo da velha para 2 jogadores   O jogo é bem simples, onde as tarefas principais do programa são receber uma jogada de cada jogador e verificar se há um vencedor. O computador não necessita realizar qualquer tipo de raciocínio.

  As rotina do jogo são:
  O código do jogo é apresentado a seguir.
10 DIM TB$(3,3):V=0
20 GOSUB 510:GOSUB 1000
30 J=1:GOSUB 600:GOSUB 1000:GOSUB700
40 J=2:GOSUB 600:GOSUB 1000:GOSUB700
50 GOTO 30
500 ' Limpa
510 FOR I=1 TO 3:FOR J=1 TO 3
520 TB$(I,J)="."
530 NEXT J,I
540 RETURN
600 ' Jogador N
610 PRINT "Jogador";J;", qual a jogada";:INPUT X,Y
620 IF X<1 OR X>3 OR Y<1 OR Y>3 OR TB$(X,Y)<>"." THEN 610
630 IF J=1 THEN TB$(X,Y)="X" ELSE TB$(X,Y)="O"
640 PRINT:RETURN
700 ' Vencedor
710 FOR I=1 TO 3
720 L1=0:L2=0:C1=0:C2=0
730 FOR P=1 TO 3
740 IF TB$(I,P)="X" THEN C1=C1+1
750 IF TB$(P,I)="X" THEN L1=L1+1
760 IF TB$(I,P)="O" THEN C2=C2+1
770 IF TB$(P,I)="O" THEN L2=L2+1
780 NEXT P:GOSUB 900
790 NEXT I
800 L1=0:L2=0:C1=0:C2=0
810 FOR I=1 TO 3
820 IF TB$(I,I)="X" THEN L1=L1+1
830 IF TB$(4-I,I)="X" THEN C1=C1+1
840 IF TB$(I,I)="O" THEN L2=L2+1
850 IF TB$(4-I,I)="O" THEN C2=C2+1
860 NEXT I
900 IF L1=3 OR C1=3 THEN PRINT "Jogador 1 venceu":END
910 IF L2=3 OR C2=3 THEN PRINT "Jogador 2 venceu":END
920 RETURN
1000 ' Impressao
1010 FOR Y=1 TO 3:FOR X=1 TO 3
1020 PRINT TB$(X,Y);" ";
1030 NEXT X:PRINT:NEXT Y:PRINT
1040 RETURN
Simples jogo de ação   Os jogos de ação onde os personagens não controlados pelo computador não se movimentam ou realizam movimentos pré-definidos podem ser considerados como sem AI.

  O seguinte jogo de ação foi apresentado no curso de Basic como exemplo de controle de múltiplos objetos em um cenário.
10 SCREEN 2,1
20 SE=-1:XI=128:YI=5
30 XC=128:YC=178:YB=170:B=0
40 ON SPRITE GOSUB 500 : SPRITE ON
50 FOR F=1 TO 3
60 FOR T=1 TO 8 
70 READ A$ 
80 S$=S$+CHR$(VAL("&H"+A$)) 
90 NEXT T
100 SPRITE$(F)=S$ : S$=""
110 NEXT F
120 C=STICK(0)
130 IF C=3 THEN XC=XC+2 : IF XC>240 THEN XC=240
140 IF C=7 THEN XC=XC-2 : IF XC<0 THEN XC=0
150 IF STRIG(0)<>0 AND B=0 THEN B=1 : XB=XC
160 PUT SPRITE 0,(XI,YI),5,3
170 IF B=1 THEN PUT SPRITE 2,(XB,YB),15,2 ELSE PUT SPRITE 2,(XB,YB),0
180 PUT SPRITE 1,(XC,YC),14,1
190 XI=XI+SE*2
200 IF XI<0 OR XI>240 THEN SE=-SE
210 IF B=1 THEN YB=YB-2 : IF YB<-8 THEN B=0 : YB=170
220 GOTO 120
230 DATA 10,38,54,FE,92,FE,00,00
240 DATA 10,10,10,10,10,10,10,10
250 DATA 7C,82,82,82,7C,28,44,00
500 ' Colisao de sprite
510 IF YB>128 THEN RETURN
520 PUT SPRITE 2,(XB,YB),0
530 FOR I=1 TO 5
540 FOR C=2 TO 15 STEP .2
550 PUT SPRITE 0,(XI,YI),C,3
560 NEXT C
570 PUT SPRITE 0,(XI,YI),0
580 GOTO 580



  Referências:

  [1]- MarMSX, Curso de Basic, capítulo 17. Em: http://marmsx.msxall.com/cursos/basic/basic17.html


<< Anterior   AI   Próxima >>


/MARMSX/CURSOS/Assembly