Browse Source

Le reste des fichiers tridactyl

pull/1/head
tazzon 10 years ago
parent
commit
da3f56b629
4 changed files with 577 additions and 0 deletions
  1. +63
    -0
      tridactyl/index.html
  2. +225
    -0
      tridactyl/js/fonctions_texte.js
  3. +260
    -0
      tridactyl/js/functions_page.js
  4. +29
    -0
      tridactyl/js/lecon11.js

+ 63
- 0
tridactyl/index.html View File

@@ -0,0 +1,63 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tridactyl : perfectionnement de la frappe par les trigrammes</title>
<script type="text/javascript" src="js/fonctions_texte.js"></script>
<script type="text/javascript" src="js/functions_page.js"></script>
<script type="text/javascript" src="js/req.js"></script>
<script type="text/javascript" src="js/lecon3.js"></script>
<script type="text/javascript" src="js/lecon7.js"></script>
<script type="text/javascript" src="js/lecon11.js"></script>
<script type="text/javascript" src="js/lecon15.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="bar" id="bar">
<a href="http://tazzon.free.fr/dactylotest/"><img src="../home.png" alt="home" style="padding-bottom:2px"/></a>
<a href="../dactylotest/" title="Testez votre vitesse de frappe">Dactylotest</a>
<a href="../tridactyl/" title="Perfectionnez votre frappe grâce aux trigrammes">Tridactyl</a>
<a href="../bepodactyl/" title="Bien débutez avec la disposition de clavier BÉPO">Bépodactyl</a>
</div>
<div class="head">
<h1>— Tridactyl —</h1><br/>
Perfectionnement de la frappe par les trigrammes.
</div>
<!--input type="text" id="set_time" /-->
<div class="main">
<p class="text_nmbr" id="text_nmbr" type="text" value=""/></p>
<hr/>
<div class="ici" id="ici">
<p class="rd_txt" id="rd_txt"><span style="color:red"><strong>Javascript doit être activé ! Vous pouvez le faire en modifiant les préférences de votre navigateur. Si vous ne savez pas comment faire, consultez l'aide de celui-ci.</strong></span></p>
<p>>> <input type="text" onkeyup="test(event);" onkeydown="next(event)" id="txt" class="txt"/></p>
</div>
<hr/>
<div id="resultats" class="result"></div>
</div>
<div id="voile" class="voile"></div>
<div id="options" class="options">
<p style="margin-bottom:10px"><strong>Options</strong><p>
<p>
<input type="checkbox" id="val_curseur" onChange="val_curseur(this.checked)" /> Activer le curseur<br/>
<input type="checkbox" id="anti_correct" onChange="val_anti_correct(this.checked)" /> Activer l’anti-correction<br/>
</p>
<p style="text-align:right;margin-top:10px">
<!--input type="button" onclick="valide_options()" value="Valider"/-->
<input type="button" onclick="view_options('none')" value="Fermer"/>
</p>
</div>
<script type="text/javascript" src="js/start.js"></script>
</body>
</html>

+ 225
- 0
tridactyl/js/fonctions_texte.js View File

@@ -0,0 +1,225 @@
/*******************************************************************************
Toutes les fonctions liées à la frappe, erreurs, curseurs…
*******************************************************************************/
la_couleur_du_curseur = "#40e0d0";
//cette fonction compare le texte tapé à « le_texte »
var val=""; //c'est le contenu du champ texte
var val_temp=""; //le texte juste avant pour l'anti-correction
var txt_frap = new Array; // on stock dans ce tableau les différentes lignes de texte que l'on vient de taper
function test(e)
{
// entrer retourne le code 13
var touche = window.event ? e.keyCode : e.which;
//if (touche == 32)
//nb_sp++;
//alert(touche)
if (touche == 16 || touche == 225 || touche == 17 || touche == 18 || touche == 27 || touche == 9 || touche == 20 || touche == 91 || touche == 93) // shift || ctrl || alt || échap || tab || caps-lock || super || menu
return;
if (touche == 8 && anti_correct) // anti correction
{
document.getElementById("txt").value = val_temp;
return;
}
val = document.getElementById("txt").value; //le texte qu'on tape
if (val.substr(val.length-1,1) != le_texte[l-1].substr(val.length-1,1) && val.length-1 != le_texte[l-1].length)
{
document.getElementById("txt").style.backgroundColor = "red";
//var time=document.getElementById("set_time").value;
var time = 150;
setTimeout('document.getElementById("txt").style.backgroundColor = "inherit"',time);
}
if (touche == 13 || val.length >= le_texte[l-1].length+1)
{
//alert(val.length +"-" +val.substr(val.length-1,1) + "-" );
//alert(le_texte[l])
if (val.substr(val.length-1,1) == " ")
val = val.substr(0,val.length-1);
//alert(val.length);
//var reg = new RegExp(" ","g")
//alert(val.replace(reg,"#"));
txt_frap[l-1] = val;
//nb_sp=0;
ligne_suivante();
val_temp="";
return;
}
val_temp=val;
}
function next(e)
{
var touche = window.event ? e.keyCode : e.which;
val = document.getElementById("txt").value; //le texte qu'on tape
if (le_texte[l-1].substr(val.length,1) == " " && touche != 8) // si c'est une espace qui est prévue et si c'est pas un retour un arrière car un cas de retour vu qu'on remet le car si c'est une esapace, ça fait qu'on passe au mot suivant
color_mot("next");
if (le_texte[l-1].substr(val.length-1,1) == " " && touche == 8)
color_mot("prev");
}
// pour passer à la ligne suivante de la leçon
var l = 0;
//var pos_sp=new Array(); // la position de espaces dans la ligne courante pour que le curseur soit au bon endroit
function ligne_suivante()
{
document.getElementById("txt").value = "";
if (l == le_texte.length)
{
l=0;
aff_result();
}
else
{
var col_ligne = new Array("inherit","#bbbbbb","#d4d4d4","#eeeeee");
var mark_ligne = new Array(">> ","   ","   ","   ");
var txt="";
document.getElementById("rd_txt").innerHTML = "";
var ligne_tab = new Array();
for (var i=0 ; i<4 ; i++)
{
if (l+i < le_texte.length)// il faut qu'il reste des lignes
{
if (i==0) // première ligne pour avoir le curseur
{
//on compte le nombre d'espaces dans la ligne pour pouvoir positionner le curseur au bon endroit
//on découpe le tout pour le reconstituer ensuite avec des span identifiant chaque mot (pour le curseur)
var reg = new RegExp(" ","g");
var ligne_tmp = le_texte[l+i].split(reg);
for (var j=0 ; j<ligne_tmp.length ; j++)
{
ligne_tmp[j] = '<span id="mot_'+j+'">'+ligne_tmp[j]+'</span>';
}
txt=ligne_tmp.join(" ");
}
else
txt=le_texte[l+i];
//alert(txt)
ligne_tab[i] = '<span style="color:'+col_ligne[i]+'">'+mark_ligne[i]+txt+'</span><br/>';
}
}
l++;
}
document.getElementById("rd_txt").innerHTML = ligne_tab.join("");
/*for (var i=4 ; i>0 ; i--)
{
document.getElementById("rd_txt").innerHTML += ligne_tab[i-1];
}*/
color_mot("init");
}
function val_curseur(a)
{
if(a)
{
col_cur = la_couleur_du_curseur;
cur_checked = "checked";
}
else
{
col_cur = "inherit";
cur_checked = "";
}
color_mot();
}
var anti_correct = true;
function val_anti_correct(a)
{
anti_correct = false;
if (a == true || a == "init")
anti_correct = true;
if (anti_correct)
document.getElementById("anti_correct").checked = "checked";
else
document.getElementById("anti_correct").checked = "";
}
var colw = 0;
var col_cur = la_couleur_du_curseur; // couleur du curseur
function color_mot(a)
{
/*if (!document.getElementById("val_cur").checked) // pas de curseur
return;*/
if (a == "init")
colw = 0;
else if (a == "next")
{
colw++;
if (document.getElementById("mot_"+(colw-1)))
document.getElementById("mot_"+(colw-1)).style.backgroundColor = "inherit";
}
else if (a == "prev")
{
colw--;
if (document.getElementById("mot_"+(colw+1)))
document.getElementById("mot_"+(colw+1)).style.backgroundColor = "inherit";
}
if (document.getElementById("mot_"+colw))
document.getElementById("mot_"+colw).style.backgroundColor = col_cur;
}
function aff_result() // replacer les undefined par des espaces insécables (pour l'affichage)
{
document.getElementById("rd_txt").innerHTML = "";
var i=0;
var reg = new RegExp(" ","g");
//alert("on est ici . "+txt_frap.length);
while (txt_frap.length > i)
{
if (txt_frap[i] == le_texte[i])
{
document.getElementById("resultats").innerHTML += '<span style="color:green"><strong>—OK— </strong></span>'+txt_frap[i].replace(reg," ")+"<br/><br/>";
}
else
{
var le_texte_tmp = le_texte[i].replace(reg," ");
le_texte_tmp = le_texte_tmp.split("");
var txt_frap_tmp = txt_frap[i].replace(reg," ");
txt_frap_tmp = txt_frap_tmp.split("");
for (var j=0 ; j<le_texte_tmp.length ; j++)
{
if (!txt_frap_tmp[j])
txt_frap_tmp[j] = "_";// pour l'instant c'est la même chose que ce soit souligné parce qu'en suite il devient rouge mais pas d'espace, ils sont pas affichés par le html
if (le_texte_tmp[j] != txt_frap_tmp[j])
txt_frap_tmp[j] = '<span style="text-decoration:underline;color:red"><strong>'+txt_frap_tmp[j]+'</strong></span>';
}
var txt_frap_tmp = txt_frap_tmp.join("");
document.getElementById("resultats").innerHTML += '  >> '+le_texte_tmp.join("")+'<br/><span style="color:red"><strong>-NK- </strong></span>'+txt_frap_tmp+"<br/><br/>";
//document.getElementById("resultats").innerHTML += '  >> '+le_texte[i]+'<br/><span style="color:red"><strong>-NK- </strong></span>'+txt_frap[i]+"<br/><br/>";
}
//alert(i);
i++;
}
txt_frap = new Array(); // ré-init variable
}

+ 260
- 0
tridactyl/js/functions_page.js View File

@@ -0,0 +1,260 @@
/*******************************************************************************
Toutes les fonctions liées à la page pour le gestion des cadres des options,
demande d'un nouveau texte…
*******************************************************************************/
//cette fonction permet d'avoir un nouveau texte
var lecon_mots = ""; // les mots de la leçon
var lecon_tri = ""; // les trigrammes de la leçon
var rep_mots = 8;//8 // le nombre de répétitions des mots
var rep_tri = 13;//13 // le nombre de répétitions des trigrammes
var tri_replace = 4; // tout les combiens remplacer par un trigramme différent pour tuer la monotonie
var le_texte = new Array; //c'est le texte avec les corrections typo validées dans les options
var lecon_nb;
var lecon_en_cours = 1; // le numéro de la leçon
var lecon = new Array;
var lecon_tab = new Array("lecon3","lecon7","lecon11","lecon15");
var lecon_type = 0;
var cur_checked = "checked";
var description = "<p style=\"text-align:justify\">Leçons à partir de trigrammes les plus récurrents.<br/><br/>"
+ "L’apprentissage existe en 4 jeux de leçons de longueur différentes répartis en suffisamment de trigrammes pour obtenir au moins 3, 7, 11 et 15 mots.<br/>"
+ "À chacun de choisir la longueur de l’apprentissage qui lui convient pour apprendre :<br/>"
+ "<br/>"
+ "— 30 leçons de 3 mots, 4 à 5 minutes par jour pendant 1 mois ;<br/>"
+ "— 30 leçons de 7 mots, 8 à 10 minutes par jour pendant 1 mois ;<br/>"
+ "— 24 leçons de 11 mots, 12 à 15 minutes par jour à la pause déjeuner pendant 1 mois ;<br/>"
+ "— 19 leçons de 15 mots, 15 à 20 minutes par jour à la pause déjeuner pendant 1 mois.<br/>"
+ "<br/>"
+ "Un accroissement de la vitesse et de la précision de seulement 20% devrait libérer environ 1 heure par jour pour tous les jour de votre vie au bureau.<br/>"
+ "Un doublement de la vitesse devrait permettre de libérer 1/2 journée par jour de clavier.<br/>"
+ "Même si pendant l’apprentissage votre vitesse se trouvait réduite de 50% cela devrait être compensée par moins de temps perdu en correction orthographique et une meilleur syntaxe.<br/>"
+ "Un enfant qui apprendrait la dactylographie à l’aveugle dispose d’un excellent moyen pour réduire la dyslexie et améliorer les résultats scolaires en terme d’efficacité et de présentation et cela en seulement 30 jours d’apprentissage.</p>";
function change_type_lecon(a)
{
if (lecon_type != a)
{
lecon_type = a;
//alert(lecon_tab[lecon_type]+'()');
eval(lecon_tab[lecon_type]+'()');
change_lecon("=");
}
}
function change_lecon(a)
{
change_type_lecon(lecon_type);
if (a=="+" && lecon_en_cours<lecon.length-1)
lecon_en_cours++;
else if (a=="-" && lecon_en_cours>1)
lecon_en_cours--;
if (lecon_en_cours > lecon.length-1)
lecon_en_cours = lecon.length-1;
new_text(lecon_en_cours);
}
function new_text(a)
{
//on réinitialise les variables
le_texte = new Array;
l=0;
nb_sp=1;
// rien pour l'instant
if (!a)
a=1;
// requète javascript pour récupérer numéro###credit###texte
/*var req = "new_text.php?t="+lecon_nb+"&l="+document.getElementById("lang").value;
if (document.getElementById("methode").value == "number")
{
var prompt_result = prompt("Indiquer ici le numéro du texte que vous souhaitez charger.",lecon_nb);
if (prompt_result == null)
return;
req += "&force="+prompt_result;
}
var req_text = request(req,"text_nmbr"); */
//var req_text = "1###que les lle des ent ant###vouvoiements desquelles entant lesquelles";
var req_text = lecon[a];
var reg = new RegExp("###","g");
var t_get = req_text.split(reg);
lecon_mots = t_get[2];
lecon_tri = t_get[1];
lecon_nb = t_get[0];
document.getElementById("resultats").innerHTML = "";
document.getElementById("txt").value = ""; //on efface le texte précédement tapé
document.getElementById("txt").focus();
reg = new RegExp(" ","g");
var tab_tri = lecon_tri.split(reg);
var tab_mots = lecon_mots.split(reg);
// mise en forme des leçons
var ligne=0;
le_texte[ligne] = lecon_tri;
ligne++;
var j=0;
for (var i=0 ; i<tab_tri.length ; i++)
{
le_texte[ligne] = "";
for (var r=0 ; r<rep_tri ; r++)
{
if((r+1)%tri_replace == 0)
{
j++;
if (tab_tri[j] == tab_tri[i])
j++;
if (j >= tab_tri.length)
j=0;
var k = j;
}
else
k=i;
if (r < rep_tri-1)
{
le_texte[ligne] += tab_tri[k]+" ";
}
else
le_texte[ligne] += tab_tri[k];
}
ligne++;
}
le_texte[ligne] = lecon_tri;
ligne++;
le_texte[ligne] = lecon_mots;
ligne++;
for (var i=0 ; i<tab_mots.length ; i++)
{
le_texte[ligne] = "";
for (var r=0 ; r<rep_mots ; r++)
{
if (r < rep_mots-1)
le_texte[ligne] += tab_mots[i]+" ";
else
le_texte[ligne] += tab_mots[i];
}
ligne++;
}
// fin de mise ne forme des leçons
ligne_suivante();
//document.getElementById("txt").style.backgroundColor = "#f0fff0"; //on met le fond de la zone de frappe en vert
//document.getElementById("txt").readOnly = false; //et en écriture
var selected = new Array;
for (var i=0 ; i<4 ; i++)
{
if (lecon_type == i)
selected[i] = "selected";
}
//pour éviter le décalage des boutons quand les leçons sont supérieures à 9
var space_sup = "&nbsp;";
if (lecon_en_cours >= 10)
space_sup = "";
document.getElementById("text_nmbr").innerHTML = '<strong>Leçon nº'+lecon_en_cours+space_sup+'</strong> '
+'<input type="button" id="but_-" onclick="change_lecon(\'-\')" value="−"/> '
+'<input type="button" id="but_+" onclick="change_lecon(\'+\')" value="+"/> '
+'<input type="button" id="but_+" onclick="change_lecon(\'=\')" value="Recommencer"/> '
//+'<input type="checkbox" onChange="val_curseur(this.checked)" '+cur_checked+'/> Activer le curseur'
//+'<input type="checkbox" id="antiback"/> Activer anti-correction'
+'<input type="button" onClick="view_options(\'block\')" value="Options" />'
+'<br/>'
+'en mode <select style="width:90px" id="type select" onChange="change_type_lecon(this.value)"><option '+selected[0]+' value="0">3 mots</option><option '+selected[1]+' value="1">7 mots</option><option '+selected[2]+' value="2">11 mots</option><option '+selected[3]+' value="3">15 mots</option></select>'
+'<br/>'
+'— trigrammes : '+lecon_tri+" ;<br/>— mots : "+lecon_mots+'.';
document.getElementById("but_+").style.color = "inherit";
document.getElementById("but_+").style.borderColor = "inherit";
document.getElementById("but_-").style.color = "inherit";
document.getElementById("but_-").style.borderColor = "inherit";
if (lecon_en_cours == 1)
{
document.getElementById("but_-").style.color = "grey";
document.getElementById("but_-").style.borderColor = "grey";
}
if (lecon_en_cours == lecon.length-1)
{
document.getElementById("but_+").style.color = "grey";
document.getElementById("but_+").style.borderColor = "grey";
}
}
function view_options(action)
{
if (action == "")
return;
document.getElementById("options").style.display = action;
document.getElementById("voile").style.display = action;
if (action == "block")
document.getElementById("txt").blur();
if (action == "none")
document.getElementById("txt").focus();
}
function options(e)
{
//var touche = window.event ? e.keyCode : e.which;
//alert(touche);
}
// cette fonction permet de sauver les préférences des options en enregistrant des cookies
/*function save_opt()
{
var id_ = ""; // le nom temporaire de l'ID de l'input
var check_ = ""; // l'état temporaire du checkbox de l'input
// url pour la requete
var url = "save_pref.php?";
// un tableau de tous les inputs qui se trouvent dans les options
var list = document.getElementById("options").getElementsByTagName("input");
for (var i=0 ; i<list.length ; i++)
{
id_ = document.getElementById("options").getElementsByTagName("input")[i].id;
check_ = document.getElementById(id_).checked;
url += "&"+id_+"="+check_;
}
val_result("save"); // sauvegarde du champ de résultats
var req_rep = request(url,"resultats");
// affichage du retour de la requête
document.getElementById("resultats").innerHTML="<strong>"+req_rep+"</strong>";
document.getElementById("resultats").style.border = "none";
document.getElementById("resultats").style.backgroundColor = "inherit";
setTimeout('val_result("resto")',1500); // restauration du champ de résultats dans 1s
}*/

+ 29
- 0
tridactyl/js/lecon11.js View File

@@ -0,0 +1,29 @@
function lecon11()
{
lecon = new Array; // ré-init des leçons
lecon[1] = "1###que les lle des ent ait our ant men ion###desquelles entourait entourant entourent lesquelles menait menant mentait mentant mentent mention";
lecon[2] = "2###con ons tio tre res ais ans dan eur par est###cons contions contres dansais danseur dansons parais pareur partions restais restions restons";
lecon[3] = "3###com mme pas ire mai son pou tou rai ont tai ous###comme compas maire maison poutou raire raison sont tairai taire tous";
lecon[4] = "4###nce ava che vai kiw iwi plu sse qui nte eux sur urs ain yeu éta###avance chevai kiwi pluche plusse quiche quintessence quinteux surs vain yeux étain";
lecon[5] = "5###tes ble tte ure end ill lus tra pro ter out dez ren ort ran###blettes endure illustra protester protestes prout rendez rendort renter rentes rentrantes";
lecon[6] = "6###ass ssi ins aut ses omm oir air cha and ati ère ten int###assassins assaut assises assommoir chair chand chasses chatière chaut insère intenses";
lecon[7] = "7###ine cou ouv ver enc ave rie ier ess aie fai ien ser###couine couver encaver encrier essaie faine ouvrier rien serine verrier verser";
lecon[8] = "8###ces sai iss ues lai anc tan nou age aux uve nne pre iqu ntr ven###cessai issues laissai laitances nouage nouveaux prenne preuve tanne tantriques ventrues venues";
lecon[9] = "9###eme art nts app eau uis san lui mon ois ens sen sou ute tro voi vou###appartements appeau appuis luisants monts oiseau sens soute trois vois vouvoiements";
lecon[10] = "10###ale nti emp pri ise ite tem moi ond nde mes per ers ist ste rou por###alenti empale emprise item moise moite onde permes persiste primes rouste stem temporale temporise";
lecon[11] = "11###pos dis onn don nai for rte gra vie isa ard man qua uel pré dit rem ris###dispos donnai forte gravie isard manqua manuel prédis prédit quarte remisa risqua";
lecon[12] = "12###ées all cor nes ssa dre jou uit ême mêm oin une ité van nta###allées cornes dressa jouit jouées même oindre unes vanité vannes vanta";
lecon[13] = "13###err rre era rés leu lie ieu rès lon ndr peu pla cet lan rat ign tat sta tit###errera errés leurre liera lierre lieu londrès peupla placet planera ratera résignera stat titrés";
lecon[14] = "14###cti ive act ule ang use ell cel ils deu sio bre mar rme orm pen nse nsi roi ide###active anguleuse cellule deuils deusio marbre marcel orme penseuse pensive roide";
lecon[15] = "15###ron ndi arr ose tie emb bou ara gar mpl imp ore éri rit iti lit oit soi tur ura itu tri###arrondi arrose emboutie gara implore implose impose impéritie litron soit tritura";
lecon[16] = "16###abl att ler ner cer min cul gue non ime nom ord rec oul sem onc éra ail###attabler cerner culminer guenon minime nominer record recouler reculer semoncer érailler";
lecon[17] = "17###ali gne ita car der ret rta fin ini nda fon eut ple sui ici ile uti###aligne alita carder caret carta fini fonda fonder pleut suicider utile";
lecon[18] = "18###nis ani isi sit cho uan sti cri dem emi mis ect dir her déc lla éco mat tin nan ace rap###anis choisit chouan cristi demis direct décher décolla matin nanan rapace";
lecon[19] = "19###uer avo mps cla dev ina ari née enf foi rer nat tal omb mbr pui squ rav seu eul tiq###avouer clamps devina enfarinée foirer natal ombrer puisqu ravina seul tiquer";
lecon[20] = "20###ole acc omp lis str aus ral nco fra nge ges ind tés iso ori lor ors rep été###accole accomplis austral franco franges indole indomptés isole listés lori lors replis étés";
lecon[21] = "21###eva ach alo loi arc rch chi ica ili mie ate cro oup nté han eil sol len###acheva aloi archi chica chili chimie croate croup hanté soleil solen";
lecon[22] = "22###ama ssé cen ton uss eus ert exp pet pli poi vre are rép teu nal ndu ong nna vis###amassé centon eussé expert peton plissé poissé poivre répare teuton tonal tondu tong tonna vissé";
lecon[23] = "23###col rée olo den ena mou esp pér fic ela ett met ras ula réc rti sor tab vit épa###colorée denrée enamourée espérée ficela mettras moula récrée sortiras tabula vitrée épaula";
lecon[24] = "24###rce erc ger erm mer ima toi sée###gerce germer imager toisée";
}

Loading…
Cancel
Save