SCRABBLE FACILE...

Signaler
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
6
Date d'inscription
lundi 10 novembre 2003
Statut
Membre
Dernière intervention
18 mars 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44665-scrabble-facile

Messages postés
6
Date d'inscription
lundi 10 novembre 2003
Statut
Membre
Dernière intervention
18 mars 2010

Hello
Qui a une solution pour supprimer les doublons dans les résultats et en compter le nombre. Merci par avance.
Cordialement à tous les phpistes.

CODE index.html ça peut intéresser quelqu'un !
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>SCRABBLE</title>
<STYLE>

.over{font-size:12;font-weight:demi-bold;font-family:Verdana;color:#000000;background:#FFFF00}
.down{font-size:12;font-weight:demi-bold;font-family:Verdana;color:#000000;background:#FF0000}
.out{font-size:12;font-weight:demi-bold;font-family:Verdana;color:#FFFFFF;background:#000000}
input.btn{font-size:12;font-weight:demi-bold;font-family:Verdana;color:#FFFFFF;background:#000000}
input{text-align:center;font-size:12;font-weight:demi-bold;font-family:Verdana;color:#FFFFFF;background:#000000}
input.nx{text-align:center;font-size:14;font-weight:demi-bold;font-family:Verdana;color:#000000;background:#FFFFFF}
textarea{text-align:left;font-size:12;font-weight:demi-bold;font-family:Verdana;color:#F0F0F0;background:#000000}
HR {color:#FFFF00}
</STYLE>

</head>

<center>


<form action="scrabble.php" method="get">
<fieldset>
<legend>TIRAGE</legend>
<label> Entrez vos 7 lettres : </label>

Tirage minimum <select name="mini">

<option value='2'>2 lettres</option>
<option value='3'>3 lettres</option>
<option value='4'>4 lettres</option>
<option value='5'>5 lettres</option>
<option value='6'>6 lettres</option>
<option value='7'>Scrabble</option>

</select>
</fieldset>


</form>

</html>

CODE scrabble.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>SCRABBLE</title>
<style>
a:link {color: #FFEFB5; text-decoration: none}
a:visited {color: #000000; text-decoration: none}
a:hover {color: #ffffff; text-decoration: none}
</style>
<script type="text/javascript">
/*
SCRIPT DE L'EDITEUR JAVASCRIPT
http://www.editeurjavascript.com
*/
go_visibility = new Array;

function goblink()
{
if(document.getElementById && document.all)
{
blink_tab = document.getElementsByTagName('blink');
for(a=0;a
<STYLE>
.over{font-size:12;font-weight:demi-bold;font-family:Verdana;color:#000000;background:#FFFF00}
.down{font-size:12;font-weight:demi-bold;font-family:Verdana;color:#000000;background:#FF0000}
.out{font-size:12;font-weight:demi-bold;font-family:Verdana;color:#FFFFFF;background:#000000}
input.btn{font-size:12;font-weight:demi-bold;font-family:Verdana;color:#FFFFFF;background:#000000}
input{text-align:center;font-size:12;font-weight:demi-bold;font-family:Verdana;color:#FFFFFF;background:#000000}
input.nx{text-align:center;font-size:14;font-weight:demi-bold;font-family:Verdana;color:#000000;background:#FFFFFF}
textarea{text-align:left;font-size:12;font-weight:demi-bold;font-family:Verdana;color:#F0F0F0;background:#000000}
HR {color:#FFFF00}
</STYLE>
</head>

<center>
<center>
<?php

include('conf/mysql.php');//Inclusion du script de connexion
$lettre[0] = $_GET['lettre1'];
$lettre[1] = $_GET['lettre2'];
$lettre[2] = $_GET['lettre3'];
$lettre[3] = $_GET['lettre4'];
$lettre[4] = $_GET['lettre5'];
$lettre[5] = $_GET['lettre6'];
$lettre[6] = $_GET['lettre7'];
$mini = $_GET['mini'];

?>

<?php

$maxi=8;
$qry = "SELECT DISTINCT mot FROM dico WHERE length(mot)<$maxi and length(mot)>=$mini order by length(mot) ";
$requete = mysql_query($qry) or die('Erreur MySQL :
' . mysql_error());
$nb_resultats = mysql_num_rows($requete);

$lettre1= $lettre[0];
$chaine1 = strtoupper("$lettre1");

$lettre2= $lettre[1];
$chaine2 = strtoupper("$lettre2");

$lettre3= $lettre[2];
$chaine3 = strtoupper("$lettre3");

$lettre4= $lettre[3];
$chaine4 = strtoupper("$lettre4");

$lettre5= $lettre[4];
$chaine5 = strtoupper("$lettre5");

$lettre6= $lettre[5];
$chaine6 = strtoupper("$lettre6");

$lettre7= $lettre[6];
$chaine7 = strtoupper("$lettre7");

echo'Recherche parmis '.$nb_resultats.' mots
avec les lettres

<table align="middle" valign="middle" border="0" cellspacing="0" cellpadding="0">----, <center>'.$chaine1.' </td>
<center>'.$chaine2.',
<center>'.$chaine3.',
<center>'.$chaine4.',
<center>'.$chaine5.',
<center>'.$chaine6.',
<center>'.$chaine7.'

| [javascript:history.go(-1) Retour] |';
echo'

Mots trouvés, Nombre de lettre, Points, ';
while($data = mysql_fetch_array($requete))
{

$taille = strlen($data['mot']);//Détermination de la longeur du mot
if($taille == 7)//Pour les mots de 7 lettres par tirage affiche scrabble
{
$scrabble=' scrabble ';
}
elseif($taille ! =7)
{
$scrabble=$taille; //affiche la taille
}

for($i=0;$i<$taille;$i++)
{
$dico[$i] = substr($data['mot'],$i,1);//Création de l'array du mot du dico
}
$nbjuste = 0;
for($j=0;$j<7;$j++)
{
for($h=0;$h<$taille;$h++)//Pour chaque lettre de chaque mot puis on compare a l'array envoyé en POST
{
if($lettre[$j] == $dico[$h])
{
$dico[$h] = \"0\";
$nbjuste = $nbjuste + 1;
$h = $taille + 1;
}
}

$mot= $data['mot'];

$chaine = strtoupper(\"$mot\");

if ($nbjuste==$taille)
{

echo '----
' . $chaine.', '.$scrabble.' , , ';//On crée une ligne de tableau par mot trouvé...
}

}
}

?>

</td></tr></table>

</html>
Messages postés
1
Date d'inscription
vendredi 4 mai 2007
Statut
Membre
Dernière intervention
18 novembre 2007

mot de passe pour le fichier Mysql
Messages postés
147
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
14 novembre 2009

Pour améliorer le rendement, il faudrait peut-être commencer par supprimer les doublons de la table; en entrant les lettres du mot "memoire", on obtient 3 fois "meme", 2 fois "memoire", 3 fois "mer", etc...
Ensuite, puisque seuls les mots comportants 7 caractères au plus sont intéressants, pourquoi ne pas les sélectionner directement dans ta requête :
SELECT * FROM `dico` WHERE length(mot)<8
Cas extrême, si ta table ne sert que pour cette requête, tu peux même envisager la suppression de tous les mots de longeur supérieure à 7 caractères.
Messages postés
72
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
5 février 2010

Salut
Merci de tous ces commentaires.
Pour pouvoir completer un mot tel que entendu, il faudrai entrer tous les mots présents sur le plateau de jeux...ca risque d'etre assez bazard à la fin tout ça, ou alors il faut faire tout le jeux en php, avec le plateau, les lettres les cases triple..Etc...
Vu le newbie que je suis je pense que d'ici 15 ou 20 ans j'y serai arrivé ;-)
En fais j'ai fais ce code pour ma copine qui me saoule quand elle joue genre 'tu voit pas un mot avec ca !?' donc le but premier est en fait de 'tricher' au scrabble, mais si on devai faire un jeux complet en php, il ne faudrait surtout pas reprendre mon code, mais comme je l'ai dis ce n'était pas mon attention non plus !!
Merci encore de vos commentaire (PS: en tant que Newbie, l'utilisation des classes est encore floue pour moi !!)
Afficher les 20 commentaires