Escolar Documentos
Profissional Documentos
Cultura Documentos
Diferentes jogos de lotaria requerem a seleco de nmeros de vrias gamas. Por exemplo, um jogo de lotaria podem exigir a seleco de nmeros na faixa de 1 a 44, enquanto outro pode definir o intervalo de 1-50. Alm disso, nos jogos de lotaria pode variar a quantidade de nmeros que devem ser seleccionados para jogar. Por exemplo, para alguns jogos podemos precisar de seleccionar cinco nmeros, e para outros jogos que somos obrigados a escolher seis nmeros. Assim, o Assistente de Lotaria (Lottery Assistant) fornece aos jogadores a capacidade de especificar: O intervalo de nmeros; A quantidade de nmeros da lotaria necessrios; Quantos conjuntos de nmeros da lotaria querem gerados. Para jogar o jogo, o jogador deve fornecer as informaes acima listadas em campos de texto. Assim, para fazer o jogo correr, o jogador ter que clicar no item de menu apropriado. O Assistente de Lotaria tem num nico formulrio em que vamos adicionar os nove controlos seguintes: 1
Paulo Reis, Linguagens de Programao 3 LOTTERY ASSISTANT
PROGRAMAR EM VISUAL BASIC 2008 EXPRESS: LOTTERY ASSISTANT nomes Label1 at Label4 aos controlos. 3. Adicionar trs controlos TextBox para o formulrio e alinh-los horizontalmente, com os primeiros controlos Label. Por padro, atribudo os nomes TextBox1 at Textbox3 aos controlos. 4. Finalmente, adicionar um quarto controlo TextBox para o formulrio abaixo do controle Label4 e redimension-lo para que ele ocupe mais da metade inferior do formulrio. Por padro, Visual Basic atribui a esse controlo o nome de TextBox4. O layout do formulrio agora est completo. Todos os controlos devem ser visveis no formulrio, excepto o controlo MenuStrip1, que exibido na bandeja de componentes (Component Tray).
Em seguida, vamos definir as propriedades Name e Text para cada um dos quatro controlos Label, conforme especificado a seguir
Objecto Label1 Propriedade Name Text Label2 Name Text Label3 Name Text Label4 Name Text Valor lblFullSet Quantos nmeros compem um conjunto completo? lblNoPics Quer quantos conjuntos de nmeros de lotaria? lblNoRange Qual o maior nmero que pode ser escolhido? lblOutput Os seus nmeros de lotaria:
Agora vamos fazer as modificaes que pertencem a cada um dos controlos TextBox conforme a lista seguinte. 3
Paulo Reis, Linguagens de Programao 3 LOTTERY ASSISTANT
Definindo a propriedade ReadOnly como True para o quarto controlo TextBox impede que o jogador tente inserir texto nele. Definindo a propriedade ScrollBars para Vertical adiciona uma barra de deslizamento na caixa de texto para permitir que o jogador v para cima e para baixo, quando mais conjuntos de nmeros da lotaria so gerados e que podem ser exibidos ao mesmo tempo. Definindo a propriedade TabStop para False toma o quarto controlo TextBox fora do ndice das guias.
PROGRAMAR EM VISUAL BASIC 2008 EXPRESS: LOTTERY ASSISTANT Depois de termos criado cada um dos menus apresentados anteriormente, hora de configurar cada um dos menus, adicionando os respectivos itens. A tabela seguinte lista os itens de menu que precisamos para adicionar o menu
FicheiroToolStripMenuItem.
Propriedade de Texto &Obter nmeros &Limpar nmeros Sai&r Nome do item de menu ObterNumerosToolStripMenuItem LimparNumerosToolStripMenuItem AjudaToolStripMenuItem Descrio Recupera nmeros da lotaria gerados aleatoriamente. Limpa qualquer texto exibido controlo TextBox do jogo. Termina a execuo do jogo. no
O item de menu LIMPAR NMEROS ser usado para executar comandos de programao que removem qualquer texto que possam estar armazenados nos controlos TextBox do formulrio. Quando o formulrio exibido pela primeira vez, no haver qualquer texto exibido no controlo TextBox. Portanto, necessrio inicialmente desactivar esse item de menu LIMPAR NMEROS na vista de design. Mais tarde, quando o aplicativo executado e o jogador comea a introduzir texto, vamos adicionar lgica de programao para activar que este item de menu. Assim, para desactivar o item de menu LIMPAR NMEROS, seleccione-o e defina sua propriedade Enabled (na janela de propriedades) para False. A tabela seguinte lista os itens de menu que vamos adicionar ao menu OpesToolStripMenuItem.
Propriedade de Texto &Cor de fundo &Tamanho da fonte Nome do item de menu CorDeFundoToolStripMenuItem TamanhoDaFonteToolStripMenuItem Descrio Fornece acesso a um submenu onde a cor de fundo do jogo pode ser mudada. Fornece acesso a um submenu, onde tamanho da fonte, usado para controlar a exibio de nmeros, pode ser alterado.
A tabela seguinte lista os itens de menu que vamos adicionar ao menu AjudaToolStripMenuItem.
Propriedade de Texto &Sobre Nome do item de menu SobreToolStripMenuItem Descrio Executa o cdigo que exibe informaes sobre o jogo numa janela pop-up.
Neste ponto, temos definido os trs menus do jogo, bem como os itens de menu que residem debaixo deles. No entanto, os itens de menu COR DE FUNDO e TAMANHO DA FONTE precisam de serem configurados para fornecer acesso a seus prprios submenus. Para o menu COR DE FUNDO temos o seguinte: 5
Paulo Reis, Linguagens de Programao 3 LOTTERY ASSISTANT
Vamos agora adicionar mais alguns sinos e assobios. Para comear, vamos modificar a propriedade ShortcutKeys, definindo a chave de acesso F1 para o item OBTER NMEROS do menu ARQUIVO. Em seguida, adicione F2 como chave de acesso ao item de menu LIMPAR NMEROS, que tambm est localizado no menu ARQUIVO. Em seguida, defina a propriedade Checked para True do item de submenu BRANCO sob o menu OPES, indicando que o item de menu padro, e depois fazer o mesmo para a propriedade Checked pertencente ao primeiro item do menu no submenu TAMANHO DA FONTE. Estas foram todas as modificaes de propriedades necessrias para controlos do jogo e do sistema de menu. Agora vamos adicionar as declaraes de programa necessrias para fazer funcionar o jogo.
LOTTERY ASSISTANT
Estas instrues definem as variveis e uma matriz usada pelo aplicativo para armazenar e manipular os dados de que necessitamos para executar o jogo. Em seguida vamos adicionar as declaraes, que verificam se o jogador forneceu uma entrada vlida para o primeiro controlo TextBox e exibe uma mensagem de erro se no for o caso. Observe a instruo de retorno, o que impede o Visual Basic do processamento de qualquer das instrues restantes associados ao evento Click.
If txtFullSet.Text = "" Then MessageBox.Show("Deve especificar quantos nmeros " & _ "compem um conjunto completo.") Return End If
O prximo conjunto de declaraes so verificaes para garantir que as que o jogador introduziu dados numricos no primeiro controlo TextBox e exibe uma mensagem de erro se no for o caso.
If IsNumeric(txtFullSet.Text) = False Then MessageBox.Show("Deve efectuar entradas numricas " & _ "ao especificar quantos nmeros compem um conjunto completo.") Return End If
O prximo conjunto de instrues a ser adicionado para verificar se o jogador digitou um nmero superior a 10 no primeiro controle TextBox e exibe uma mensagem de erro se for o caso.
If Int32.Parse(txtFullSet.Text) > 10 Then MessageBox.Show("O nmero mximo de nmeros num conjunto " & _ "completo de 10. Por favor insira um nmero entre 3-10.") Return End If
Agora vamos adicionar as seguintes declaraes, para certificar que o utilizador especificou um nmero no inferior a 3 no primeiro controlo TextBox.
If Int32.Parse(txtFullSet.Text) < 3 Then MessageBox.Show("O nmero mnimo de nmeros num conjunto " & _ "completo de 3. Por favor insira um nmero entre 3-10.") Return End If
LOTTERY ASSISTANT
PROGRAMAR EM VISUAL BASIC 2008 EXPRESS: LOTTERY ASSISTANT Vamos adicionar declaraes de programa que validar o contedo do segundo controlo TextBox. Estas declaraes vo exibir mensagens de erro se o jogador no digitar nada, se o jogador no fornecer uma entrada numrica, ou se o jogador tenta especificar um nmero menor que 1 ou maior que 10.
If txtNoPics.Text = "" Then MessageBox.Show("Deve especificar quantos conjuntos de " & _ "nmeros de lotaria quer.") Return End If If IsNumeric(txtNoPics.Text) = False Then MessageBox.Show("Deve efectuar entradas numricas " & _ "ao especificar quantos conjuntos de nmeros de lotaria quer.") Return End If If Int32.Parse(txtNoPics.Text) > 10 Then MessageBox.Show("O nmero mximo de bilhetes de lotaria " & _ "que podem ser gerados 10. Por favor insira um nmero " & _ "entre 1 - 10.") Return End If If Int32.Parse(txtNoPics.Text) < 1 Then MessageBox.Show("O nmero mnimo de bilhetes de lotaria " & _ "que podem ser gerados 1. Por favor insira um nmero " & _ "entre 1 - 10.") Return End If
Agora vamos adicionar as declaraes programa que validar o contedo do terceiro controlo TextBox. Estas declaraes exibem mensagens de erro se o jogador deixar de fornecer qualquer texto, se o jogador no fornecer uma entrada numrica, ou se o jogador tenta especificar um nmero que inferior a 9 ou maior que 50.
If txtNoRange.Text = "" Then MessageBox.Show("Deve especificar o nmero mais alto " & _ "que pode ser escolhido.") Return End If If IsNumeric(txtNoRange.Text) = False Then MessageBox.Show("Deve efectuar entradas numricas " & _ "ao especificar o nmero mais alto que pode ser escolhido.") Return End If If Int32.Parse(txtNoRange.Text) > 50 Then MessageBox.Show("O valor mximo para o nmero mais alto " & _ "que pode ser escolhido 50. Por favor insira um nmero " & _ "menor ou igual a 50.") Return End If If Int32.Parse(txtNoRange.Text) < 9 Then MessageBox.Show("O valor mnimo para o nmero mais alto " & _ "que pode ser escolhido 50. Por favor insira um nmero " & _ "maior ou igual a 9.") Return End If
Em seguida adicione as seguintes instrues. Estas declaraes incluem um ciclo For e um ciclo Do. O ciclo For executa uma vez cada conjunto de nmeros de lotaria que o jogador quer gerados. O ciclo Do executado repetidamente at que uma srie completa de nmeros foi gerada. 8
Paulo Reis, Linguagens de Programao 3 LOTTERY ASSISTANT
A lgica de base utilizada nas declaraes no interior do ciclo Do a seguinte: Obter um nmero gerado aleatoriamente. Adicionar esse nmero a uma string representando uma lista de nmeros de lotaria, mas no permite duplicar os nmeros a serem adicionados lista. Formatar a sequncia de exibio, para que uma nova linha gerada para cada conjunto de nmeros da lotaria. As ltimas declaraes de programa a acrescentar ao cdigo que executado em resposta a este evento Click mostrado a seguir:
txtOutput.Text = strDisplayString ObterNumerosToolStripMenuItem.Enabled = False LimparNumerosToolStripMenuItem.Enabled = True
A primeira destas trs declaraes atribui a lista de nmeros de lotaria gerados aleatoriamente criada pelos dois ciclos anteriores para a propriedade de texto do controlo txtOutput, tornando os nmeros visveis para o jogador. As duas ltimas declaraes servem para desactivar o item de menu Obter nmeros e activar o item de menu LIMPAR NMEROS. Adicionar o cdigo para o item de menu LIMPAR NMEROS. Agora, voltamos para a vista de design, acedemos ao menu ARQUIVO, e vamos tentar dar um duplo clique no item de menu LIMPAR NMEROS. No conseguimos usar esta tcnica para acesso ao evento Click. Isto ocorre porque o item de menu foi anteriormente desactivado. No entanto, podemos aceder ao evento Click permanecendo no editor de cdigo e seleccionando LimparNumerosToolStripMenuItem a partir da lista drop-down localizada no lado superior esquerdo do editor de cdigo.
LOTTERY ASSISTANT
10
PROGRAMAR EM VISUAL BASIC 2008 EXPRESS: LOTTERY ASSISTANT Uma vez seleccionado, todos os eventos associados a este item de menu tornam-se acessveis na lista drop-down localizada no lado superior direito do editor de cdigo. Usamos esta lista drop-down para seleccionar o evento Click. O editor de cdigo responder gerando o cdigo para o evento. Vamos adicionar a seguinte instruo entre as duas declaraes geradas. As quatro primeiras declaraes limpam todo o texto exibido nos quatro controlos TextBox. A prxima instruo coloca o cursor no primeiro controlo TextBox, e as duas ltimas declaraes activam o item de menu OBTER
NMEROS e desactivam o item de menu LIMPAR NMEROS. txtFullSet.Text = "" txtNoPics.Text = "" txtNoRange.Text = "" txtOutput.Text = "" txtFullSet.Focus() ObterNumerosToolStripMenuItem.Enabled = True LimparNumerosToolStripMenuItem.Enabled = False
Adicionar o cdigo para o item de menu SAIR. Agora voltamos para a vista de design e clicamos duas vezes sobre o item de menu SAIR localizado no menu ARQUIVO. Vamos inserir a declarao Application.Exit (), conforme mostrado a seguir:
Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click Application.Exit() End Sub
Adicionar o cdigo para o item de menu BRANCO. Agora altura de comear a adicionar as declaraes de programa necessrias para fazer o trabalho do submenu do item de menu COR DE FUNDO. Comeamos por aceder ao evento Click para o item de menu BRANCO e modificamos o cdigo que gerado automaticamente:
Private Sub BrancoToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BrancoToolStripMenuItem.Click Me.BackColor = Color.White BrancoToolStripMenuItem.Checked = True AmareloToolStripMenuItem.Checked = False CinzentoToolStripMenuItem.Checked = False End Sub
Como se pode ver estamos a adicionar quatro declaraes. A primeira declarao de alteraes cor de fundo do objecto-pai (o formulrio) para branco. A prxima instruo coloca uma marca de seleco direita do item de menu BRANCO. As duas ltimas declaraes certificam-se que os itens de menu AMARELO e CINZENTO no exibem uma marca de seleco.
10
LOTTERY ASSISTANT
11
PROGRAMAR EM VISUAL BASIC 2008 EXPRESS: LOTTERY ASSISTANT Adicionar o cdigo para o item de menu AMARELO. Em seguida vamos aceder ao evento Click para o item de submenu AMARELO e modificar o cdigo que gerado automaticamente:
Private Sub AmareloToolStripMenuItem_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles AmareloToolStripMenuItem.Click Me.BackColor = Color.Yellow BrancoToolStripMenuItem.Checked = False AmareloToolStripMenuItem.Checked = True CinzentoToolStripMenuItem.Checked = False End Sub
Adicionar o cdigo para o item de menu CINZENTO. Em seguida vamos aceder ao evento Click para o item de submenu CINZENTO e modificar o cdigo que gerado automaticamente:
Private Sub CinzentoToolStripMenuItem_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles CinzentoToolStripMenuItem.Click Me.BackColor = Color.LightGray BrancoToolStripMenuItem.Checked = False AmareloToolStripMenuItem.Checked = False CinzentoToolStripMenuItem.Checked = True End Sub
Adicionar o cdigo para o primeiro item do submenu TAMANHO DA FONTE. Vamos adicionar o cdigo que ser executado quando os itens de menu no submenu TAMANHO DA FONTE so clicados. Para comear, vamos aceder ao evento Click para o primeiro item de menu no submenu (o item de menu que define o tamanho da fonte para 8) e modificar o cdigo que gerado automaticamente:
Private Sub ToolStripMenuItem1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click txtOutput.Font = New Font("Microsoft Sans Serif", 8) ToolStripMenuItem1.Checked = True ToolStripMenuItem2.Checked = False ToolStripMenuItem3.Checked = False End Sub
A primeira declarao adicionada define a propriedade Font do controlo txtOutput para Microsoft Sans Serif e especifica um tamanho de fonte 8. As prximas trs instrues fazem a colocao da marca de verificao. Adicionar o cdigo para o segundo item do submenu TAMANHO DA FONTE. Vamos aceder ao evento Click para o segundo item de menu no submenu (o item de menu que define o tamanho da fonte para 10) e modificar o cdigo que gerado automaticamente: 11
Paulo Reis, Linguagens de Programao 3 LOTTERY ASSISTANT
12
Adicionar o cdigo para o terceiro item do submenu TAMANHO DA FONTE. Vamos aceder ao evento Click para o terceiro item de menu no submenu (o item de menu que define o tamanho da fonte para 12) e modificar o cdigo que gerado automaticamente:
Private Sub ToolStripMenuItem3_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles ToolStripMenuItem3.Click txtOutput.Font = New Font("Microsoft Sans Serif", 12) ToolStripMenuItem1.Checked = False ToolStripMenuItem2.Checked = False ToolStripMenuItem3.Checked = True End Sub
Adicionar o cdigo para o item de menu SOBRE. Agora vamos adicionar as restantes declaraes de programa para o ltimo item de menu acedendo ao evento Click para o item de menu SOBRE localizado no menu AJUDA. Vamos ento modificar o cdigo que gerado automaticamente:
Private Sub SobreToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles SobreToolStripMenuItem.Click MessageBox.Show("Esta aplicao em Visual Basic foi criada " & _ "por Paulo Reis.") End Sub
Como se pode ver, o mtodo MessageBox.Show executado sempre que o jogador clicar no item de menu SOBRE, exibindo informaes sobre a aplicao e o seu autor.
12
LOTTERY ASSISTANT