JAVA: projeto de sorteio de número aleatório

Alguns estudantes de programação em JAVA me enviam muitos pedidos. Eu não sou programador JAVA. Eu sei o básico, comum e necessário para fazer alguns experimentos. Esta semana recebi o pedido de “fazer um programa” que fizesse o sorteio de 3 número e exibisse na tela o resultado”. Deve ser feito como se o jogador estivesse jogando 3 dados, e, verificar quantas vezes acertava cada aposta.

Observação: Este texto não terá explicações detalhadas sobre criar projeto no Netbeans; não terá explicação de como criar formulário, jTextField, jLabel, Button.

INTRODUÇÃO

– Os 3 primeiros campos, dentro do Painel: Área de Aposta, são 3 campos de textos onde o usuário irá digitar três números entre 1 até o 6 – que são os números de um dado comum. Estes três campos, quando acontece de um apostado ser igual a um dos números sorteados, ele muda a cor para verde

– Os 3 quadrados do painel: Área de Resultado exibirá os 3 números sorteados. São apenas objetos do tipo Label, com formatação de fonte tamanho 48, centralizado, e com bordas

– Na parte de baixo há três quadrados, também do tipo Label onde serão exibidos a contagem dos acertos.

– O último quadrado, outro Label, onde se vê a descrição: “Acertou os 3 números”, apresentará o número de vezes em que se acertou os 3 números. Não é fácil acertar os 3 números. Em mais de 300 tentativas, acertei apenas duas vezes.

– Os três botões: APOSTAR, SAIR e LIMPAR. O Botão Apostar aciona os códigos que sorteia três números; exibe-os nos quadros de resultados; exibe também o Total de Acertos, Troca a cor de fundo dos Quadros de Aposta, quando ocorrem igualdade.

Como foi feito?

Primeiro eu criei o formulário conforme está na imagem.

Se você não sabe criar um projeto Java, não sabe inseri Painel, Campo de Texto, Label e fazer as configurações de fonte, centralizar, botões… não sou eu que vou explicar não!

Para cada item inserido no formulário, você tem que mudar as variáveis de cada um destes itens, conforme se vê na imagem abaixo.


Não confundi alterar Variável do item na tela com a criação e inicialização de variáveis (tipo primitivo) logo abaixo. Cada item do formulário eu nomeei da seguinte maneira:

– Os campos de texto (jFieldText): txtNumero1; txtNumero2; txtNumero3;

– Os Labels: lblNumero1; lblNumero2; lblNumero3;

– Os botões: btnApostar; btnSair; btnLimpar

– As variáveis são: numero1, numero2, numero3, contaN1, contaN2, contaN3 e contaTodos.

Segundo criei as seguintes variáveis do tipo primitivo.


Depois de criar/definir estas sete variáveis, todas do tipo inteiro, utilizando o recurso de duplo clique para acionar a codificação, eu cliquei duas vezes no botão APOSTAR e então escrevi o seguinte:


numero1 = 1 + (int)(Math.random() * 6);

Este código faz o seguinte: usa a variável que é do tipo inteiro, definida lá em cima, e então, utilizando a classe Math.random() sorteia um número. O *6 faz com que o número sorteado seja entre o valor 1e o valor 6. Não é necessário explicar os outros dois. Numero2 e numero3, pois, é a mesma coisa. Este código eu pesquisei na internet: “como obter um número aleatório em JAVA”.

lblNumero1.setText(String.valueOf(numero1));

Este código faz o seguinte: usa o Label (lblNumero1) e então, por meio de “.setText(String.ValueOf(numero1)”, exibe o valor da variável como String. Repito o código para exibir os valores das variáveis nos respectivo labels: lblNumero2 e lblNumero3.

Comparando e contando os acertos

Para efetuar as comparações entre os campos de texto de Aposta e os Labels de Resultado, utilizei os seguintes códigos. São apenas 3 ifs para comparar quando há igualdade entre:

– O txtNumero1 com a variável numero1;

– O txtNumero2 com a variável numero2;

– O txtNumero3 com a variável numero3;


Fiz a comparação entre o conteúdo digitado no campo de texto com o valor “convertido” em String existente na variável numero1, do tipo inteiro primitivo com o. equals. Em seguida, se, são iguais, o campo txtNumero1 recebe a cor verde pelo código: .setBackground(Color.GREEN). Na segunda linha, onde se tem “contaN1++” é onde a variável de contagem de acertos vai contando de 1 em 1.

Contando se acertou os 3 números

O item “Acertou os 3 números”, somente contará se ocorrer uma igualdade entre os três campos.

– Somente quando, o número digitado no campo 1, for igual ao número sorteado na variável 1, e exibida no lblNumero1;

– Somente quando, o número digitado no campo 2, for igual ao número sorteado na variável 2, e exibida no lblNumero2;

– Somente quando, o número digitado no campo 3, for igual ao número sorteado na variável 3, e exibida no lblNumero3 é que, a variável contaTodos é incrementada.


Observe o uso do && e novamente do .equals para comparar se o conteúdo do .getText é igual à String convertida. E no fim, a lblContaTodos exibe o valor da variável contaTodos.

Executando o projeto

Após várias tentativas eis abaixo na imagem que acertei os três números. A marcação em verde dos campos de texto onde são digitados os números; a contagem de vezes em que houve igualdade entre os campos, e, apenas 1 em “Acertou os 3 números”.


Faça o Download do projeto para importar e usar no Netbeans 8.1: Projeto Java Netbeans – Uma Chance

Links para atualizar o Windows para impedir o WannaCry

Esta semana estive ocupado com as atualizações dos computadores de uma empresa. A preocupação da empresa está relacionada à contaminação do Malware WannaCry. Para facilitar o trabalho, de não ter que fazer o download em cada um dos computadores, fiz o download da correção. Gravei em um pendrive e utilizei na rede. A quem interessar, os links para download das referidas atualizações são estes abaixo:

 

By Blog do Kaspersky: https://blog.kaspersky.com.br/wannacry-windows-update/9039/

A contaminação do WannaCry de empresas em Irecê

Alguns administradores de empresas, ou pessoas ligadas a certas empresas me impressionam de forma positiva e negativa ao mesmo tempo!

Uma empresa em que presto serviços tem em seu parque tecnológico cerca de 45 computadores, quatro redes interligadas, dois servidores DELL PowerEdge. A gerente geral da empresa me pediu para fazer verificações nos servidores, com o intuito de ver se os mesmos não seriam atacados com o Ramsonware WannaCry. Louvável a ação da gerente: agir e corrigir antes de ocorrer algo pior.

– O servidor com Windows Server 2012 está devidamente atualizado, com antivírus instalado e atualizado, porém, o firewall se for ativado, o software da empresa para de funcionar em toda a rede. A empresa responsável pelo software, até o final desta quinta-feira, 18/05/2017 não enviou solução para a correta ativação e configuração das portas para o firewall ser ativado.

– O servidor com Windows Server 2008 não estava com as atualizações ativas, e, assim, foram feitas 148 atualizações ao Windows 2008 Server. O antivírus foi atualizado. As atualizações foram automatizadas.

– O backup do sistema da empresa foi agendado para ser efetuado todos os dias às 22:hs e deverá ser realizado mesmo se nenhum usuário estiver conectado e online.

– Um comando de lote do tipo CMD e BAT foi criado e agendado para ser executado todos os dias às 23:hs. Este comando faz uma cópia do arquivo de backup a unidade externa.

Tudo isto foi feito! Mas, se a chamada, tinha como preocupação a contaminação do Ramsonware WannaCry, outra ação necessária foi relegada e descartada. Eu disse à gerente: – Há computadores vulneráveis na rede! Tenho que visitar todos as estações e fazer a mesma verificação de segurança em cada uma delas!

Foi quando a administração agiu de forma destrambelhada e incoerente, pois, tal decisão põe em risco os serviços feitos nos servidores e disse-me:

– Não precisa não! Basta proteger os servidores.

JAVA e Yahoo… estão mal-intencionados com os usuários!

Você instala o JAVA. Você atualiza para uma nova versão e então recebe a notificação do instalador:

Obter o melhor da web com o Yahoo? Como é? Definir o Yahoo como página inicial? Para que? E pior! A proposta é: página inicial, mecanismo de busca padrão no Firefox, no Internet Explorer, e, padrão de nova guia no Firefox.

Realmente, o JAVA e o Yahoo estão mal-intencionados com os usuários! O JAVA pela plataforma que formou está passando dos limites em sugerir e querer obter vantagens com tal parceria. O Yahoo! Depois que desperdiçou a oportunidade de fechar negócio com a Microsoft, está seguindo o caminho da AOL, SURF, Altavista, CADÊ, e outras marcas, que perderam a oportunidade de saírem de cena e deixando um legado!

Mais transtornos para a cidade de Irecê: caos contábil, fiscal e financeiro.

Hoje, 30 de abril de 2017 a população de Irecê pode dizer que está “quase isolada” da civilização. Desde a explosão da agência do Brasil, hoje é o dia de alinhamento de vários tipos de eventos ruins para nós todos.

– Na sexta-feira fomos atormentados e perseguido pelos arrependidos e sindicalistas, protestando de fato pela possível extinção da contribuição sindical. Fecharam o trânsito, prejudicaram lojistas, trabalhadores, comércio em geral, e ainda, arregimentaram para a proteção e condução deles pelo trânsito uma quantidade de recursos públicos da segurança pública.

– Desde sábado que as agências bancárias (Caixa, Itaú e Bradesco) não tem dinheiro nos caixas automáticos. Reflexo da situação, afinal, como garantir a segurança e ou evitar chamar a atenção das quadrilhas, que, se souberem que há quantidade de dinheiro disponível nos caixas poderão agir?

– Para complicar mais, eis que, a internet está instável desde quinta-feira 27/04/2017. Não adianta criticar a Holística. A situação é geral; atinge todos, por todos os lados. Ou seja, o problema atinge a todos: Holística, Vivo, Oi, Velox, TIM, CLARO, etc e tal.

Consequência:

Um dos problemas que pode atormentar os lojistas e consumidores é uma situação como esta da imagem abaixo:


Eu e minha esposa fizemos uma compra no valor de R$ 48,50. O caixa da loja tentou várias vezes passar o cartão da Caixa em todas as maquininhas disponível no balcão. Somente uma vez, foi dada como transação concluída! No entanto, observe na imagem acima, que foram debitados 3×48,50.

Fui na loja hoje pela manhã e apresentei o extrato. Obtive um crédito de R$ 97,00. Como é nosso conhecido, também assinamos recibo de que, se as outras duas transações forem canceladas pela operadora e pela CAIXA, temos que devolver o crédito recebido. Ou seja, é um transtorno completo: tecnológico, fiscal, contábil e financeiro, além de testar nossa paciência, sensibilidade e evitar o estresse.

Sem dúvidas que esta situação não é só comigo e minha família. Talvez muitos lojistas não irão perceber os prejuízos, tanto quantos boa parte dos cidadãos que não tem o costume de fazer um balanço do quanto tem, do quanto gastou e do saldo que há na conta! Nestes casos, prejuízos para lá, para cá, e, será um caos contábil, fiscal e financeiro.

IRPF 2017 apresenta tela de ERRO, mas, não informa que erro é!

Quando estudava no IFBA campus Irecê, algo no curso me complicava nas tarefas e provas: o querer fazer de meu jeito e como eu pensava que era fácil e mais rápido. Os professores exigiam as regras e o que hoje sempre digo: temos que ter referencial teórico, seguir a padronização existente; faz parte dos processos das boas prática da engenharia de software e da gerência de projeto, etc e etc. Que razão me faz lembrar disso? Um problema que hoje um cliente me apresentou.

Ele tem clientes, para os quais, ele faz o imposto de renda. Há certa praticidade na importação dos dados dos anos anteriores, no entanto, há um trabalho hercúleo a ser realizado. Este cliente, que tem clientes, importou os dados do ano de 2016; aproveitou o feriado e preparou 12 declarações. As gravou e hoje ao chegar em casa pretendia continuar os trabalhos e eis que o software do imposto de renda de 2017, dá erro! O pior! É não saber que erro é! A apresentação do erro na tela é isto abaixo na imagem. Sem a correta exibição textual e o correto tratamento de erro!


Nem há como ir no buscador WEB e procurar por algum tipo de erro. O que procurar? Que frase de erro procurar? Simplesmente não tem nada a ser procurado. Nestes momentos é importante o técnico ter ideias de como resolver a questão. Não sei se é arquivos corrompidos, banco de dados corrompido, acesso indevido de memória, versão de arquivo errada, … nada! Com esta tela de erro, não se tem nenhuma dica para se procurar uma solução. Mas, eu achei uma solução. Eis como resolvi este caso.

1 – Fiz cópia da pasta C:\Arquivos de Programas RFB\IRPF2017; Com a cópia realizada e os dados preservados fiz estes outros procedimentos. Se quiser vá logo lá embaixo e veja a solução.

2- Fiz o download e reinstalei o software. Porém, a reinstalação nova com a preservação dos dados não solucionou o problema;


3 – Renomeei a pasta. E, então, fiz uma instalação nova! O software até que funcionou, mas, não apresentava os dados existentes.

– Não adiantou copiar as pastas de dados já gravados;

– Não adiantou manter a estrutura de pastas e copiar somente os arquivos.

– Não adiantou copiar os dados das pastas copiadas e coladas nas pastas.

Quando as pastas eram copiadas para uma instalação limpa e nova, o software apresentava o ERRO, que não foi devidamente tratado pela equipe de software.

Como a cópia das pastas de dados causavam o defeito de mal funcionamento ao software, eu fiz alguns testes. Apaguei arquivos de configuração e percebi que os mesmos eram criados automaticamente.

SOLUÇÃO:

Fui à pasta C:\Arquivos de Programas RFB\IRPF2017\aplicacao\dados. E excluir os arquivos existentes nela. Veja a imagem abaixo, para a correta identificação:


Depois que excluir estes arquivos, o programa do IRPF 2017 voltou a funcionar com todos os dados anteriormente digitados. A vida de técnico é assim: mesmo não conhecendo ou tendo feito o programa, vamos em busca de solução.

POR FAVOR! Este caso é o que eu resolvi hoje! Não sou especialista em IRPF 2017.

Não sei a solução para todos os problemas do software.

Nada de perguntas difíceis nos comentários!