Introdução Bem-vindo Como Começar Meu Primeiro Programa     Resolvendo Problemas e Distribuindo Tranformando Dados Programas Interativos     Exercícios de Programação     Fazendo Games
Documentação Declarações     Procedimentos     Variáveis Construtores     Controle de Fluxo Expressões Bibliotecas     Print     IO     Random     Game Engine
Tutoriais Tutoriais Completos     Introdução à Programação     Guia Rápido     Exercícios de Programação     Programando Games

PROGRAMAS INTERATIVOS


Crie programas que pessoas conseguem interagir





Lendo Entrada da Linha de Comando

Nós aprendemos como usar a biblioteca Print para mostrar mensagens e números, então vou mostrar outra biblioteca para lidar com a última parte do quebra-cabeça: input do usuário.
Assim como importer o Print, precisamos criar um nó de Import. Mas dessa vez, vamos importar uma biblioteca chamada: IO.

Como importar a bilioteca IO

IO siginifica Input/Output, ou Entrada/Saída, (você talvez já tenha visto essa expressão). Além de incluir tudo disponível na biblioteca Print, essa biblioteca possui outros dois procedimentos: scan e scan_int. Esses procedimentos recebem uma mensagem opcional (que vai imprimir na tela da mesma forma que uma chamda de print) e retornar o valor escrito pelo usuário.
Assim como nas operações aritiméticas , que temos que atribuir o valor de retorno para uma variável, para ser guardado para uso futuro.
Dessa forma:

Como ler input do usuário no Vizzcode

Agora os dados que o usuário digitou são guardados numa variável e disponível para nós. Podemos facilmente imprimir o valor de uma variável
#import
"IO"


main
:: () {
    var :=
scan
(
"Escreva uma mensagem: "
);
    
print
(var);
}

Note: os procedimentos scan podem ler qualquer texto que o usuário digitar. Então seu valor retornado é do tipo string. (Nós já falamos sobre tipos de variáveis, e você pode ver mais sobre o assunto aqui). Você pode ler especificamente sobre o tipo string usado para guardar texto aqui.

Assim como o scan pode ser usado para ler o texto que o usuário digitou, o scan_int pode ler os números.
Agora vamos guardar uma variável do tipo int e mostrar com o print_int. Essa variável inteira pode sofrer operações, da mesma forma que aprendemos anteriormente.

Como ler números do usuário

Com o que você já aprendeu, acredito que consiga fazer o programa, para ler dois números e somar eles, que conversamos há um tempo. O que você acha?
Você já sabe como ler números, somar eles e mostrar o resultado.

Uma vez que você fizer sua melhor tentativa, continue na próxima seção. :)




Fazendo uma Calculadora Simples

Vamos fazer uma simples calculadora: um programa que dois números, soma eles e mostra o resultado.
Para ler e guardar dois números que o usuário digitou, você precisa declarar duas variáveis a atribuir a elas o resultado da chamada do scan_int.

Como fazer uma calculadora no Vizzcode

Depois, você pode declarar outra variável e guardar o resultado da adição e mostrar ele:

Como adicionar dois números no Vizzcode

Ou simplesmente imprimir o resultado da expressão de adição diretamente:

Como adicionar dois números no Vizzcode sem declarar uma variável

Bem simples, né?
Se você tiver dificuldade em entender uma parte especifica, não hesite de reler as páginas da documentação ou tentar fazer os tutoriais dentro do Vizzcode.





Brincando com a Entrada do Usuário

Com a habilidade de ler textos e números, operar com esses dados e mostrar mensagens e números, você pode criar todo tipo de programas interessantes!

O que você acha de um programa que lê a idade do usuário:
Digite o ano que você nasceu: 1996
Você tem 24 anos de idade! (ou 23 se você não fez aniversário ainda... :P )

Esse programa usa algumas expressões aritiméticas bem legais para mostrar quantas horas, minutos e segundos, que corresponde a quantidade de segundos que o usuário digitou:
Digite o número de segundos: 3812
Isso corresponde a: 1h 3m 32s

Esse outro programa sabe se o número que você digitou é par ou ímpar:
Digite um número: 7837
Par ou Ímpar(1=par, 0=ímpar): 0

Tente programar esses (e outros programas que você pensar) para colocar em prática o que você aprendeu até agora. :)

Como você pode ver, você pode usar sua imaginação e as ferramentas que já aprendeu para bolar e criar vários programas bem interessantes!
Mas ainda tem muito que aprender! No final dessa seção vou te mostrar um lugar cheio de problemas interessantes e novos conceitos para você aprender e experimentar!




Lidando com Erros

Nós já conversamos sobre resolver problemas que você encontra enquanto desenvolve programas. Mas tem uma outra classe de erros que são muito importantes e merecem atenção.

Sempre quando criamos um programa interativo, existe a possibilidade do usuário não usar o programa da forma planejada. Tanto por falta de entendimento do que o programa espera (como "Eu não sabia que precisava escrever ‘0.0’ em vez de ‘0’ "), um erro humano (como digitar errado), um usuário antagonista (alguém tentando encontrar um “ponto de quebra” da interação, tanto um hacker que quer explorar seu programa, ou uma pessoa jogando seu jogo e tentando explorar a física do mundo, por exemplo) entre outros casos.

Nesses casos, o programa precisa lidar graciosamente com os casos inesperados – fazendo com que sejam simplesmente condições esperadas (mas não desejáveis).

Por exemplo, o que acontece se seu programa perguntar por um número mas o usuário digitar um texto aleatório?
O que acontece se seu programa divide dois número digitados pelo usuário mas o divisor acabar sendo zero?
Se seu programa ler um certo arquivo, o que acontece se o arquivo não for como esperado, ou estiver em branco, ou não existir?

Seu programa fecha de repente? Ele congela? Ele para de funcionar conforme previsto? Ele mostra uma mensagem aleatória para o usuário?
Você certamente já usou um programa que agiu de forma totalmente inesperada, porque ele queria a entrada de uma certa forma.

As pessoas que programas possuem o dever de testar esses casos isolados de entrada de dados do usuário, tentando cobrir todo espaço de possibilidade.
Quanto mais interativo for o programa (como um vídeo game), maior será o espaço de possibilidade, possibilitando que o usuário participe mais no resultado do programa (o que é ótimo!) mas tornando mais difícil de prever e implementar esses casos isolados de entrada.

Desenvolver essa habilidade é bem importante: pensar sobre o que o usuário pode fazer para quebrar o programa e lidar com esse caso corretamente.
Nos Exercícios de Programação existem diversos exemplos, dicas e exercícios para fazer os casos imprevisíveis, e de quebra de programas serem simplesmente outro caso de uso. :)
Você vai aprender tudo sobre como lidar com “erros” do usuário nesses exercícios. Por agora, tente pensar sobre o que o usuário pode fazer para criar comportamentos inesperados nos seus programas.




Mais Programas Interativos

Nós acabamos de aprender como ler a entrada da linha de comando e criamos vários programas com isso em mente.
Entretanto, você pode querer fazer programas ainda mais interativos, que o usuário pode clicar, arrastar, digitar, importar arquivos, todo tipo de coisa. Como já conversamos, existem dois tipos de programas: programas de console (que abre aquele terminal sem graça) e programas que usam uma janela própria. A maior parte dos programas que você interage são programas com janelas próprias, seu navegador, um player de áudio e vídeo, jogos e é claro, o Vizzcode!

No Vizzcode, é bem fácil começar a criar programas com janelas, principalmente jogos. Mais pra frente, você vai aprender tudo sobre Fazer Jogos usando o Vizzcode!




Andando com Suas Próprias Pernas

Como todo aprendiz, existe um momento que você precisa aprender a andar com suas próprias pernas e explorar o mundo – seguindo suas necessidades e desejos. (Além disso, eu estou falando por muito tempo e
eu
qu
a
se
sem
v
o
z
).


Para ajudar seu progresso sem ajudar, eu preparei um hub de exercícios de programação, desafios e ideias de programas para você explorar. Está cheio de dicas de como resolver esses problemas, bem como links para as outras ginas úteis para a documentação.
Lá, você poderá explorar diversas novas habilidades para te ajudar a desenvolver os programas que você quiser, até os mais complexos!
Os tutoriais dentro do Vizzcode também são uma excelente maneira de expandir seus conhecimentos!

Então é isso. É difícil dizer adeus, mas espero que você aproveite sua ótima companhia enquanto forja seu próprio caminho nesse incrível mundo de criação.
Te vejo por aí... programador(a). :)