Frank K Hosaka Postado Novembro 5, 2023 Denunciar Share Postado Novembro 5, 2023 (editado) index.php <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <?php echo "<table class='table w-25 m-auto'>"; $escolha=mt_rand(1,14); $linha=0; if($escolha<=6){ echo "<td colspan=6>Palpite para Mega-Sena: linha $escolha";} if($escolha>=7 and $escolha<=12){ $coluna=$escolha-6; echo "<td colspan=6>Palpite para Mega-Sena: coluna $coluna";} else {$coluna=0;} $diagonal=0; if($escolha>12){ $diagonal=$escolha-12; echo "<td colspan=6>Palpite para Mega-Sena: diagonal $diagonal";} $controle=5; for($j=1;$j<=6;$j++){ $linha++; for ($i = 0, $palpites = []; $i < 1500; $i++) @$palpites[mt_rand(1, 60)]++; arsort($palpites); $i=0; $sorteio=[]; foreach($palpites as $key => $valor){ $sorteio[]=$key; $i++; if($i==6){break;}} sort($sorteio); echo "<tr>"; foreach($sorteio as $key=>$sorte){ if($coluna!==0 and $key==($coluna-1)){ $class="class='text-danger'";} else {$class="";} if($escolha<=6 and $escolha==$linha){ $class="class='text-danger'";} if($diagonal==1 and $linha==($key+1)){ $class="class='text-danger'";} if($diagonal==2 and $key==$controle){ $class="class='text-danger'"; $controle--;} echo "<td $class>$sorte";}} echo "<tr><td colspan=6>"; echo "<input type=submit value='Novo Palpite' onclick=location.replace('index.php')>"; Editado Novembro 5, 2023 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
1 ikkinet Postado Novembro 9, 2023 Denunciar Share Postado Novembro 9, 2023 não sei se entendi muito bem, mas entendi o objetivo. Geralmente em se tratando de matrizes (que é basicamente um array de arrays, ou um array multidimensional), nos temos duas - ou mais, mas não vem a esse caso - chaves. Por exemplo, temos um array de numeros, que representa cada jogo. E temos um array de jogos, que representa todas as possibilidades. Assim, poderiamos chamar esse array de $array[jogos][numeros]. Dito isso, talvez para fins de clareza de codigo, seria melhor pre-popular esse array multidimensional com os numeros, e depois percorre-lo novamente fazendo a exibicao, e ai esoclhendo quando colocar as cores. Assim seria como eu faria: // Popula a matriz com 6 jogos de 6 numeros cada $array = []; for($i = 0; $i < 6; $i+=1) { $linha = []; do { do { $numero = rand(1,60); } while(in_array($numero, $linha)); $linha[] = $numero; } while(count($linha) < 6); sort($linha); $array[] = $linha; } // Exibe na tela // Seleciona se a sorte é horizontal (1), vertical (2) ou diagonal (3) $sorte = rand(1,3); // Seleciona a linha ou a coluna dependendo do resultado anterior // Se for diagonal, só tem 2 possibilidades: descendente (comeca da esquerda topo para a direita baixo) ou // ascendente (comeca da esquerda baixo para a direita topo) // Portanto, se for diagonal, verificamos se o $sorte 2 é par para descedente ou impar para ascendente $sorte2 = rand(1,6); echo '<h1>Palpite da Mega-Sena</h1>'; echo '<h3>Escolha da sorte: ' . ($sorte == 1 ? 'linha '.$sorte2 : ( $sorte == 2 ? 'coluna '.$sorte2 : 'diagonal ' . ($sorte2 % 2 == 0 ? 'descendente' : 'ascendente') ) ) . '</h3>'; echo '<table style="font-family: monospace">'; foreach($array as $linha => $jogo) { echo '<tr>'; foreach($jogo as $coluna => $numero) { $class = ''; if( ( $sorte == 1 && $linha == ($sorte2 - 1) ) || ( $sorte == 2 && $coluna == ($sorte2 - 1) ) || ( $sorte == 3 && $sorte2 % 2 == 0 && $coluna == $linha ) || ( $sorte == 3 && $sorte2 % 2 == 1 && ($coluna == (5 - $linha) ) ) ) { $class = 'danger'; } echo '<td class="' . $class . '">'; echo $numero; echo '</td>'; } echo '</tr>'; } echo '</table>'; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Frank K Hosaka
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.