Accueil > > > LOGIGRAMME
LOGIGRAMME
Information sur la source
Description
un fichier OO qui sert d'apui pour résoudre les logigrammes... et un logigramme en prime...
Source
- <html>
- <head>
- <title>logigramme</title>
- </head>
- <body>
- <p>Pour utiliser ceci, il suffit de mettre en paramètre le nom, le nombre de cases par catègories, et le tableau qui contiendra les noms désignants les catègories (Ces noms ne servent qu'a l'affichage). Ensuite, on ne peut sauvegarder, mais on peut plus facilement résoudre nos logigrammes.</p>
- <p>Einstein avait dit que seulement 2 pourcent de la population pouvaient résoudre son logigramme... en serez vous capable...</p>
- <p>Verstion 1.1 Tout est pris en compte... Seule chose que ce programme ne fera pas a votre place : les supositions. Nouveautées : On peut rayer d'une couleur une ligne ou une colone, on a aussi un bouton clear pour effacer les lignes surlignées. On peut également, en cliquant sur les indices, les griser pour retenir plus facilement ceux que l'on a déja exploité.</p>
-
- <p>5 maisons, 5 nationalités, 5 boissons, 5 produits du tabac, 5 animaux favoris.<br />
- 15 indices pour tout démêler...<br />
-
- <script>
- function clear_screen(taille){
- var j, k;
- for (j=0;j<taille;j++)
- for (k=0;k<taille;k++)
- document.getElementById(k+"_"+j).style.background="#FFFFFF";
- }
- function boldisex(i, taille){
- var j;
- for (j=0;j<taille;j++)
- document.getElementById(j+"_"+i).style.background="#FFDDAA";
- }
- function boldisey(i, taille){
- var j;
- for (j=0;j<taille;j++)
- document.getElementById(i+"_"+j).style.background="#FFDDAA";
- }
- function Logigramme(nom, taille, tableau){
- /*
- Ceci sert de constructeur....
- */
- taille2=tableau.length;
- //on y déclare les variables
- this.tableau=new Array(taille2);
- this.nom = nom;
- this.taille_once=taille;
- this.taille_total=taille2;
- this.indices_used;
- //puis les fonctions que le logigramme peut utiliser
- this.check=Logigramme_check;
- this.rectifie=Logigramme_rectifie;
- this.affiche=Logigramme_affiche;
- this.indices=Logigramme_indices;
- this.indice_coche=Logigramme_indice_coche;
- //on affiche les cases
- document.write('<input type="button" value="clear" onclick="clear_screen('+taille2+');"><br /><table style="border-spacing: 0px;"><tr><td>'+nom+'</td>');
- for (i=0;i<taille2;i++)
- document.write('<td><input type="button" value="'+tableau[i]+'" onclick="boldisex('+i+', '+taille2+');"></taille2;i++)></td>');
- ci=0;
- for (i=0;i<taille2;i++){
- if (i%taille==0){
- ci++;
- change_colone=1;
- }else
- change_colone=0;
- document.write('</tr><tr><td><input type="button" value="'+tableau[i]+'" onclick="boldisey('+i+', '+taille2+');"></td>');
- this.tableau[i]=new Array(taille2); //on déclare un tableau dans un tableau
- cj=0;
- for (j=0;j<taille2;j++){
- if (j%taille==0){ //marque un changement de catègorie et les bordures de gauche de chaque catègorie
- cj++;
- st='border-left : 3px solid;';
- }else
- st='';
- if (change_colone==1) //place les bordures de haut de categories
- st+='border-top : 3px solid;';
- if (i==j)
- v='O';
- else if (ci==cj)
- v='X';
- else
- v='';
- if (j==taille2-1) //place la bordure de droite
- st+='border-right : 3px solid;';
- if (i==taille2-1) //et celle du dessous
- st+='border-bottom : 3px solid;';
- document.write('<td style="'+st+'"><input type="text" id="'+i+'_'+j+'" size="1" value="'+v+'" onchange="changed('+"'"+nom+"'"+','+i+','+j+');" /></td>');
- this.tableau[i][j]=v; //et on en modifie la valeur
- }
- }
- document.write('</tr></table><br /><input type="button" value="clear" onclick="clear_screen('+taille2+');">');
- }
- function Logigramme_indices(){
- var i;
- this.indices_used=new Array(Logigramme_indices.arguments.length);
- document.write("<ul>");
- for (i=0;i<Logigramme_indices.arguments.length;i++){
- document.write('<li id="indice_'+i+'" onclick="'+this.nom+'.indice_coche('+i+');">'+Logigramme_indices.arguments[i]+"</li>");
- this.indices_used[i]=false;
- }
- document.write("</ul>");
- }
- function Logigramme_indice_coche(i){
- this.indices_used[i]=(this.indices_used[i])?false:true;
- document.getElementById("indice_"+i).style.background=(this.indices_used[i])?"#DDDDDD":"#FFFFFF";
- }
- function Logigramme_affiche(pos_x,pos_y){
- /*
- cette fonction sert à changer la valeur d'une case
- */
- /*//alert(pos_x+'/'+pos_y+'/'+this.tableau[pos_x][pos_y]);
- eval("a=document."+this.nom+"._"+pos_x+"_"+pos_y+".value");
- eval("document."+this.nom+"._"+pos_x+"_"+pos_y+".value='"+this.tableau[pos_x][pos_y]+"'");*/
- document.getElementById(pos_x+"_"+pos_y).value=this.tableau[pos_x][pos_y];
-
- }
-
- function Logigramme_check(pos_x,pos_y,changed){
- /*
- Cette fonction sertà cocher une case
- */
- if (changed=="O" || changed=="X" || changed==""){
- this.tableau[pos_x][pos_y]=changed; //aplique la modification en ram
- this.rectifie(); //complète le tableau
- }else{
- alert('erreur !! vous avez saisi :"'+changed+'"');
- this.affiche(pos_x,pos_y); //efface l'erreur
- }
- }
-
- function Logigramme_rectifie(){
- /*
- Pour commencer dans tout logigramme :
- à toute case de coordonnées (x, y) on peut associer une case de même valeur et de coordonnées (y,x);
- */
- var scan_x, cores_x, scan_y, cores_y, point_x, point_y,i,j=0;
- var alignO=new Array(this.taille_once*2);
- var alignX=new Array(this.taille_once*2);
- var manqueO_x=new Array(this.taille_once*2);
- var manqueO_y=new Array(this.taille_once*2);
- for (i=0;i<this.taille_once*2;i++){
- alignX[i]=0;
- alignO[i]=0;
- }
- for (scan_x=0;scan_x<this.taille_total;scan_x++){
- for (scan_y=0;scan_y<this.taille_total;scan_y++){
- if (this.tableau[scan_x][scan_y]!=this.tableau[scan_y][scan_x]){
- if (this.tableau[scan_x][scan_y]==''){
- this.tableau[scan_x][scan_y]=this.tableau[scan_y][scan_x];
- this.affiche(scan_x,scan_y);
- }else if (this.tableau[scan_y][scan_x]==''){
- this.tableau[scan_y][scan_x]=this.tableau[scan_x][scan_y];
- this.affiche(scan_y,scan_x);
- }else{
- alert('ERREUR CONFLIT ENTRE LES CASES : ('+scan_x+', '+scan_y+') et ('+scan_y+', '+scan_x+');');
- }
- }
- }
- }
- /*
- ensuite, on a strictement une seule réponse positive par ligne et par colone...
- */
- retour=1;
- while(retour==1){ //comme le tableau change régulièrement, on doit faire plusieurs tours...
- retour=0;
- for (scan_x=0;scan_x<this.taille_total;scan_x+=this.taille_once){
- for (scan_y=0;scan_y<this.taille_total;scan_y+=this.taille_once){
- for (point_x=0;point_x<this.taille_once;point_x++){
- for (point_y=0;point_y<this.taille_once;point_y++){
- if (this.tableau[scan_y+point_y][scan_x+point_x]=='X'){
- alignX[point_x]++;
- alignX[point_y+this.taille_once]++;
- }else if (this.tableau[scan_y+point_y][scan_x+point_x]=='O'){
- alignO[point_x]++;
- alignO[point_y+this.taille_once]++;
- }else{
- manqueO_x[point_x]=scan_x+point_x;
- manqueO_x[point_y+this.taille_once]=scan_x+point_x;
- manqueO_y[point_x]=scan_y+point_y;
- manqueO_y[point_y+this.taille_once]=scan_y+point_y;
- }
- }
- }
- for (i=0;i<this.taille_once*2;i++){
- //récupère les erreurs
- if (alignX[i]==this.taille_once)
- alert('erreur ligne de croix dans la catègorie ('+(scan_x/this.taille_once)+','+(scan_y/this.taille_once)+');'+this.taille_once);
- if (alignO[i]>1)
- alert('erreur deux validations dans la catègorie ('+(scan_x/this.taille_once)+','+(scan_y/this.taille_once)+');');
- //si il ne reste qu'une case vide, et que toutes les cases sont remplies par des croix, alors on mets un O
- if (alignX[i]==this.taille_once-1 && alignO[i]==0){
- this.tableau[manqueO_y[i]][manqueO_x[i]]='O';
- this.affiche(manqueO_y[i],manqueO_x[i]);
- retour=1;
- }
- //quand on a un O on doit remplir toutes les cases sur les cotés de X
- if (alignO[i]==1 && alignX[i]!=this.taille_once-1){
- if (i<this.taille_once){
- for (point_y=0;point_y<this.taille_once;point_y++){
- if (this.tableau[scan_y+point_y][scan_x+i]==''){
- this.tableau[scan_y+point_y][scan_x+i]='X';
- this.affiche(scan_y+point_y, scan_x+i);
- }
- }
- }else{
- for (point_x=0;point_x<this.taille_once;point_x++){
- //alert(scan_y + i + ' , ' + scan_x + point_x );
- if (this.tableau[ scan_y + i - this.taille_once ][ scan_x + point_x]==''){
- this.tableau[ scan_y + i - this.taille_once ][ scan_x + point_x]='X';
- this.affiche( scan_y + i - this.taille_once , scan_x + point_x);
- }
- }
- }
- retour=1;
- }
- //remets les alignements à 0
- alignX[i]=0;
- alignO[i]=0;
- }
- }
- }
- /*
- Quand on rencontre un O, les cases ensuite sont identiques
- */
- for (scan_y=0;scan_y<this.taille_total;scan_y++){
- for (scan_x=0;scan_x<this.taille_total;scan_x++){
- if (this.tableau[scan_y][scan_x]=='O'){
- for (point_x=0;point_x<this.taille_total;point_x++){
- if (this.tableau[scan_y][point_x]!=this.tableau[scan_x][point_x]){
- if (this.tableau[scan_y][point_x]==''){
- this.tableau[scan_y][point_x]=this.tableau[scan_x][point_x];
- this.affiche(scan_y,point_x);
- retour=1;
- }else if (this.tableau[scan_x][point_x]==''){
- this.tableau[scan_x][point_x]=this.tableau[scan_y][point_x];
- this.affiche(scan_x,point_x);
- retour=1;
- }else{
- alert('ERREUR CONFLIT ENTRE LES CASES : ('+scan_y+', '+pointx+') et ('+scan_x+', '+pointx+');');
- }
- }
- }
- }
- }
- }
- }
- }
-
- function changed(nom, pos_x,pos_y){
- /*
- Cette fonction sert quand on change manuellement les valeurs
- elle récupère la valeur changée
- et l'envoi à la fonction check
- */
- eval("a=document.getElementById('"+pos_x+"_"+pos_y+"').value");
- eval(nom+".check("+pos_x+","+pos_y+",'"+a+"')");
- }
- /*
- (médiocre) Exemple d'utilisation
- */
- a=new Array(4);
- a[0]='ang';
- a[1]='sue';
- a[2]='dan';
- a[3]='nor';
- a[4]='all';
-
- a[5]='1';
- a[6]='2';
- a[7]='3';
- a[8]='4';
- a[9]='5';
-
- a[10]='rou';
- a[11]='ver';
- a[12]='ble';
- a[13]='jau';
- a[14]='bla';
-
- a[15]='chi';
- a[16]='ois';
- a[17]='cha';
- a[18]='che';
- a[19]='poi';
-
- a[20]='thé';
- a[21]='caf';
- a[22]='lai';
- a[23]='bie';
- a[24]='eau';
-
- a[25]='pal';
- a[26]='dun';
- a[27]='mal';
- a[28]='win';
- a[29]='rot';
-
- //pour avoir la fonction changed il faut leur mettre le même nom....
- /*
- Pour plus de vitesse et de facilitée, un duplicat des cases affichés est fait en ram... ( dans this.tableau)
- */
- einstein=new Logigramme('einstein',5,a);
- einstein.indices('Le Britannique habite dans une maison rouge.','Le Suédois possède un chien.','Le Danois boit du thé.','La maison verte est immédiatement à gauche de la maison blanche.','Le propriétaire de la maison verte boit du café.','La personne qui fume des cigares de marque Pall Mall élève des oiseaux.','Le propriétaire de la maison jaune fume des Dunhill.',"L'homme qui vit dans la maison du milieu boit du lait.','Le Norvégien habite dans la première maison.","L'homme qui fume des Rothmans demeure dans la maison située à côté de celui qui garde des chats.","L'homme qui possède des chevaux habite à côté de celui qui fume des Dunhill.","Le propriétaire qui fume des malboros boit de la bière.","L'Allemand fume des Winfield.","Le Norvégien habite à côté de la maison bleue.","Le voisin de l'homme qui fume des Rothmans, boit de l'eau.");
- </script>
- <br />
- À qui appartient le poisson?
- </p>
- </body>
- </html>
<html>
<head>
<title>logigramme</title>
</head>
<body>
<p>Pour utiliser ceci, il suffit de mettre en paramètre le nom, le nombre de cases par catègories, et le tableau qui contiendra les noms désignants les catègories (Ces noms ne servent qu'a l'affichage). Ensuite, on ne peut sauvegarder, mais on peut plus facilement résoudre nos logigrammes.</p>
<p>Einstein avait dit que seulement 2 pourcent de la population pouvaient résoudre son logigramme... en serez vous capable...</p>
<p>Verstion 1.1 Tout est pris en compte... Seule chose que ce programme ne fera pas a votre place : les supositions. Nouveautées : On peut rayer d'une couleur une ligne ou une colone, on a aussi un bouton clear pour effacer les lignes surlignées. On peut également, en cliquant sur les indices, les griser pour retenir plus facilement ceux que l'on a déja exploité.</p>
<p>5 maisons, 5 nationalités, 5 boissons, 5 produits du tabac, 5 animaux favoris.<br />
15 indices pour tout démêler...<br />
<script>
function clear_screen(taille){
var j, k;
for (j=0;j<taille;j++)
for (k=0;k<taille;k++)
document.getElementById(k+"_"+j).style.background="#FFFFFF";
}
function boldisex(i, taille){
var j;
for (j=0;j<taille;j++)
document.getElementById(j+"_"+i).style.background="#FFDDAA";
}
function boldisey(i, taille){
var j;
for (j=0;j<taille;j++)
document.getElementById(i+"_"+j).style.background="#FFDDAA";
}
function Logigramme(nom, taille, tableau){
/*
Ceci sert de constructeur....
*/
taille2=tableau.length;
//on y déclare les variables
this.tableau=new Array(taille2);
this.nom = nom;
this.taille_once=taille;
this.taille_total=taille2;
this.indices_used;
//puis les fonctions que le logigramme peut utiliser
this.check=Logigramme_check;
this.rectifie=Logigramme_rectifie;
this.affiche=Logigramme_affiche;
this.indices=Logigramme_indices;
this.indice_coche=Logigramme_indice_coche;
//on affiche les cases
document.write('<input type="button" value="clear" onclick="clear_screen('+taille2+');"><br /><table style="border-spacing: 0px;"><tr><td>'+nom+'</td>');
for (i=0;i<taille2;i++)
document.write('<td><input type="button" value="'+tableau[i]+'" onclick="boldisex('+i+', '+taille2+');"></taille2;i++)></td>');
ci=0;
for (i=0;i<taille2;i++){
if (i%taille==0){
ci++;
change_colone=1;
}else
change_colone=0;
document.write('</tr><tr><td><input type="button" value="'+tableau[i]+'" onclick="boldisey('+i+', '+taille2+');"></td>');
this.tableau[i]=new Array(taille2); //on déclare un tableau dans un tableau
cj=0;
for (j=0;j<taille2;j++){
if (j%taille==0){ //marque un changement de catègorie et les bordures de gauche de chaque catègorie
cj++;
st='border-left : 3px solid;';
}else
st='';
if (change_colone==1) //place les bordures de haut de categories
st+='border-top : 3px solid;';
if (i==j)
v='O';
else if (ci==cj)
v='X';
else
v='';
if (j==taille2-1) //place la bordure de droite
st+='border-right : 3px solid;';
if (i==taille2-1) //et celle du dessous
st+='border-bottom : 3px solid;';
document.write('<td style="'+st+'"><input type="text" id="'+i+'_'+j+'" size="1" value="'+v+'" onchange="changed('+"'"+nom+"'"+','+i+','+j+');" /></td>');
this.tableau[i][j]=v; //et on en modifie la valeur
}
}
document.write('</tr></table><br /><input type="button" value="clear" onclick="clear_screen('+taille2+');">');
}
function Logigramme_indices(){
var i;
this.indices_used=new Array(Logigramme_indices.arguments.length);
document.write("<ul>");
for (i=0;i<Logigramme_indices.arguments.length;i++){
document.write('<li id="indice_'+i+'" onclick="'+this.nom+'.indice_coche('+i+');">'+Logigramme_indices.arguments[i]+"</li>");
this.indices_used[i]=false;
}
document.write("</ul>");
}
function Logigramme_indice_coche(i){
this.indices_used[i]=(this.indices_used[i])?false:true;
document.getElementById("indice_"+i).style.background=(this.indices_used[i])?"#DDDDDD":"#FFFFFF";
}
function Logigramme_affiche(pos_x,pos_y){
/*
cette fonction sert à changer la valeur d'une case
*/
/*//alert(pos_x+'/'+pos_y+'/'+this.tableau[pos_x][pos_y]);
eval("a=document."+this.nom+"._"+pos_x+"_"+pos_y+".value");
eval("document."+this.nom+"._"+pos_x+"_"+pos_y+".value='"+this.tableau[pos_x][pos_y]+"'");*/
document.getElementById(pos_x+"_"+pos_y).value=this.tableau[pos_x][pos_y];
}
function Logigramme_check(pos_x,pos_y,changed){
/*
Cette fonction sertà cocher une case
*/
if (changed=="O" || changed=="X" || changed==""){
this.tableau[pos_x][pos_y]=changed; //aplique la modification en ram
this.rectifie(); //complète le tableau
}else{
alert('erreur !! vous avez saisi :"'+changed+'"');
this.affiche(pos_x,pos_y); //efface l'erreur
}
}
function Logigramme_rectifie(){
/*
Pour commencer dans tout logigramme :
à toute case de coordonnées (x, y) on peut associer une case de même valeur et de coordonnées (y,x);
*/
var scan_x, cores_x, scan_y, cores_y, point_x, point_y,i,j=0;
var alignO=new Array(this.taille_once*2);
var alignX=new Array(this.taille_once*2);
var manqueO_x=new Array(this.taille_once*2);
var manqueO_y=new Array(this.taille_once*2);
for (i=0;i<this.taille_once*2;i++){
alignX[i]=0;
alignO[i]=0;
}
for (scan_x=0;scan_x<this.taille_total;scan_x++){
for (scan_y=0;scan_y<this.taille_total;scan_y++){
if (this.tableau[scan_x][scan_y]!=this.tableau[scan_y][scan_x]){
if (this.tableau[scan_x][scan_y]==''){
this.tableau[scan_x][scan_y]=this.tableau[scan_y][scan_x];
this.affiche(scan_x,scan_y);
}else if (this.tableau[scan_y][scan_x]==''){
this.tableau[scan_y][scan_x]=this.tableau[scan_x][scan_y];
this.affiche(scan_y,scan_x);
}else{
alert('ERREUR CONFLIT ENTRE LES CASES : ('+scan_x+', '+scan_y+') et ('+scan_y+', '+scan_x+');');
}
}
}
}
/*
ensuite, on a strictement une seule réponse positive par ligne et par colone...
*/
retour=1;
while(retour==1){ //comme le tableau change régulièrement, on doit faire plusieurs tours...
retour=0;
for (scan_x=0;scan_x<this.taille_total;scan_x+=this.taille_once){
for (scan_y=0;scan_y<this.taille_total;scan_y+=this.taille_once){
for (point_x=0;point_x<this.taille_once;point_x++){
for (point_y=0;point_y<this.taille_once;point_y++){
if (this.tableau[scan_y+point_y][scan_x+point_x]=='X'){
alignX[point_x]++;
alignX[point_y+this.taille_once]++;
}else if (this.tableau[scan_y+point_y][scan_x+point_x]=='O'){
alignO[point_x]++;
alignO[point_y+this.taille_once]++;
}else{
manqueO_x[point_x]=scan_x+point_x;
manqueO_x[point_y+this.taille_once]=scan_x+point_x;
manqueO_y[point_x]=scan_y+point_y;
manqueO_y[point_y+this.taille_once]=scan_y+point_y;
}
}
}
for (i=0;i<this.taille_once*2;i++){
//récupère les erreurs
if (alignX[i]==this.taille_once)
alert('erreur ligne de croix dans la catègorie ('+(scan_x/this.taille_once)+','+(scan_y/this.taille_once)+');'+this.taille_once);
if (alignO[i]>1)
alert('erreur deux validations dans la catègorie ('+(scan_x/this.taille_once)+','+(scan_y/this.taille_once)+');');
//si il ne reste qu'une case vide, et que toutes les cases sont remplies par des croix, alors on mets un O
if (alignX[i]==this.taille_once-1 && alignO[i]==0){
this.tableau[manqueO_y[i]][manqueO_x[i]]='O';
this.affiche(manqueO_y[i],manqueO_x[i]);
retour=1;
}
//quand on a un O on doit remplir toutes les cases sur les cotés de X
if (alignO[i]==1 && alignX[i]!=this.taille_once-1){
if (i<this.taille_once){
for (point_y=0;point_y<this.taille_once;point_y++){
if (this.tableau[scan_y+point_y][scan_x+i]==''){
this.tableau[scan_y+point_y][scan_x+i]='X';
this.affiche(scan_y+point_y, scan_x+i);
}
}
}else{
for (point_x=0;point_x<this.taille_once;point_x++){
//alert(scan_y + i + ' , ' + scan_x + point_x );
if (this.tableau[ scan_y + i - this.taille_once ][ scan_x + point_x]==''){
this.tableau[ scan_y + i - this.taille_once ][ scan_x + point_x]='X';
this.affiche( scan_y + i - this.taille_once , scan_x + point_x);
}
}
}
retour=1;
}
//remets les alignements à 0
alignX[i]=0;
alignO[i]=0;
}
}
}
/*
Quand on rencontre un O, les cases ensuite sont identiques
*/
for (scan_y=0;scan_y<this.taille_total;scan_y++){
for (scan_x=0;scan_x<this.taille_total;scan_x++){
if (this.tableau[scan_y][scan_x]=='O'){
for (point_x=0;point_x<this.taille_total;point_x++){
if (this.tableau[scan_y][point_x]!=this.tableau[scan_x][point_x]){
if (this.tableau[scan_y][point_x]==''){
this.tableau[scan_y][point_x]=this.tableau[scan_x][point_x];
this.affiche(scan_y,point_x);
retour=1;
}else if (this.tableau[scan_x][point_x]==''){
this.tableau[scan_x][point_x]=this.tableau[scan_y][point_x];
this.affiche(scan_x,point_x);
retour=1;
}else{
alert('ERREUR CONFLIT ENTRE LES CASES : ('+scan_y+', '+pointx+') et ('+scan_x+', '+pointx+');');
}
}
}
}
}
}
}
}
function changed(nom, pos_x,pos_y){
/*
Cette fonction sert quand on change manuellement les valeurs
elle récupère la valeur changée
et l'envoi à la fonction check
*/
eval("a=document.getElementById('"+pos_x+"_"+pos_y+"').value");
eval(nom+".check("+pos_x+","+pos_y+",'"+a+"')");
}
/*
(médiocre) Exemple d'utilisation
*/
a=new Array(4);
a[0]='ang';
a[1]='sue';
a[2]='dan';
a[3]='nor';
a[4]='all';
a[5]='1';
a[6]='2';
a[7]='3';
a[8]='4';
a[9]='5';
a[10]='rou';
a[11]='ver';
a[12]='ble';
a[13]='jau';
a[14]='bla';
a[15]='chi';
a[16]='ois';
a[17]='cha';
a[18]='che';
a[19]='poi';
a[20]='thé';
a[21]='caf';
a[22]='lai';
a[23]='bie';
a[24]='eau';
a[25]='pal';
a[26]='dun';
a[27]='mal';
a[28]='win';
a[29]='rot';
//pour avoir la fonction changed il faut leur mettre le même nom....
/*
Pour plus de vitesse et de facilitée, un duplicat des cases affichés est fait en ram... ( dans this.tableau)
*/
einstein=new Logigramme('einstein',5,a);
einstein.indices('Le Britannique habite dans une maison rouge.','Le Suédois possède un chien.','Le Danois boit du thé.','La maison verte est immédiatement à gauche de la maison blanche.','Le propriétaire de la maison verte boit du café.','La personne qui fume des cigares de marque Pall Mall élève des oiseaux.','Le propriétaire de la maison jaune fume des Dunhill.',"L'homme qui vit dans la maison du milieu boit du lait.','Le Norvégien habite dans la première maison.","L'homme qui fume des Rothmans demeure dans la maison située à côté de celui qui garde des chats.","L'homme qui possède des chevaux habite à côté de celui qui fume des Dunhill.","Le propriétaire qui fume des malboros boit de la bière.","L'Allemand fume des Winfield.","Le Norvégien habite à côté de la maison bleue.","Le voisin de l'homme qui fume des Rothmans, boit de l'eau.");
</script>
<br />
À qui appartient le poisson?
</p>
</body>
</html>
Historique
- 04 mars 2005 23:46:24 :
- ajout d'un exemple, ajout de commentaires, puis la fonctionalitée "déduction"...
- 14 mai 2005 01:30:11 :
- ajout d'un mode de surlignage + remplacement des document.forumulaire.name par des document.getElementById... défaut de cette maj : on ne peut plus mettre plusieurs logigrammes sur la même page...
- 30 novembre 2005 13:44:53 :
- ajouts de mots clefs
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Se connecT à 1 site [ par Ken2K ]
'luuje cherche a automatiser, un logiciel de mise à jour d'une base de donnée. Donc comment on peut faire pour se connecter à un site. Sans que l'util
fenetre scrollable en fonction de la résolution ????? [ par fcdconnect ]
lut tlm... une fois de plus une question je l'espère pertinente :je souhaiterai rendre une page scrollable en fonction de la résolution d'affichage du
Quel logiciel??? [ par Nargzul ]
Salut tlm!!! Je veux commencer aujourd'hui le java, et je ne sais pas quel programme utiliser. Qu'est-ce que vous avez à me conseiller? (préciser si p
Taille des images variable selon la taille de la fenetre ou la résolution [ par motenai ]
Salut,En fait, j'aimerais trouver le moyen pour que mes images changent toutes seules de taille soit selon la résolution de l'écran soit selon la tail
redirection navigateur ET résolution [ par cristina49 ]
bonjour,je voudrait juste avoir un petit renseignement. j'ai trouvé sur internet des scripts pour rediriger en fonction de la résolution et d'autres e
Adapter son site [ par Manu29 ]
Comment faire si j'ai créé mon site sous la résolution 800*600 et que le visiteur lui est en 1024*768 ? Je souhaiterai donc trouver un code java pour
Recherche script pour affichage selon la résolution [ par Emaux ]
Bonjour à tous !En tant qu'amateur, je tente de faire un site pour rendre service.Je vous expose mon souci :j'ai crée ma page sur un tableau 800 centr
Problème de placement d'une boite div selon la résolution [ par optimed ]
Bonjour!Je vous explique mon problème:je suis en train de travailler sur un site optimisé pour du 800x600 avec une boîte div (en position absolue) qui
Changer la Résolution automatiquement [ par massacr ]
BonjourJe voudrais faire un script qui, lors du chargement de la page, détecte la résolution de l'écran. Si elle est mauvaise (800*600 par ex), il cha
connaitre la résolution d'un pc [ par Nargzul ]
voila bonjour,je sais que ca doit etre tout con, mais comment arrive-t-on à connaitre la résolution d'un pc???merci beaucoup
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
UTILISER UN .JSUTILISER UN .JS par zaikoe
Cliquez pour lire la suite par zaikoe
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|