Mega Sena Fake - PHP-GTK
Publicado por Perfil removido (última atualização em 01/11/2016)
[ Hits: 4.695 ]
Download 1476201057.codigos.php (versão 2)
Um pequeno aplicativo escrito em PHP-GTK (necessário tê-lo instalado em seu computador) que permite ao usuário selecionar seis números, realiza um sorteio de seis números e analisa se o usuário ganhou ou perdeu.
Aviso: as chances de ganhar são uma em cinquenta milhões!
O código possui uma análise posterior do que o usuário digita, verificando se o usuário digitou um número entre 1 e 60, se o usuário não digitou um número inválido ou outro caractere no código.
Há um bug na função valida(), a qual verifica a entrada fornecida pelo usuário. Provavelmente vou reescrever o código da função e torná-la mais simples, porém eliminando o bug.
Versão 2 - Enviado por Rodrigo Zimmermann em 11/10/2016
Changelog: 1. Corrigido bug que exibia várias mensagens de erro caso o usuário não informasse números válidos;
2. Inserido créditos.
3. Criação de dicas.
Download 1476201057.codigos.php
/* MEGA SENA FAKE Versão 0.10 - Data 23.09.2016 Hora 00:49:34 * Um inutilitário realmente inútil * Criado por Rodrigo Zimmermann (2016) * e-mail: rodrigo.zimmermann23@gmail.com * Este programa é distribuído sem garantias * Você pode usar o programa, copiá-lo ou modificá-lo * desde que mantenha os créditos. * Este programa foi criado como um exercício de programação com PHP-GTK * Portanto, pode não ser útil para você. */ // dl ('php_gtk.' . PHP_SHLIB_SUFIX); //função para encerrar o aplicativo function shutdown(){ gtk::main_quit(); } //função que exibe mensagem de erro caso o usuário forneça dados inválidos //vide bug conhecido nos comentários da função valida() function mensagem(){ global $texto; $msgbox = new GtkWindow(); $container = new GtkVBox(); $msgbox -> add($container); $msgbox -> set_border_width(10); $btmsgbox = new GtkButton("Tentar novamente"); $btmsgbox -> connect_simple('clicked',array($msgbox,'hide')); $mensagem = new GtkLabel("$texto"); $container -> pack_start ($mensagem); $container -> pack_start (new GtkHSeparator); $container -> pack_start($btmsgbox); $msgbox -> show_all(); } //verifica se os dados fornecidos pelo usuário são válidos //bug conhecido: digitar números negativos ou outros caracteres irá //mostrar mais de uma mensagem, visto que não consegui escrever um código //que valide corretamente o tipo de dado digitado. function valida (){ global $dezena01; global $dezena02; global $dezena03; global $dezena04; global $dezena05; global $dezena06; global $texto; global $aposta; if ($dezena01->get_text()==NULL or $dezena02->get_text()==NULL or $dezena03->get_text()==NULL or $dezena04->get_text()==NULL or $dezena05->get_text()==NULL or $dezena06->get_text()==NULL){ $texto = "Não deixe nenhum campo em branco,\nfaça o seu jogo!"; mensagem(); } if ($dezena01->get_text() == $dezena02->get_text() or $dezena01->get_text()==$dezena03->get_text or $dezena01->get_text()==$dezena04->get_text() or $dezena01->get_text()==$dezena05->get_text() or $dezena01->get_text()==$dezena06->get_text() or $dezena02->get_text()==$dezena03->get_text() or $dezena02->get_text()==$dezena04->get_text() or $dezena02->get_text()==$dezena05->get_text() or $dezena02->get_text()==$dezena06->get_text() or $dezena03->get_text()==$dezena04->get_text() or $dezena03->get_text()==$dezena05->get_text() or $dezena03->get_text()==$dezena06->get_text() or $dezena04->get_text()==$dezena05->get_text() or $dezena04->get_text()==$dezena06->get_text() or $dezena05->get_text()==$dezena06->get_text()){ $texto = "Um número só pode ser escolhido uma única vez!"; mensagem(); } if ($dezena01->get_text() > 60 or $dezena01->get_text() > 60 or $dezena01->get_text() > 60 or $dezena01->get_text()>60 or $dezena01->get_text()>60 or $dezena02->get_text()>60 or $dezena02->get_text()>60 or $dezena02->get_text()>60 or $dezena02->get_text()>60 or $dezena03->get_text()>60 or $dezena03->get_text()>60 or $dezena03->get_text()>60 or $dezena04->get_text()>60 or $dezena04->get_text()>60 or $dezena05->get_text()>60){ $texto = "Você deve escolher números entre 1 e 60!\nValores maiores não são permitidos."; mensagem(); } if ($dezena01->get_text() <=0 or $dezena01->get_text() <=0 or $dezena01->get_text() <=0 or $dezena01->get_text()<=0 or $dezena01->get_text()<=0 or $dezena02->get_text()<=0 or $dezena02->get_text()<=0 or $dezena02->get_text()<=0 or $dezena02->get_text()<=0 or $dezena03->get_text()<=0 or $dezena03->get_text()<=0 or $dezena03->get_text()<=0 or $dezena04->get_text()<=0 or $dezena04->get_text()<=0 or $dezena05->get_text()<=0){ $texto = "Você deve escolher números entre 1 e 60!\nZero e valores negativo não são permitidos.\nTambém não podem ser usados outros caracteres."; mensagem(); } else { //organizando os números fornecidos pelo usuário em ordem crescente $aposta = array($dezena01->get_text(), $dezena02->get_text(), $dezena03->get_text(), $dezena04->get_text(), $dezena05->get_text(), $dezena06->get_text()); sort($aposta); jogar(); mostrar(); } } //avalia se o usuário acertou os números sorteados function isWinOrNot (){ global $resultado; global $aposta; if ($aposta[0]==$resultado[0] and $aposta[1]==$resultado[1] and $aposta[2]==$resultado[2] and $aposta[3]==$resultado[3] and $aposta[4]==$resultado[4] and $aposta[5]==$resultado[5]){ return "Parabéns! Você ganhou!"; } else {return "Que azar";} } //esta função é responsável por exibir os números sorteados, a aposta e //mensagem de avaliação do resultado function mostrar(){ global $resultado; global $aposta; $wExibir = new GtkWindow(); $wExibir -> set_border_width(10); $wExibir -> set_title("Resultado"); $wExibirMSg = new GtkLabel ("Confira os números sorteados:\n $resultado[0] - $resultado[1] - $resultado[2] - $resultado[3] - $resultado[4] - $resultado[5]"); $wExibirMSg2 = new GtkLabel ("Esta foi a sua aposta:\n$aposta[0] - $aposta[1] - $aposta[2] - $aposta[3] - $aposta[4] - $aposta[5]"); $wExibirMSg3 = new GtkLabel (isWinOrNot()); $wExibirBtOk = new GtkButton("Ok"); $wExibirBtOk -> connect_simple('clicked',array($wExibir,"hide")); //Inicia um container e agrega os elementos a ele $box = new GtkVBox(); $box -> pack_start ($wExibirMSg); $box -> pack_start ($wExibirMSg2); $box -> pack_start ($wExibirMSg3); $box -> pack_start (new GtkHSeparator); $box -> pack_start ($wExibirBtOk); $wExibir -> add ($box); //Exibe a janela e todos os elementos contidos nela $wExibir->show_all(); } //Esta função chama a função sortear(), avalia o resultado e ordena function jogar(){ sortear(); global $sorteada01; global $sorteada02; global $sorteada03; global $sorteada04; global $sorteada05; global $sorteada06; global $resultado; //Realiza novo sorteio caso algum dos números sorteados seja idêntico a outro também sorteado while ($sorteada01 == $sorteada02 or $sorteada01 == $sorteada03 or $sorteada01 == $sorteada04 or $sorteada01 == $sorteada05 or $sorteada01 == $sorteada06 or $sorteada02 == $sorteada03 or $sorteada02 == $sorteada04 or $sorteada02 == $sorteada05 or $sorteada02 == $sorteada06 or $sorteada03 == $sorteada04 or $sorteada03 == $sorteada05 or $sorteada03 == $sorteada06 or $sorteada04 == $sorteada05 or $sorteada04 == $sorteada06 or $sorteada05 == $sorteada06){ sortear(); } //Ordena os números sorteados em ordem crescente $resultado = array($sorteada01, $sorteada02, $sorteada03, $sorteada04, $sorteada05, $sorteada06); sort ($resultado); } //A função que faz o sorteio function sortear (){ global $sorteada01; global $sorteada02; global $sorteada03; global $sorteada04; global $sorteada05; global $sorteada06; $sorteada01 = rand(1,60); $sorteada02 = rand(1,60); $sorteada03 = rand(1,60); $sorteada04 = rand(1,60); $sorteada05 = rand(1,60); $sorteada06 = rand(1,60); } /* * SEÇÃO DA JANELA PRINCIPAL * Cria a janela e seus elementos * Define as ações a serem realizadas * Faz a coordenação do programa * */ //Definição da janela $window = new GtkWindow(); //cria a janela principal $window->connect('destroy',"shutdown"); //ao fechar a janela, executar função shutdown() $window->set_border_width(10); $window->set_position('GTK_WIN_POS_CENTER'); //centraliza a janela $window->set_title("Mega Sena"); //Definição dos elementos $vbox = new GtkVBox(); //cria o container $window -> add ($vbox); //adiciona o container à janela principal $rotulo = new GtkLabel("Bem Vindo a Mega Sena!"); $botaoFechar = new GtkButton('Fechar'); $botaoFechar -> connect_simple('clicked',"shutdown"); $rdezena01 = new GtkLabel("Escolha a primeira dezena"); $dezena01 = new GtkEntry(); $rdezena02 = new GtkLabel("Escolha a segunda dezena"); $dezena02 = new GtkEntry(); $rdezena03 = new GtkLabel("Escolha a terceira dezena"); $dezena03 = new GtkEntry(); $rdezena04 = new GtkLabel("Escolha a quarta dezena"); $dezena04 = new GtkEntry(); $rdezena05 = new GtkLabel("Escolha a quinta dezena"); $dezena05 = new GtkEntry(); $rdezena06 = new GtkLabel("Escolha a sexta dezena"); $dezena06 = new GtkEntry(); $btJogar = new GtkButton("Jogar"); //As ações do botão $btJogar serão executadas na ordem invocadas $btJogar -> connect("clicked","valida"); //Encapsula os elementos dentro do container $vbox -> pack_start($rotulo); $vbox -> pack_start(new GtkHSeparator); $vbox -> pack_start($rdezena01); $vbox -> pack_start($dezena01); $vbox -> pack_start($rdezena02); $vbox -> pack_start($dezena02); $vbox -> pack_start($rdezena03); $vbox -> pack_start($dezena03); $vbox -> pack_start($rdezena04); $vbox -> pack_start($dezena04); $vbox -> pack_start($rdezena05); $vbox -> pack_start($dezena05); $vbox -> pack_start($rdezena06); $vbox -> pack_start($dezena06); $vbox -> pack_start(new GtkHSeparator); $vbox -> pack_start(new GtkLabel("Quanto estiver pronto:")); $vbox -> pack_start($btJogar); $vbox -> pack_start($botaoFechar); //Exibe a janela principal e todos os elementos contidos nela $window->show_all(); //Entra no loop principal do PHP-GTK Gtk::Main(); ?>
WShell - Comandos do sistema via web
Crivo de Eratóstenes Simples em PHP
Criando um menu de paginação de resultados com algumas funcionalidades
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (1)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (3)
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta