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