Mega Sena Fake - PHP-GTK
Publicado por Perfil removido (última atualização em 01/11/2016)
[ Hits: 4.717 ]
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(); ?>
Micro-script confirmar exclusão
Função para gerar números aleatórios
funcões para conversao de uma string
gerador de tabelas em html v2.2
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (11)