Hi Everybody
I have problems with the following script it only works
properly InternetExplorer5.5 and not in Netscape6
It is the New Game function that dont work in Netscape6
It places rings randomly when pressing "New Game"
I also attach zip files with the script only to unzip and
dubbelklick on the HTML file.
Verry Thankfull for tip or advice.
Sincerely
Urban Avierfjärd
Gotland,Sweden
E-mail [EMAIL PROTECTED]
ICQ#69907743
Homepage http://w1.201.telia.com/~u20100003

<HTML>
<HEAD>
<META NAME="KEYWORDS" CONTENT="MY FILE">
<META NAME="DESCRIPTION" CONTENT="MY FILE">
<META NAME="JAVASCRIPT GENERATOR" CONTENT="jsEditor">
<title>DynAPI Distribution: Create Example</title>
<script language="Javascript" src="src/dynapi.js"></script>
<script language="Javascript">
DynAPI.setLibraryPath('src/lib/');
DynAPI.include('dynapi.api.*');
DynAPI.include('dynapi.event.*');
DynAPI.include('dynapi.gui.dynimage.js');
</script>
<script language="Javascript">
     luff = new Array(25)// den tvådimensionella vektorn luff skapas Globalt
        for (i=0; i < 25; i++) {
           luff[i] = new Array(25);
}
     var k=0;
     var l=0;
     var r=0;
     var q=0;
     var s=0;
     var p=0
     var o=0;
     var z=0;
     var a=0;
     var b=0;
     var c=500;
     var d=500;
     var A=0;
     var B =0;
     var h=0;
     var v =0;
     var dim =0;
function Calculate(){/* Här skall själva motorn vara som ger kordinaterna c
och d
                                  för var krysset skall placeras på
DynLayer*/

                              /*Ger varibel o (1-25)som är y kordinaten för
                              den ruta längst ned på brädet som inehåller
                              ring eller kryss*/
  o=0;
for (i=1;i<26; i++){
        for (j=1;j<26; j++){
              if (luff[i-1][j-1]!=47){
                   if (j>o){
                           o=j;
}
} file://49e raden
}
}
     p=0;               /*ger varibeln p (1-25)som är x kordinaten för
                           den ruta längst till höger som innehåller
                           ring eller kryss*/
for (i=1;i<26; i++){
      for (j=1;j<26; j++){
          if (luff[j-1][i-1]!=47){
                if (j>p){
                   p=j;
}
}
}
}
                          /* ger varibeln q (1-25) som är y kordinaten för
                            den ruta längst upp på brädet som innehåller
                            ring eller kryss*/
       s=0;
       q=26;
for (i=1;i<26; i++){
     s=0;
     for (j=1;j<26; j++){
          if (luff[j-1][i-1]!=47){
                if (s==0){
                    s=s+1;
                      if (i<q){
                          q=i;
}
}
}
}
}
                         /* ger varibeln r (1-25) som är x kordinaten för
                            den ruta längst till vänster på brädet som
innehåller
                            ring eller kryss*/
        s=0;
        r=26;
for (i=1;i<26; i++){
     s=0;
     for (j=1;j<26; j++){
          if (luff[j-1][i-1]!=47){
                if (s==0){
                    s=s+1;
                      if (j<r){
                         r=j;
}
}
} file://97e raden
}
}
r=r-3;                  file://r,q.o och p är de nya kordinaterna
if (r<1){
r=1;
}
q=q-3;
if (q<1){
q=1;
}
o=o+3;
if (o>25){
o=25;
}
p=p+3;
if (p>25){
p=25;
}
                     /*Tar skillnaden mellan högsta och lägsta värde
                    det genereras ett värde på dim och insättningspunkterna
                    for det Nya kordinatsystemet genereras r och q , r är x
kordinaten
                    q är y kordinaten*/
k=o-q+1;
l=p-r+1;
if
l){ 
    dim = k;
}
else {
 dim = l;
}
/*Försöker konstruera en flerdimensionell lokal vektor
 som bara fungerrar innom den här funktionen
Den skall ha storleken dim*dim och ha insättnings punkterna
(r,q) i det gamla kordinatsystemet(brädet) på 25*25*/
var motorluff =new Array(dim);
for (i=0;i<dim; i++){
motorluff[i]=new Array(dim);
}
var mo
tordiagonal = new Array(2*dim-1);//Den tvådimensionella Vektorn
motordiagonal skapas
for (i=0; i<2*dim-1;i++) {
   motordiagonal[i] = new Array(2*dim-1);
}
while (r+dim>26){
      r=r-1;
}
while (q+dim>26){
      q=q-1
}//145e raden
          for (i=r;i<r+dim; i++){
             for (j=q;j<q+dim; j++){  file://rad 158
                motorluff[i-r][j-q]=luff[i-1][j-1];
}
}
/* följande skall ta diagonal värden från motorluff och föra över
 det till vektorn motordiagonal som har dimension (2*dim-1)*(2*dim-1)*/
n=dim+1;
for (k=1;k<dim+1; k++){
n=n-1;
m=dim+1-k;
o=n;
for (l=0;l<k; l++){
motordiagonal[o-1][k-1] = motorluff[m-1][l];
m = m+1;
o=o+2
}
}
p=dim-1;
n=1;
k=dim;
while (k>1){
k=k-1;
n=n+1;
m=dim+1-k;
p=p+1;
o=n;
for (l=0;l<k; l++){
motordiagonal[o-1][p] = motorluff[l][m-1];
m=m+1;
o=o+2;
}
}
/* följande skall testa om det finns 5 st ringar
vertikalt i vektorn motorluff*/
for (i=0;i<dim; i++){
     p=0;
       for (j=0;j<dim; j++){
            if (motorluff[i][j]==87){
                p = p+1
                if (p==5){
                   alert("Congratulations You have get five in a row");
}
}
else {
p=0;
}
}//193e raden
}
/*följande skall testa om det finns fem ringar
 i rad i horizontell led*/
for (i=0;i<dim; i++){
     p=0;
       for (j=0;j<dim; j++){
            if (motorluff[j][i]==87){
                p = p+1
                if (p==5){
                   alert("Congratulations You have get five in a row");
}
}
else {
p=0;
}
}
}
// följande skall testa diagonalerna för fem ringar i rad
     for (i=0;i<2*dim-1; i++){
             for (j=0;j<2*dim-1; j++){
                  if (motordiagonal[i][j]==87){
                      var p=1;
                      var m=j;
                      m=m+2;
                              if (m<2*dim-2){
                                    while (motordiagonal[i][m]==87){
                                         p=p+1;
                                         m=m+2;
                                           if (p==5){
                                                 alert("Congratulations You
have get five in a row");
}
}
}
}
}
}
/* följande skall testa om det finns fem ringar i rad i den andra diagonalen
   som löper från övre vänstra hörnet till nedre högra hörnet*/
  for (i=0;i<2*dim-1;

             for (j=0;j<2*dim-1; j++){
                  if (motordiagonal[j][i]==87){
                      var p=1;
                      var m=j;
                      m=m+2;
                              if (m<2*dim-2){
                                    while (motordiagonal[m][i]==87){
                                         p=p+1;
                                         m=m+2;//241e raden
                                           if (p==5){
                                                 alert("Congratulations You
have get five in a row");

}
}
}
}
}
}
file://följande testar om det finns fyra ringar vertikalt i rad
for (i=0;i<dim; i++){
     p=0;
       for (j=0;j<dim; j++){
            if (motorluff[i][j]==87){
                p = p+1
                if (p==4){
}
}
else {
p=0;
}
}
}
/*följande skall testa om det finns fyra ringar
 i rad i horizontell led*/
for (i=0;i<dim; i++){
     p=0;
       for (j=0;j<dim; j++){
            if (motorluff[j][i]==87){
                p = p+1
                if (p==4){
}
}
else {
p=0;
}
}
}
// följande skall testa diagonalen längst ned till vänster längst upp till
höger för fyra ringar i rad
     for (i=0;i<2*dim-1; i++){
             for (j=0;j<2*dim-1; j++){
                  if (motordiagonal[i][j]==87){
                      var p=1;
                      var m=j;
                      m=m+2;
                              if (m<2*dim-2){//289e raden
                                    while (motordiagonal[i][m]==87){
                                         p=p+1;
                                         m=m+2;
                                           if (p==4){
}
}
}
}
}
}
/* följande skall testa om det finns  ringar i rad i den andra diagonalen
   som löper från övre vänstra hörnet till nedre högra hörnet*/
  for (i=0;i<2*dim-1; i++){          // rad 360
             for (j=0;j<2*dim-1; j++){
                  if (motordiagonal[j][i]==87){
                      var p=1;
                      var m=j;
                      m=m+2;
                              if (m<2*dim-2){
                                    while (motordiagonal[m][i]==87){
                                         p=p+1;
                                         m=m+2;
                                           if (p==4){

}
}
}
}
}
}
/* följande skall leta efter första ringen i vertikal led och sätta
ett kryss i närmaste toma ruta genom att ge c och d lämliga värden*/
for (i=1;i<dim+1; i++){
       for (j=1;j<dim+1; j++){
            if (motorluff[i-1][j-1]==87){
                   if (motorluff[i-1][j]==47){
                        c= 20*(i+r-2);
                        d= 20*(j+ q-1);
                        luff[i+r-2][j+q-1]=91;
}
}
}
}
}
function getAB(e){/*ger x och y kordinaterna för muspilen
                            på DynLayer och tilldelar A och B detta
värde*///337e raden
        A=e.getX()
        B=e.getY()
}
function myarray(){/*tilldelar varje ruta på bräde ett värd från 1 till 25 i
x och y led h och v
                              testar också om rutan är upptagen med en ring
eller kryss i så fall sätts
                              z=1 för att programmet inte skall anropa
funktionen Calculate en gång till
                              annars sätts vektor luff[h-1][v-1] till 87 för
en ring
                              funktionen ger även kordinaterna a och b för
var ringen placers på DynLayer*/
                H=0;
                for (i=0;i<=480; i=i+20){
                        H=H+1
                        for (j=0;j<=20;j++){
                        if (i+j==A){
                        h=H
                        a=i
}
}
}
              V=0;
              for (k=0;k<=480;k=k+20){
              V=V+1
              for (l=0;l<=20;l++){
              if (k+l==B){
              v=V
              b=k
}
}
}
if (luff[h-1][v-1]==91){
a=500;
b=500;
z=1;
}
else if (luff[h-1][v-1]==87){
z=1;
}
else{
 luff[h-1][v-1]=87;
}
}
 function layout() {
        for (i=0;i<25; i++){//fyller upp vektorn luff med koden för tom ruta
47
                  for (j=0;j<25; j++){
                           luff[i][j] = 47;
}
}
        myLayer = new DynLayer();
 myLayer.setSize(500,500);//385e raden
 myLayer.setBgColor('purple');
 myLayer.moveTo(5,50);
                myListener = new EventListener(DynAPI.document);
  myListener.onmousemove=function(e) {
   myLayer.setBgColor('pink');
  }
  myListener.onmouseout=function(e) {
   myLayer.setBgColor('deeppink');
  }
  myListener.onmousedown=function(e) { /* denna funktion känner av om man
trycker ned musknappen

sedan anropas fuktionerna getAB(e) , myarray() och tilldiagonal

sedan placeras ringen ut på DynLayer sedan anropas funktionen

Calculate() som är själva motorn som ger kordinaterna c och d för var

Krysset skall placeras*/
                        getAB(e);
                        myarray();
                        myChild2 = new DynLayer(null,a,b,20,20,'violet');
                        myChild2.setHTML('<img src=Animation3.gif>');
                 myLayer.addChild(myChild2)
                        if (z==0) {
                           Calculate();
}
                        else {
                           z=0;
}
                        myChild2 = new DynLayer(null,c,d,20,20,'violet');
                        myChild2.setHTML('<img src=Animation4.gif>');
                        myLayer.addChild(myChild2)
}
         myLayer.addEventListener(myListener);
             for (i=19;i<480; i=i+20){
             myChild = new DynLayer(null,i,0,2,500,'black');
      myLayer.addChild(myChild);
}
            for (i=19;i<480; i=i+20){
            myChild = new DynLayer(null,0,i,500,2,'black');
     myLayer.addChild(myChild)
}
DynAPI.document.addChild(myLayer);
}
DynAPI.onLoad = function() {
layout();
}
function newgame() {
 layout();
}//441e raden
</script>
</head>
<BODY>
<BODY BGCOLOR="chocolate">
<H1>Five in a Row Game ( under Construction) You start with Rings</H1>
<PRE>






























</PRE>
<FORM><INPUT TYPE="button" VALUE="New Game" onClick="newgame();"></FORM>
</BODY>
</HTML>



Five in a Row Game.zip

Reply via email to