Utilizare
Cursuri: 0
Publicare RED: 0
Publicare articole în reviste: 0
Servicii AI: 0
MyMouseRectifier - JavaScript
Povestea noastră : Micul Felix vrea sa intre in "Clubul motanilor viteji". Pentru aceasta este supus unei incercari. Trebuie sa schimbe soarecii maro cu cei gri, urmând urmatoarele reguli: un şoarece maro poate face schimb cu pisica, numai daca aceasta este in dreapta lui si sunt separati de cel mult un soarece; un soarece gri poate face schimb cu pisica, numai daca aceasta este in stanga lui si sunt separati de cel mult un soarece. Click pe soarecele ce face schimb cu pisica.
Fereastra principală conţine gifuri în care şoarecii dansează şi două tabele. Primul tabel conţine patru colane:
Butonul HELP / NO HELP care permite afişarea/ ascunderea primei linii din cel de-al doilea tabel ce conţine indicaţii asupra modului de rezolvare
Lista derulantă din care alegem nivelul ( număr de forma 2k+1 reprezentând k şoareci maro, k şoareci gri şi o pisică)
Butonul Start joc ce nu poate fi apăsat decât dacă am ales nivelul
Ultimul buton poate se apasă atunci când dorim generarea soluţiei de către calculator.
Ultima linie din tabelul al doilea conţine o căsuţă text utilzată pentru afişarea numărului de mutări. Obiectele din fereastra principală sunt elemente HTML.
Intrucât trebuie să memorăm imaginile afişate pe ecran vom utiliza un vector de imagini.
MyMouseRectifier (implementare JavaScript)
<HTML><HEAD>
<TITLE>Catch the mouse</TITLE>
<SCRIPT>
foto=new Array();
a=new Array(22);
var i,j=0,soareci,inceput,p,gintervalid,gtime,poz=11,generez_eu=0;
foto[0]=new Image();
foto[0].src="E:/CRISTINA40/gifuri/mouse1.gif";
foto[1]=new Image();
foto[1].src="E:/CRISTINA40/gifuri/mouse2.gif";
foto[2]=new Image();
foto[2].src="E:/CRISTINA40/gifuri/felix1.gif";
foto[3]=new Image();
foto[3].src="E:/CRISTINA40/gifuri/felix2.gif";
foto[4]=new Image();
foto[4].src="E:/CRISTINA40/gifuri/felixanm.gif";
foto[5]=new Image();
foto[5].src="E:/CRISTINA40/gifuri/mouser.gif";
</SCRIPT>
<STYLE>
.bigcell {
BORDER-RIGHT: #aa9966 4px solid; BORDER-TOP: #aa9966 4px solid; BORDER-LEFT: #aa9966 4px solid; BORDER-BOTTOM: #aa9966 4px solid; BACKGROUND-COLOR: #aa9966; TEXT-ALIGN: center}
BODY {FONT-FAMILY: Verdana,Comic Sans MS,Arial}
H1 {FONT-FAMILY: Verdana,Comic Sans MS,Arial}
H2 {FONT-FAMILY: Verdana,Comic Sans MS,Arial}
H3 {FONT-FAMILY: Verdana,Comic Sans MS,Arial}
.msg {FONT-FAMILY: Verdana,Comic Sans MS,Arial}
capt1 {FONT-FAMILY: Verdana,Comic Sans MS,Arial}
capt2 {FONT-FAMILY: Verdana,Comic Sans MS,Arial}
BODY {MARGIN: 0px}
H1 {FONT-WEIGHT: bold; FONT-SIZE: 28pt; MARGIN-BOTTOM: 0px}
H2 {FONT-WEIGHT: bold; FONT-SIZE: 16pt; MARGIN: 0px}
H3 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN: 0px}
.msg {FONT-WEIGHT: bold; FONT-SIZE: 8pt}
.tab {CURSOR: hand}
.capt1 {FONT-WEIGHT: bold; FONT-SIZE: 10pt}
.capt2 {FONT-WEIGHT: bold; FONT-SIZE: 9pt}
.capt3 {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: green; BACKGROUND-COLOR:white}
.capt4 {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: red}
.but{FONT-WEIGHT: bold; FONT-SIZE: 9pt; HEIGHT: 30px; BACKGROUND-COLOR: blue}
</STYLE>
</HEAD>
<BODY bgColor=#b0e080 onload=loadBoard(10)>
<SCRIPT>
var gsize, gmoves;
function stopGame(){fldStatus.innerHTML = "";}
function tickTime(){ showStatus(); gtime++;}
function gata()
{// 1=gata, 2=blocaj, 0=nu-i gata
x=soareci;
nr=0;
for(i=11-x;i<=10;i++)
if(a[i]==1)nr++;
if(nr==soareci && a[11]==2) return 1;
else
{
//vezi daca nu te-ai blocat
// caut pisica
i=11-x;while(a[i]!=2)i++;
return 0;}}
function showStatus()
{ if (inceput==0) fldStatus.innerHTML=" ";
else fldStatus.innerHTML = "Timp: " + gtime + " secunde Mutari: " + gmoves;
}
function animeaza(c,i,x)
{
if(i<=10-x) {c.src=foto[2].src;a[i]=3;}
else
if(i<11) c.src=foto[0].src;
else
if(i<=11+x) c.src=foto[1].src;
else
if(i>11+x) {c.src=foto[3].src;a[i]=3;}
if(i==11) c.src=foto[4].src;
}
function Help()
{if (help.value == "NO HELP")
{ help.style.display = "none";
help.value = "HELP";}
else
{
help.innerHTML="Trebuie sa executati sirul de mutari :"+"<BR>"+" o schimbare-un salt, o schimbare-doua salturi.... o schimbare - N-1 salturi, o schimbare-N salturi si aceleasi miscari in sens invers : o schimbare-N-1 salturi... o schimbare-un salt, culorile soriceilor alternand la fiecare pas."+"<BR>"+"N reprezinta numarul de soricei de fiecare culoare. ";
help.style.display = "";
help.value = "NO HELP";
}
}
function loadBoard(nr_soareci)
{ soareci=Math.floor((level.value)/2);
// alert("soareci "+soareci +" ");
x=soareci; inceput=0;
s1.src=foto[5].src;s2.src=foto[5].src;s3.src=foto[5].src;s4.src=foto[5].src;
s5.src=foto[5].src;s6.src=foto[5].src;s7.src=foto[5].src;s8.src=foto[5].src;
s9.src=foto[5].src;s10.src=foto[5].src;s11.src=foto[4].src;s12.src=foto[5].src; s13.src=foto[5].src;s14.src=foto[5].src; s15.src=foto[5].src;s16.src=foto[5].src;s17.src=foto[5].src;s18.src=foto[5].src;s19.src=foto[5].src;s20.src=foto[5].src; s21.src=foto[5].src;
for(i=1;i<=10;i++) a[i]=0;a[11]=2;
for(i=12;i<=21;i++)a[i]=1;
}
function Anima()
{
alert("soareci "+soareci +" ");
x=soareci;inceput=1;
animeaza(s1,1,x); animeaza(s2,2,x); animeaza(s3,3,x);
animeaza(s16,16,x); animeaza(s17,17,x);animeaza(s18,18,x);
animeaza(s20,20,x);animeaza(s15,15,x);animeaza(s21,21,x);
animeaza(s19,19,x);animeaza(s6,6,x);animeaza(s4,4,x); animeaza(s5,5,x);
animeaza(s7,7,x); animeaza(s8,8,x); animeaza(s9,9,x); animeaza(s10,10,x);
animeaza(s11,11,x); animeaza(s12,12,x); animeaza(s13,13,x); animeaza(s14,14,x);
p=s11;poz=11;
gtime = 0;
gmoves = 0;
tickTime();
gintervalid = setInterval("tickTime()",1000);
ShowStatus();
}
function Joaca(c,k)
{
if(inceput==0) alert("TREBUIE SA APASATI BUTONUL Start Joc");
else{ if( k<20 && a[k]==0 && a[k+1]==2)
{
a[k]=2;a[k+1]=0;
p.src=c.src;c.src=foto[4].src;
p=c;gmoves++;
}
else
if( k<19 && a[k]==0 && a[k+2]==2)
{
a[k]=2;a[k+2]=0;
p.src=c.src;c.src=foto[4].src;
p=c;gmoves++;
}
else
if(k>1 && a[k]==1 && a[k-1]==2)
{
a[k]=2;a[k-1]=1;
p.src=c.src;c.src=foto[4].src;
p=c;gmoves++;
}
else
if(k>2 && a[k]==1 && a[k-2]==2)
{
a[k]=2;a[k-2]=1;
p.src=c.src;c.src=foto[4].src;
p=c;gmoves++; }
}
if(gata()) {
alert("Ai terminat! in "+gtime+" secunde"+" si "+gmoves+"mutari");loadBoard(10); p=s11;
gtime = 0;
gmoves = 0;
ShowStatus();
}}
function muta(k)
{
//soarecele de pe locul k face schimb cu pisica
switch(k)
{ case 1: Joaca(s1,1);break;case 2: Joaca(s2,2);break;
case 3: Joaca(s3,3);break; case 4: Joaca(s4,4);break;
case 5: Joaca(s5,5);break; case 6: Joaca(s6,6);break;
case 7: Joaca(s7,7);break; case 8: Joaca(s8,8);break;
case 9: Joaca(s9,9);break; case 10: Joaca(s10,10);break;
case 11: Joaca(s11,11);break; case 12: Joaca(s12,12);break;
case 13: Joaca(s13,13);break; case 14: Joaca(s14,14);break;
case 15: Joaca(s15,15);break; case 16: Joaca(s16,16);break;
case 17: Joaca(s17,17);break; case 18: Joaca(s18,18);break;
case 19: Joaca(s19,19);break; case 20: Joaca(s20,20);break;
case 21: Joaca(s21,21);break;
}alert("poz"+k+"");}
function genereaza(nivel,a,b){Anima();inceput=0;jumpa(nivel,a,b);}
function jumpa(nivel,a,b)
{ var z;
//poz=pozitia pe care se afla pisica
generez_eu=1;
if(a==1){muta(poz-1);poz--;} else {muta(poz+1);poz++;}
for(z=1;z<=nivel;z++)
if(b==2){muta(poz-2);poz=poz-2;} else {muta(poz+2);poz=poz+2;}
if(nivel<soareci) { jumpa(nivel+1,4-a,6-b);
for(z=1;z<=nivel;z++)
if(b==2){muta(poz-2);poz=poz-2;}
else {muta(poz+2);poz=poz+2;}}
if(a==1){ muta(poz-1);poz--;}else {muta(poz+1);poz++;}}
</SCRIPT><CENTER>
<H1><IMG src="minat_files/trifoi.gif"> <IMG src="E:/cristina40/gifuri/mouser.gif"> MyMouseRectifier</H1>
<BR><BR><BR>
<IMG ID="s1" SRC= E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s1,1)">
<IMG ID="s2" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s2,2)">
<IMG ID="s3" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s3,3)">
<IMG ID="s4" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s4,4)">
<IMG ID="s5" SRC= E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s5,5)">
<IMG ID="s6" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s6,6)">
<IMG ID="s7" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s7,7)">
<IMG ID="s8" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s8,8)">
<IMG ID="s9" SRC= E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s9,9)">
<IMG ID="s10" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s10,10)">
<IMG ID="s11" SRC=E:/CRISTINA40/gifuri/felixanm.gif with hight=100 width=40 onclick="Joaca(s11,11)">
<IMG ID="s12" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s12,12)">
<IMG ID="s13" SRC= E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s13,13)">
<IMG ID="s14" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s14,14)">
<IMG ID="s15" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s15,15)">
<IMG ID="s16" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s16,16)">
<IMG ID="s17" SRC= E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s17,17)">
<IMG ID="s18" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s18,18)">
<IMG ID="s19" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s19,19)">
<IMG ID="s20" SRC=E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s20,20)">
<IMG ID="s21" SRC= E:/CRISTINA40/gifuri/mouser.gif with hight=100 width=40 onclick="Joaca(s21,21)">
<BR><BR> <TABLE cellSpacing=5 cellPadding=5 width="65%" border=6>
<TBODY><TR>
<TD><INPUT TYPE="button" value=" HELP " onclick="Help()"</td>
<TD><B>Numarul de soricei:</B>
<SELECT id=level onchange=loadBoard(parseInt(level.value))>
<OPTION value=3 selected>3</OPTION><OPTION value=5>5</OPTION>
<SCRIPT>
for (var i=7;i<=21;i=i+2)
{document.write("<option value='" + i + "'>" + i + "</option>");}
</SCRIPT></SELECT></TD>
<TD align=middle>
<INPUT TYPE="button" value="Start Joc" onclick="Anima()"> </TD>
<TD align=middle><INPUT TYPE="button" value="Genereaza solutie" onclick="jumpa(1,1,4)"></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=5 cellPadding=5 width="65%" border=6>
<tr><td align=middle id="help" class=capt2></td></tr>
<TR><TD class=capt3>
<p> Micul Felix vrea sa intre in "Clubul motanilor viteji". Pentru aceasta este supus unei incercari. Trebuie sa separe soarecii maro de cei gri, urmand urmatoarele reguli:</p>
<ol ><li> Un soarece maro poate face schimb cu pisica, numai daca aceasta este in dreapta lui si sunt separati de cel mult un soarece
<li> Un soarece gri poate face schimb cu pisica, numai daca aceasta este in stanga lui si sunt separati de cel mult un soarece
</ol></TD><TR><td align=center id="fldStatus" class=capt2></td> </TABLE>
</SELECT><BR><BR><BR><IMG src="E:/cristina40/model.gif"> </CENTER></BODY></HTML>
Comentarii
MINUNAT !
Mariana Lulache acum 2223 zile
Alte articole ale autorului
- Perspico - implementare Java31 aug. 20201 comentariu
- Elemente de Teoria probabilităților31 aug. 20201 comentariu
- Diviziune celulară - aplicație statistică31 aug. 20201 comentariu

Ministerul Educaţiei