sexta-feira, setembro 11, 2026

Criando um programa de Jogo da Adivinhação em Natural/Adabas

Um exercício prático para aprender lógica de programação, estruturas de repetição e instruções condicionais no ambiente mainframe. Desenvolver um Jogo da Adivinhação em Natural/Adabas é um excelente exercício para fixar a sintaxe e a lógica de controle da linguagem. Muito utilizado em ambientes mainframe pela sua robustez no processamento corporativo, o Natural oferece uma estrutura simples e poderosa para desenvolver aplicações interativas. Neste exemplo, o objetivo é criar um jogo em que o usuário precisa descobrir um número secreto entre 1 e 10, dispondo de apenas três tentativas. A cada chute, o programa informa se o número secreto é maior, menor ou se o jogador acertou. Embora seja um programa simples, ele reúne conceitos importantes que aparecem frequentemente em aplicações Natural: definição de variáveis, atribuição de valores, entrada de dados, saída de informações, laços de repetição e decisões condicionais.

Código Completo em Natural
* -------------------------------------------------------------------- *
* FUNCAO - JOGO DA ADVINHACAO                                          *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL                                                       
1 #NUMERO-SECRETO (N2)                                                  
1 #CHUTE         (N2)                                                   
1 #TENTATIVAS    (N2) INIT <3>                                          
1 #ACERTOU       (L)  INIT                                       
END-DEFINE                                                              
*                                                                       
COMPUTE #NUMERO-SECRETO = 7                                             
WRITE "===================================="                            
WRITE "   BEM-VINDO AO JOGO DA ADIVINHACAO "                            
WRITE "===================================="                            
*                                                                       
REPEAT WHILE #TENTATIVAS > 0 AND NOT #ACERTOU                           
  WRITE / "TENTATIVAS RESTANTES:" #TENTATIVAS                           
  INPUT "TENTE ADIVINHAR UM NUMERO DE 1 A 10:" #CHUTE                   
*                                                                       
  DECIDE FOR FIRST CONDITION                                            
    WHEN #CHUTE = #NUMERO-SECRETO                                  
      ASSIGN #ACERTOU = TRUE                                       
      WRITE / "PARABENS! VOCE ACERTOU O NUMERO!"                   
    WHEN #CHUTE < #NUMERO-SECRETO                                  
      WRITE / "O NUMERO SECRETO E MAIOR."                          
    WHEN NONE                                                      
      WRITE / "O NUMERO SECRETO E MENOR."                          
  END-DECIDE                                                       
*                                                                  
  COMPUTE #TENTATIVAS = #TENTATIVAS - 1                            
END-REPEAT                                                         
*                                                                  
IF NOT #ACERTOU                                                    
  WRITE / "SUAS TENTATIVAS ACABARAM! O NUMERO ERA:" #NUMERO-SECRETO
END-IF                                                             
END                                                                 

Tela inicial - tenho 3 opções
MORE                                                                           
PAG      1                                                   11/09/26  11:56:34
                                                                               
====================================                                           
   BEM-VINDO AO JOGO DA ADIVINHACAO                                            
====================================                                           
                                                                               
TENTATIVAS RESTANTES:   3                                                      
 

Primeira tentativa - Vou colocar o número 6
 TENTE ADIVINHAR UM NUMERO DE 1 A 10: 6       
                                              
 

O número é maior - temos 2 tentativas restantes
MORE                                                                           
PAG      2                                                   11/09/26  11:56:34
                                                                               
                                                                               
O NUMERO SECRETO E MAIOR.                                                      
                                                                               
TENTATIVAS RESTANTES:   2                                                      
 

Coloquei o número 8
 TENTE ADIVINHAR UM NUMERO DE 1 A 10: 8      
                                             
 

É menor - temos uma tentativa somente
MORE                                                                           
PAG      3                                                   11/09/26  11:56:34
                                                                               
                                                                               
O NUMERO SECRETO E MENOR.                                                      
                                                                               
TENTATIVAS RESTANTES:   1                                                      
                                                                               
 

Coloquei o número 7
 TENTE ADIVINHAR UM NUMERO DE 1 A 10: 7   
                                           

Acertamos era o número 7
MORE                                                                           
PAG      4                                                   11/09/26  11:56:34
                                                                               
                                                                               
PARABENS! VOCE ACERTOU O NUMERO!                                               
                                                                               
 


0 Comments:

Enviar um comentário