Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cerutti

Conferindo Jogo da MegaSENA

Recommended Posts

BOm amigos, vou colar aqui para voces um codigo que fiz para conferir jogos da mega sena, ate ai tudo bem porem estou empacado numa coisa que nao da certo voces podem rodar o codigo que verao o meu problema, nao eh erro e sim alguma coisa que eu fiz errada no codigo que ele nao mostra se acertou quina e mega-sena mostra apenas que foi acertado a QUADRA!! por favor me ajudem!!!!

 

 

<?

		// numeros sorteados na mega sena
		$sorteio = "09 12 13 15 29 49 ";
		
	

					// BOLAO 1
					// jogos feitos no bolao 1
					// jogo tem 4 numeros deveria ser QUADRA
					$bolao_feito[0] = 
					
					"09 11 13 15 29 41   
					01 02 12 24 35 60 
					01 02 16 21 49 56 
					01 02 27 31 32 33 
					01 03 06 13 16 33 ";
					
					
					
					// BOLAO 2
					// jogos feitos no bolao 1
					// jogo tem 5 numeros deveria ser QUINA
					$bolao_feito[1] = 
					
					"09 12 13 15 29 41   
					01 02 12 24 35 60 
					01 02 16 21 49 56 
					01 02 27 31 32 33 
					01 03 06 13 16 33 
					01 03 17 22 31 43 ";
					
					
					
					// BOLAO 3
					// jogos feitos no bolao 1
					// jogo tem 6 numeros deveria ser MEGA SENA
					$bolao_feito[2] = 
					
					"09 12 13 15 29 49   
					01 02 12 24 35 60 				
					01 03 16 35 38 56 ";
					
					
					
					
// exibe os boloes de 1 a 3
for($u=0;$u < 3; $u++){						


// adiciona 1 ao numero do bolao pois o mesmo comeca com 0
$numero_bolao = $u + 1;
echo"O Bolao $numero_bolao ";	
					
					
					
					// joga pra variavel bolao o valor do bolao
					$bolao = $bolao_feito[$u];
					
					// substitui as \n por <br />
					$bolao  = nl2br($bolao);
					
					//separa por linha os volantes (cartelas)
					$bolao=explode("<br />",$bolao);
					
					//conta numero de linhas do bolao para saber quantos boloes existem
					$n_boloes = count($bolao);
					
					
					for($x=0;$x<count($bolao);$x++)
					{
					$bolao[$x]=explode(" ",$bolao[$x]);
					}
					
					// numeros sorteados separa em vetor
					$sorteio = explode(" ",$sorteio);
					
				
					// faz repeticao entre numero de linhas
					for($z=0;$z < $n_boloes;$z++)
					{
						
						
						// faz repeticao pelas 6 dezenas de cada cartao
						for($a=0;$a<6;$a++)
							{
								
								// roda todas as dezenas para compara-las e mostrar apenas as dezenas SORTEADAS
								for($b=0;$b<6;$b++)
									{	
									
										// mostras apenas as dezenas sorteadas
										if($bolao[$z][$a] == $sorteio[$b])
											{
												
											// conta quantos acertos tiveram em cada linha do bolao
											$jogo[$z] = $jogo[$z] + 1;
											//echo"$jogo[$z]<br />";
																		
											

												
											}//fim if
											
											
											
											
											
									}//fim for
									
									
									
									
									
							}// fim for
							
							

	
						
							
							

// verifica se o numero de acertos para saber se acertou uma quadra								
if($jogo[$z] == 4)
{
														
$cartao_inc = $z +1;
			

echo"foi premiado com a QUADRA<br>
";
							
}

// verifica se o numero de acertos para saber se acertou uma quadra								
if($jogo[$z] == 5)
{
														
$cartao_inc = $z +1;
			

echo"foi premiado com a QUINA<br>
";
							
}

// verifica se o numero de acertos para saber se acertou uma quadra								
if($jogo[$z] == 6)
{
														
$cartao_inc = $z +1;
			

echo"foi premiado com a MEGASENA!!!!<br>
";
							
}
						

								
}//fim for roda boloes 1 a 3


}



?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ninguem te ajudou porque provavelmente ninguem entendeu.

Qual é o lógica disso ai? O que ele deveria fazer? A nível de código, o que deve ser feito?

 

Eu não entendo muito de jogo e nem vou pesquisar sobre apenas para te ajudar. Ajude-nos para ser ajudado. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade a logica eh a seguinte.

 

Sao 3 Boloes e cada Bolao contem sequencias de 6 numeros que sao chamados DEZENAS esses numeros sao separados por um espaco entre eles, e cada sequencia de 6 numeros eh chamado de volante que eh separado por um \n (quebra de linha).

 

o que tem que ser feito eh conferir cada linha de cada bolao para saber se existem numeros iguais aos numeros da variavel sorteio, e na hora da verificacao se uma linha do bolao 1 por exemplo tiver 4 numeros iguais as da variavel sorteio deve-se dar uma msg que o bolao 1 ganhou uma quadra, se forem 5 numeros ganhou uma quina e 6 foi ganhador da mega-sena.

 

O Problema eh que quando ele chega nessa parte do codigo

 

// mostras apenas as dezenas sorteadas
  if($bolao[$z][$a] == $sorteio[$b])
   {
                                                                                                
  // conta quantos acertos tiveram em cada linha do bolao
$jogo[$z] = $jogo[$z] + 1;

                                                                    
                                                                                                
 }//fim if

que na verdade guarda quantas dezenas foram acertadas em cada linha de cada bolao, ele ta gravando alguma coisa errada, e na hora de apontar se o bolao teve 4, 5 ou 6 acertos ele repete dizendo por exemplo que o bolao 1 e 2 acertaram a quina quando na verdade o bolao 1 acertou uma quadra e o bolao 2 uma quina.

 

Desculpe a falta de clareza no topico mais eh que eu axei que a maioria entendesse o basico de mega-sena.. desculpem novamente.

 

Espero que tenho sido claro dessa vez e se ficou alguma duvida ainda por favor me digam que eu tentarei explicar.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é que esteja incompreensível, mas convenhamos que está uma verdadeira bagunça. A lógica está toda perdida no meio de um script que é grande demais para a pouca coisa que é feita.

 

Sugestão - apague tudo. Quando um código não funciona, não serve. Se corrigi-lo demanda mais tempo do que fazer novamente, faça novamente, mas aprenda com os erros: Revise a lógica de cada um dos algoritmos e organize seu programa em funções (pelo menos, ideal seria orienta-lo a objetos).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhe com vetores, vai te facilitar muito.

O primeiro passo é pensar na estrutura do vetor (array()), e ela ficou dessa maneira.

 

$sorteados = array( '09', '12', '13', '15', '29', '49' );

$bolao = array(
'Bolão 1' => array(
	array( '09', '11', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' )
),
'Bolão 2' => array(
	array( '09', '12', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' ),
	array( '01', '03', '17', '22', '31', '43' )
),
'Bolão 3' => array(
	array( '09', '12', '13', '15', '29', '49' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '03', '16', '35', '38', '56' )
)
);

 

Na verdade isso é um array multi-dimensional de 3 níveis. Dessa maneira podemos iterar os bolões (Bolão 1, Bolão 2, Bolão 3) e depois iterar cada jogo de cada bolão.

Podemos fazer isso da seguinte maneira:

 

foreach( $bolao as $key => $values ) {
foreach( $values as $value ) {

	}		
}

echo '<br /><hr /><br />' . PHP_EOL;;
}

 

A cada iteração do segundo foreach, $value irá conter um array contendo um jogo do bolão que está sendo iterado pelo primeiro foreach.

Então temos que calcular a interseção do array $value com o array $sorteados, para sabermos quantos números ele acertou.

 

		switch( count( array_intersect_assoc( $sorteados, $value ) ) ) {
		case 4 :
		echo $key . ' fez uma quadra.<br />' . PHP_EOL; break;

		case 5 :
		echo $key . ' fez uma quina.<br />' . PHP_EOL; break;

		case 6 :
		echo $key . ' fez uma mega-sena.<br />' . PHP_EOL; break;
	}

 

O código final ficou assim: (basta executar para ver o resultado)

 

<?php
$sorteados = array( '09', '12', '13', '15', '29', '49' );

$bolao = array(
'Bolão 1' => array(
	array( '09', '11', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' )
),
'Bolão 2' => array(
	array( '09', '12', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' ),
	array( '01', '03', '17', '22', '31', '43' )
),
'Bolão 3' => array(
	array( '09', '12', '13', '15', '29', '49' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '03', '16', '35', '38', '56' )
)
);

foreach( $bolao as $key => $values ) {
foreach( $values as $value ) {
	switch( count( array_intersect_assoc( $sorteados, $value ) ) ) {
		case 4 :
		echo $key . ' fez uma quadra.<br />' . PHP_EOL; break;

		case 5 :
		echo $key . ' fez uma quina.<br />' . PHP_EOL; break;

		case 6 :
		echo $key . ' fez uma mega-sena.<br />' . PHP_EOL; break;
	}
}

echo '<br /><hr /><br />' . PHP_EOL;;
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andre!

 

Cara realmente eu fiz um codigo enorme sem necessidade! vendo o que tu fez vi que fui pelo caminho mais longo!

 

Muito obrigado por dispor de seu tempo e paciencia para me ajudar. Muito obrigado mesmo pelo help.

 

 

Sucesso!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhe com vetores, vai te facilitar muito.

O primeiro passo é pensar na estrutura do vetor (array()), e ela ficou dessa maneira.

 

$sorteados = array( '09', '12', '13', '15', '29', '49' );

$bolao = array(
'Bolão 1' => array(
	array( '09', '11', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' )
),
'Bolão 2' => array(
	array( '09', '12', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' ),
	array( '01', '03', '17', '22', '31', '43' )
),
'Bolão 3' => array(
	array( '09', '12', '13', '15', '29', '49' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '03', '16', '35', '38', '56' )
)
);

 

Na verdade isso é um array multi-dimensional de 3 níveis. Dessa maneira podemos iterar os bolões (Bolão 1, Bolão 2, Bolão 3) e depois iterar cada jogo de cada bolão.

Podemos fazer isso da seguinte maneira:

 

foreach( $bolao as $key => $values ) {
foreach( $values as $value ) {

	}		
}

echo '<br /><hr /><br />' . PHP_EOL;;
}

 

A cada iteração do segundo foreach, $value irá conter um array contendo um jogo do bolão que está sendo iterado pelo primeiro foreach.

Então temos que calcular a interseção do array $value com o array $sorteados, para sabermos quantos números ele acertou.

 

		switch( count( array_intersect_assoc( $sorteados, $value ) ) ) {
		case 4 :
		echo $key . ' fez uma quadra.<br />' . PHP_EOL; break;

		case 5 :
		echo $key . ' fez uma quina.<br />' . PHP_EOL; break;

		case 6 :
		echo $key . ' fez uma mega-sena.<br />' . PHP_EOL; break;
	}

 

O código final ficou assim: (basta executar para ver o resultado)

 

<?php
$sorteados = array( '09', '12', '13', '15', '29', '49' );

$bolao = array(
'Bolão 1' => array(
	array( '09', '11', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' )
),
'Bolão 2' => array(
	array( '09', '12', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' ),
	array( '01', '03', '17', '22', '31', '43' )
),
'Bolão 3' => array(
	array( '09', '12', '13', '15', '29', '49' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '03', '16', '35', '38', '56' )
)
);

foreach( $bolao as $key => $values ) {
foreach( $values as $value ) {
	switch( count( array_intersect_assoc( $sorteados, $value ) ) ) {
		case 4 :
		echo $key . ' fez uma quadra.<br />' . PHP_EOL; break;

		case 5 :
		echo $key . ' fez uma quina.<br />' . PHP_EOL; break;

		case 6 :
		echo $key . ' fez uma mega-sena.<br />' . PHP_EOL; break;
	}
}

echo '<br /><hr /><br />' . PHP_EOL;;
}
?>

 

 

deixa eu te fazer mais uma pergunta, no caso esses valores estao no meu banco de dados disposdos da seguinte forma:

 

numeros_sorteados : 09 12 13 15 29 49

 

bolao1:

 

09 11 13 15 29 41

01 02 12 24 35 60

01 02 16 21 49 56

01 02 27 31 32 33

01 03 06 13 16 33

 

 

bolao 2 e assim por diante.

 

Como faco para montar esses numeros nesses arrays ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que mudar a forma que esses números ficam no banco de dados.

Se quiser, você pode usar a função serialize() para poder guardar esse vetor dentro do banco de dados, e depois unserialize() para "converter" os dados do banco novamente num vetor.

Veja:

 

<?php
$sorteados = array( '09', '12', '13', '15', '29', '49' );

$bolao = array(
	'Bolão 1' => array(
	array( '09', '11', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' )
	),
	'Bolão 2' => array(
	array( '09', '12', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' ),
	array( '01', '03', '17', '22', '31', '43' )
	),
	'Bolão 3' => array(
	array( '09', '12', '13', '15', '29', '49' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '03', '16', '35', '38', '56' )
	)
);

mysql_query( "INSERT INTO `tabela`
(`numeros_sorteados`, `bolao`)
VALUES
('" . serialize( $sorteados ) . "', '" . serialize( $bolao ) . "')" );

// Depois para resgatar esses valores em forma de vetor.

$sorteados = mysql_result( $query, 0, 'numeros_sorteados' );
$sorteados = unserialize( $sorteados );

// E o mesmo para $bolao.
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que mudar a forma que esses números ficam no banco de dados.

Se quiser, você pode usar a função serialize() para poder guardar esse vetor dentro do banco de dados, e depois unserialize() para "converter" os dados do banco novamente num vetor.

Veja:

 

<?php
$sorteados = array( '09', '12', '13', '15', '29', '49' );

$bolao = array(
	'Bolão 1' => array(
	array( '09', '11', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' )
	),
	'Bolão 2' => array(
	array( '09', '12', '13', '15', '29', '41' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '02', '16', '21', '49', '56' ),
	array( '01', '02', '27', '31', '32', '33' ),
	array( '01', '03', '06', '13', '16', '33' ),
	array( '01', '03', '17', '22', '31', '43' )
	),
	'Bolão 3' => array(
	array( '09', '12', '13', '15', '29', '49' ),
	array( '01', '02', '12', '24', '35', '60' ),
	array( '01', '03', '16', '35', '38', '56' )
	)
);

mysql_query( "INSERT INTO `tabela`
(`numeros_sorteados`, `bolao`)
VALUES
('" . serialize( $sorteados ) . "', '" . serialize( $bolao ) . "')" );

// Depois para resgatar esses valores em forma de vetor.

$sorteados = mysql_result( $query, 0, 'numeros_sorteados' );
$sorteados = unserialize( $sorteados );

// E o mesmo para $bolao.
?>

 

 

nao teria uma forma de transformar isso:

 

 

09 11 13 15 29 41

01 02 12 24 35 60

01 02 16 21 49 56

01 02 27 31 32 33

01 03 06 13 16 33

 

 

09 12 13 15 29 41

01 02 12 24 35 60

01 02 16 21 49 56

01 02 27 31 32 33

01 03 06 13 16 33

01 03 17 22 31 43

 

09 12 13 15 29 49

01 02 12 24 35 60

01 03 16 35 38 56

 

 

 

 

 

nisso:

 

 

$bolao = array(

'Bolão 1' => array(

array( '09', '11', '13', '15', '29', '41' ),

array( '01', '02', '12', '24', '35', '60' ),

array( '01', '02', '16', '21', '49', '56' ),

array( '01', '02', '27', '31', '32', '33' ),

array( '01', '03', '06', '13', '16', '33' )

),

'Bolão 2' => array(

array( '09', '12', '13', '15', '29', '41' ),

array( '01', '02', '12', '24', '35', '60' ),

array( '01', '02', '16', '21', '49', '56' ),

array( '01', '02', '27', '31', '32', '33' ),

array( '01', '03', '06', '13', '16', '33' ),

array( '01', '03', '17', '22', '31', '43' )

),

'Bolão 3' => array(

array( '09', '12', '13', '15', '29', '49' ),

array( '01', '02', '12', '24', '35', '60' ),

array( '01', '03', '16', '35', '38', '56' )

)

);

 

??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só rodar que vai dar na mesma:

 

<?php
$bolao1 = <<< BOLAO
09 11 13 15 29 41
01 02 12 24 35 60
01 02 16 21 49 56
01 02 27 31 32 33
01 03 06 13 16 33
BOLAO;

$bolao2 = <<< BOLAO
09 12 13 15 29 41
01 02 12 24 35 60
01 02 16 21 49 56
01 02 27 31 32 33
01 03 06 13 16 33
01 03 17 22 31 43
BOLAO;

$bolao3 = <<< BOLAO
09 12 13 15 29 49
01 02 12 24 35 60
01 03 16 35 38 56
BOLAO;

$bolao = array();
$linhas_bolao1 = explode( PHP_EOL, $bolao1 );
$linhas_bolao2 = explode( PHP_EOL, $bolao2 );
$linhas_bolao3 = explode( PHP_EOL, $bolao3 );

foreach( $linhas_bolao1 as $linha_bolao1 ) {
$bolao['Bolão 1'][] = explode( ' ', $linha_bolao1 );
}

foreach( $linhas_bolao2 as $linha_bolao2 ) {
$bolao['Bolão 2'][] = explode( ' ', $linha_bolao2 );
}

foreach( $linhas_bolao3 as $linha_bolao3 ) {
$bolao['Bolão 3'][] = explode( ' ', $linha_bolao3 );
}

/* Aqui começa o script que postei */

$sorteados = array( '09', '12', '13', '15', '29', '49' );

foreach( $bolao as $key => $values ) {
	foreach( $values as $value ) {
	switch( count( array_intersect_assoc( $sorteados, $value ) ) ) {
	case 4 :
	echo $key . ' fez uma quadra.<br />' . PHP_EOL; break;

	case 5 :
	echo $key . ' fez uma quina.<br />' . PHP_EOL; break;

	case 6 :
	echo $key . ' fez uma mega-sena.<br />' . PHP_EOL; break;
	}
	}

	echo '<br /><hr /><br />' . PHP_EOL;;
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.