webForumDet fria alternativet

göra en topplista till ett snakespel i dhtml

JavaScript

43 svar · 891 visningar · startad av ampy · sida 2 av 3

Frågan, av ampy

Har tänkt att göra en topplista i asp till ett snake-spel som är gjort i dhtml. Det enda problemet jag har är att jag fattar inte hur jag ska få det antal poäng man fick till en variabel i asp. Så här ser koden ut: <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>&nbsp;S n a k e </title> <style> input{width:25px;border-width: 0px;background-color: #FCC95A;

Läs frågan i sin helhet →
Medlem sedan mars 20015 287 inlägg
#21

He he, du bad ju om det... :)

Medlem sedan juni 20001 251 inlägg
#22

Jo, man tackar. Då klar den en attack iaf. Nu vet jag iofs inte hur hårt du försökte, men men. :)

Medlem sedan dec. 20011 860 inlägg
#23

Kan någon hjälpa mig med denna kod! Har gjort om den lite och vill spara till databasen:

<!-- Written by Omar Wally [email]surfsup_79@hotmail.com[/email] ----> [url]http://crash.to/PLAY[/url] --!>

<html>
<title>Gruvsjo Snake</title>
<head>
<SCRIPT LANGUAGE="JavaScript">main=new Image();main.src="bilder/screan.gif";doter=new Image();doter.src="bilder/dot.gif"</script>
<link rel="stylesheet" href="style.css" type="text/css">
</head>

<body onload="cantplay()" bgcolor="#CECBD3">

<img src="bilder/screan.gif" style="position:absolute; left: 9; top: 9">

<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/snake.mdb")

If Request.QueryString("action") = "" Then%>

<div id='namn' style='position:absolute;width=175;left:23;top:15'>
   <form method="post" action="snake.asp?action=spela" name="ny">
      <br><center><b>Skriv ditt namn:</b><br><input type="text" name="namn" size="25">
      <input type="Submit" value="Spela nu"></center>
   </form>
</div>

<%ElseIf Request.QueryString("action") = "spela" Then

Session("namn") = Request.Form("namn")%>

<script>for(v=1;v<=1;v++){document.write("<img src=bilder/dot1.gif id='dot"+v+"' style='position:absolute;left:0;top:-200'>")}</script>
<script>for(v=2;v<=100;v++){document.write("<img src=bilder/dot.gif id='dot"+v+"' style='position:absolute;left:0;top:-200'>")}</script>

<center><b>
<div id='bd' style='position:absolute;width=175;left:23;top:15'>
    Välj nivå<p>
    <a href="#" onclick="level=1;startIt()"><img src="bilder/1.gif" border="0"></a> &nbsp; <a href="#" onclick="level=2;startIt()"><img src="bilder/2.gif" border="0"></a> &nbsp; <a href="#" onclick="level=3;startIt()"><img src="bilder/3.gif" border="0"></a> &nbsp; <a href="#" onclick="level=4;startIt()"><img src="bilder/4.gif" border="0"></a> &nbsp; <a href="#" onclick="level=5;startIt()"><img src="bilder/5.gif" border="0"></a><p>
    <table width="100%">
       <tr><td colspan="2"><b>Topplista</b></td></tr>
<%Set RS = Conn.Execute("Select * From snake Order By poang desc")
If RS.EOF Then%>
       <tr><td colspan="2">Inga har spelat än!</td></tr>
<%Else
x=0
Do Until RS.EOF Or x=3%>
       <tr><td><%=RS("namn")%></td><td><%=RS("poang")%></td></tr>
<%x=x+1
RS.MoveNext
Loop
End If%>
    </table>
</div>
<div id='go' style='position:absolute;width=100;left:60;top:-200'>Game Over</div>
<div id='ld' style='position:absolute;width=100;left:60;top:30'>Laddar... </div>
<div id='yw' style='position:absolute;width=100;left:60;top:-200'>Du vann!</div>
</strong></font></center>

<SCRIPT LANGUAGE="JavaScript">
direct="null";sec=0;run="get";S=0;var top=new Array();var left=new Array();var go=new Array()
for(n=2;n<=100;n++){go[n]="not";top[n]=-200;left[n]=-200};for(n=1;n<5;n++){go[n]="yes"}
function locatEm(turn){ar=new Array(70,160,140,10,60,70,100,30,190,180);am=new Array(10,110,190,170,60,30,60,80,150,120,20,130,180,160,200,180,70,100,90,20);test=sec;now=new Date();sec=now.getSeconds();if(test==sec){sec+=sec};left[turn]=ar[sec%10];top[turn]=am[sec%20];showEm(turn);if(turn!=5){showscore();speed-=rate}}
function SSnake(){if(go[100]=="yes"){document.all.yw.style.pixelTop=60;lost="yes"};for(i=99;i>1;i--){if(go[i]=="yes"){top[i]=top[(i-1)];left[i]=left[(i-1)]}};if(direct=="up"){top[1]-=10};if(direct=="down"){top[1]+=10};if(direct=="left"){left[1]-=10};if(direct=="right"){left[1]+=10};for(m=99;m>4;m--){if(top[1]==top[m]){if(left[1]==left[m]){if(go[m]!="yes"){go[m]="yes";locatEm((m+1))}else{lost="yes"}}}};if(top[1]==top[100]){if(left[1]==left[100]){go[100]="yes"}};for(z=1;z<=99;z++){if(go[z]=="yes"){showEm(z)}};if(top[1]==0){lost="yes"};if(top[1]==210){lost="yes"};if(left[1]==0){lost="yes"};if(left[1]==210){lost="yes"};if(lost!="yes"){setTimeout("SSnake()",speed)}else{hideEm(1);if(go[100]!="yes"){document.all.go.style.pixelTop=60;setTimeout("reaload()",2000)}}}
function showEm(turn){eval("document.all.dot"+turn+".style.pixelTop ="+top[turn]);eval("document.all.dot"+turn+".style.pixelLeft ="+left[turn])}
function keyDown(){k=window.event.keyCode;if(k==104){if(direct!="down"){direct="up"}};if(k==98){if(direct!="up"){direct="down"}};if(k==100){if(direct!="right"){direct="left"}};if(k==102){if(direct!="left"){direct="right"}};if(k==38){if(direct!="down"){direct="up"}};if(k==40){if(direct!="up"){direct="down"}};if(k==37){if(direct!="right"){direct="left"}};if(k==39){if(direct!="left"){direct="right"}}}
function startIt(){if(run=="not"){S=0;add=0;showscore();if(level==1){speed=200;rate=1.5;add=1};if(level==2){speed=160;rate=1;add=2};if(level==3){speed=120;rate=.5;add=3};if(level==4){speed=80;rate=.2;add=4};if(level==5){speed=40;rate=.1;add=5};direct="null";lost="not";top[1]=100;left[1]=90;setTimeout('locatEm(5)',3000);document.all.bd.style.pixelTop=-200;run="once";SSnake()}}
function reaload(){for(n=5;n<=99;n++){go[n]="not"};for(e=1;e<=99;e++){hideEm(e)};run="not";document.all.go.style.pixelTop=-200;document.all.bd.style.pixelTop=15;document.all.yw.style.pixelTop=-200}
function hideEm(turn){top[turn]=-200;eval("document.all.dot"+turn+".style.pixelTop=-200")}
function showscore(){S+=add;parent.score.document.write("<link rel=stylesheet href=style.css type=text/css><bo"+"dy bgcolor=#CECBD3><center><b>Din poäng: "+S+"</font></b></center>");parent.score.document.close()} 
function cantplay(){if(navigator.appName=="Netscape"){document.write("<div style='position:absolute; left: 9; top: 9'><img src=bilder/screan.gif></div>");alert("Spelet funkar inte med Netscape")}else{document.all.ld.style.pixelTop=-200;run="not"}}
document.onkeydown = keyDown
</script>

<IFRAME SRC='score.asp' name=score width='200' height='50' frameborder='0' scrolling='no' STYLE='position:absolute; top:215; left:10'>

<%End If%>

</body>
</html>
Medlem sedan maj 200010 687 inlägg
#24

Ey solbulle! CInt är inte bra med tanke på dess minimala begränsning.

Medlem sedan mars 20023 686 inlägg
#25

ehy! Ska alla ha snake på sin sida?? Då ska jag också ha det!!

Medlem sedan dec. 20011 860 inlägg
#26

Fixat :)

<!-- Written by Omar Wally [email]surfsup_79@hotmail.com[/email] ----> [url]http://crash.to/PLAY[/url] --!>

<html>
<title>Gruvsjo Snake</title>
<head>
<SCRIPT LANGUAGE="JavaScript">main=new Image();main.src="bilder/screan.gif";doter=new Image();doter.src="bilder/dot.gif"</script>
<link rel="stylesheet" href="style.css" type="text/css">
</head>

<body onload="cantplay()" bgcolor="#CECBD3">

<img src="bilder/screan.gif" style="position:absolute; left: 9; top: 9">

<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/snake.mdb")

If Request.QueryString("action") = "" Then%>

<div id='namn' style='position:absolute;width=175;left:23;top:15'>
   <form method="post" action="snake.asp?action=spara" name="ny">
      <br><center><b>Skriv ditt namn:</b><br><input type="text" name="namn" size="25">
      <input type="Submit" value="Spela nu"></center>
   </form>
</div>

<%ElseIf Request.QueryString("action") = "spara" Then
    Session("namn") = Request.Form("namn")
    Response.Redirect "snake.asp?action=spela"
ElseIf Request.QueryString("action") = "spela" Then

Poang                   = Request.Form("points")

If Poang <> "" then
   Conn.Execute("Insert Into snake(namn,poang) Values('" & Session("namn") & "','" & Poang & "')")
End If%>

<form method="POST" name= "resultat" action="snake.asp?action=spela" >
    <input type="hidden"  name="points">
</form>

<SCRIPT LANGUAGE="JavaScript">
function sendit(){
document.resultat.points.value=S;
document.resultat.submit();
}
</script>

<script>for(v=1;v<=1;v++){document.write("<img src=bilder/dot1.gif id='dot"+v+"' style='position:absolute;left:0;top:-200'>")}</script>
<script>for(v=2;v<=100;v++){document.write("<img src=bilder/dot.gif id='dot"+v+"' style='position:absolute;left:0;top:-200'>")}</script>

<center><b>
<div id='bd' style='position:absolute;width=175;left:23;top:15'>
    Välj nivå<p>
    <a href="#" onclick="level=1;startIt()"><img src="bilder/1.gif" border="0"></a> &nbsp; <a href="#" onclick="level=2;startIt()"><img src="bilder/2.gif" border="0"></a> &nbsp; <a href="#" onclick="level=3;startIt()"><img src="bilder/3.gif" border="0"></a> &nbsp; <a href="#" onclick="level=4;startIt()"><img src="bilder/4.gif" border="0"></a> &nbsp; <a href="#" onclick="level=5;startIt()"><img src="bilder/5.gif" border="0"></a><p>
    <table width="100%">
       <tr><td colspan="2"><b>Topplista</b></td></tr>
<%Set RS = Conn.Execute("Select * From snake Order By poang desc")
If RS.EOF Then%>
       <tr><td colspan="2">Inga har spelat än!</td></tr>
<%Else
x=0
Do Until RS.EOF Or x=3%>
       <tr><td><%=RS("namn")%></td><td><%=RS("poang")%></td></tr>
<%x=x+1
RS.MoveNext
Loop
End If%>
    </table>
</div>
<div id='go' style='position:absolute;width=100;left:60;top:-200'>Du förlorade :(</div>
<div id='ld' style='position:absolute;width=100;left:60;top:30'>Laddar snake... </div>
<div id='yw' style='position:absolute;width=100;left:60;top:-200'>Nämen du vann!</div>
</strong></font></center>

<SCRIPT LANGUAGE="JavaScript">
direct="null";sec=0;run="get";S=0;var top=new Array();var left=new Array();var go=new Array()
for(n=2;n<=100;n++){go[n]="not";top[n]=-200;left[n]=-200};for(n=1;n<5;n++){go[n]="yes"}
function locatEm(turn){ar=new Array(70,160,140,10,60,70,100,30,190,180);am=new Array(10,110,190,170,60,30,60,80,150,120,20,130,180,160,200,180,70,100,90,20);test=sec;now=new Date();sec=now.getSeconds();if(test==sec){sec+=sec};left[turn]=ar[sec%10];top[turn]=am[sec%20];showEm(turn);if(turn!=5){showscore();speed-=rate}}
function SSnake(){if(go[100]=="yes"){document.all.yw.style.pixelTop=60;lost="yes";sendit()};for(i=99;i>1;i--){if(go[i]=="yes"){top[i]=top[(i-1)];left[i]=left[(i-1)]}};if(direct=="up"){top[1]-=10};if(direct=="down"){top[1]+=10};if(direct=="left"){left[1]-=10};if(direct=="right"){left[1]+=10};for(m=99;m>4;m--){if(top[1]==top[m]){if(left[1]==left[m]){if(go[m]!="yes"){go[m]="yes";locatEm((m+1))}else{lost="yes" ;sendit()}}}};if(top[1]==top[100]){if(left[1]==left[100]){go[100]="yes"}};for(z=1;z<=99;z++){if(go[z]=="yes"){showEm(z)}};if(top[1]==0){lost="yes";sendit()};if(top[1]==210){lost="yes";sendit()};if(left[1]==0){lost="yes";sendit()};if(left[1]==210){lost="yes";sendit()};if(lost!="yes"){setTimeout("SSnake()",speed)}else{hideEm(1);if(go[100]!="yes"){document.all.go.style.pixelTop=60;setTimeout("reaload()",2000)}}}
function showEm(turn){eval("document.all.dot"+turn+".style.pixelTop ="+top[turn]);eval("document.all.dot"+turn+".style.pixelLeft ="+left[turn])}
function keyDown(){k=window.event.keyCode;if(k==104){if(direct!="down"){direct="up"}};if(k==98){if(direct!="up"){direct="down"}};if(k==100){if(direct!="right"){direct="left"}};if(k==102){if(direct!="left"){direct="right"}};if(k==38){if(direct!="down"){direct="up"}};if(k==40){if(direct!="up"){direct="down"}};if(k==37){if(direct!="right"){direct="left"}};if(k==39){if(direct!="left"){direct="right"}}}
function startIt(){if(run=="not"){S=0;add=0;showscore();if(level==1){speed=200;rate=1.5;add=1};if(level==2){speed=160;rate=1;add=2};if(level==3){speed=120;rate=.5;add=3};if(level==4){speed=80;rate=.2;add=4};if(level==5){speed=40;rate=.1;add=5};direct="null";lost="not";top[1]=100;left[1]=90;setTimeout('locatEm(5)',3000);document.all.bd.style.pixelTop=-200;run="once";SSnake()}}
function reaload(){for(n=5;n<=99;n++){go[n]="not"};for(e=1;e<=99;e++){hideEm(e)};run="not";document.all.go.style.pixelTop=-200;document.all.bd.style.pixelTop=15;document.all.yw.style.pixelTop=-200}
function hideEm(turn){top[turn]=-200;eval("document.all.dot"+turn+".style.pixelTop=-200")}
function showscore(){S+=add;parent.score.document.write("<link rel=stylesheet href=style.css type=text/css><bo"+"dy bgcolor=#CECBD3><center><b>Din poäng: "+S+"</font></b></center>");parent.score.document.close()} 
function cantplay(){if(navigator.appName=="Netscape"){document.write("<div style='position:absolute; left: 9; top: 9'><img src=bilder/screan.gif></div>");alert("Spelet funkar inte med Netscape")}else{document.all.ld.style.pixelTop=-200;run="not"}}
document.onkeydown = keyDown
</script>

<IFRAME SRC='score.asp' name=score width='200' height='50' frameborder='0' scrolling='no' STYLE='position:absolute; top:215; left:10'>

<%End If%>

</body>
</html>
Medlem sedan mars 20015 287 inlägg
#27

Erik Juhlin:

Nu är jag inte alls med???

Ey solbulle! CInt är inte bra med tanke på dess minimala begränsning.

Medlem sedan juli 20011 129 inlägg
#28

Han menade att cInt bara klarar av ett värde upp till 32767 sen så blir det:

Körningsfel i Microsoft VBScript fel '800a0006' 

Spill: 'cInt'

Så därför kan du köra cLng istället som klarar ett värde upp till 2,147 MILJARDER så cLng är lite bättre att använda, inte lika många decimaler dock, men det behövs sällan i spelpoäng.

Tänk på att cLng inte räcker till om jag ska spela dock :bire

Medlem sedan juni 200032 967 inlägg
#29

Int är också heltal.
Vill man kunna använda sig av stora tuffa decimaltal kan man använda datatypen Double.

Känns aningen off topic, dock.

Mvh,

Medlem sedan juli 20011 129 inlägg
#30

:r Just det... glömde det :OO
Ja, nu é det OT så det stänker...

Medlem sedan mars 20015 287 inlägg
#31

Grej 1. Var använder jag mig av cInt ?

Grej 2. Är anledningen den ni skriver känns det som att det kvittar, mitt rekord är fn 135, så jag har långt kvar...

Grej 3. Kikade nu på min sida och fick svaret på hur Hr Juhlin kommit på att jag använder mig av cInt, trodde han menade i det script jag postat.

Fattar vinken.

Grej 4. Inte trodde jag att det skulle vara så kul att "hacka" spel o resultatsidor, får väl ta o fixa det då. ;) :)

Medlem sedan mars 20015 287 inlägg
#32

Varför har ni ändrat i poänggivningen i era spel? Tycker det verkar konstigt att man inte ska "tjäna" mer poäng ju snabbare det går, eller?

Medlem sedan feb. 20011 498 inlägg
#33
<img src="screan.gif" style="position:absolute; left: 9; top: 9">
<script>for(v=1;v<=100;v++){document.write("<img src=apple.gif id='dot"+v+"' style='position:absolute;left:0;top:-200'>")}</script>
<center><font face="Tahoma"size="2"><strong>
<div id='bd' style='position:absolute;width=150;left:35;top:15'>
<br><br>Välj svårighetsgrad<br><br><br>
<input type=button onclick="level=1;startIt()" value="1" onfocus="blur()">
<input type=button onclick="level=2;startIt()" value="2" onfocus="blur()">
<input type=button onclick="level=3;startIt()" value="3" onfocus="blur()">
<input type=button onclick="level=4;startIt()" value="4" onfocus="blur()"></div>
<div id='go' style='position:absolute;width=100;left:60;top:-200'>Spelet slut</div>
<div id='ld' style='position:absolute;width=100;left:60;top:30'>Laddar... </div>
<div id='yw' style='position:absolute;width=100;left:60;top:-200'>Du vann!</div>
</strong></font></center>
<script languagE="JavaScript">
direct="null";sec=0;run="get";S=0;var top=new Array();var left=new Array();var go=new Array()
for(n=2;n<=100;n++){go[n]="not";top[n]=-200;left[n]=-200};for(n=1;n<5;n++){go[n]="yes"}
function locatEm(turn){ar=new Array(70,160,140,10,60,70,100,30,190,180);am=new Array(10,110,190,170,60,30,60,80,150,120,20,130,180,160,200,180,70,100,90,20);test=sec;now=new Date();sec=now.getSeconds();if(test==sec){sec+=sec};left[turn]=ar[sec%10];top[turn]=am[sec%20];showEm(turn);if(turn!=5){showscore();speed-=rate}}
function SSnake(){if(go[100]=="yes"){document.all.yw.style.pixelTop=60;lost="yes";sendit()};for(i=99;i>1;i--){if(go[i]=="yes"){top[i]=top[(i-1)];left[i]=left[(i-1)]}};if(direct=="up"){top[1]-=10};if(direct=="down"){top[1]+=10};if(direct=="left"){left[1]-=10};if(direct=="right"){left[1]+=10};for(m=99;m>4;m--){if(top[1]==top[m]){if(left[1]==left[m]){if(go[m]!="yes"){go[m]="yes";locatEm((m+1))}else{lost="yes" ;sendit()}}}};if(top[1]==top[100]){if(left[1]==left[100]){go[100]="yes"}};for(z=1;z<=99;z++){if(go[z]=="yes"){showEm(z)}};if(top[1]==0){lost="yes";sendit()};if(top[1]==210){lost="yes";sendit()};if(left[1]==0){lost="yes";sendit()};if(left[1]==210){lost="yes";sendit()};if(lost!="yes"){setTimeout("SSnake()",speed)}else{hideEm(1);if(go[100]!="yes"){document.all.go.style.pixelTop=60;setTimeout("reaload()",2000)}}}
function showEm(turn){eval("document.all.dot"+turn+".style.pixelTop ="+top[turn]);eval("document.all.dot"+turn+".style.pixelLeft ="+left[turn])}
function keyDown(){k=window.event.keyCode;if(k==104){if(direct!="down"){direct="up"}};if(k==98){if(direct!="up"){direct="down"}};if(k==100){if(direct!="right"){direct="left"}};if(k==102){if(direct!="left"){direct="right"}};if(k==38){if(direct!="down"){direct="up"}};if(k==40){if(direct!="up"){direct="down"}};if(k==37){if(direct!="right"){direct="left"}};if(k==39){if(direct!="left"){direct="right"}}}
function startIt(){if(run=="not"){S=0;add=0;showscore();if(level==1){speed=151;rate=1.5;add=1};if(level==2){speed=101;rate=1;add=2};if(level==3){speed=51;rate=.5;add=3};if(level==4){speed=11;rate=.1;add=4};direct="null";lost="not";top[1]=100;left[1]=90;setTimeout('locatEm(5)',3000);document.all.bd.style.pixelTop=-200;run="once";SSnake()}}
function reaload(){for(n=5;n<=99;n++){go[n]="not"};for(e=1;e<=99;e++){hideEm(e)};run="not";document.all.go.style.pixelTop=-200;document.all.bd.style.pixelTop=15;document.all.yw.style.pixelTop=-200}
function hideEm(turn){top[turn]=-200;eval("document.all.dot"+turn+".style.pixelTop=-200")}
function showscore(){S+=add;parent.score.document.write("<bo"+"dy bgcolor=#FFFFFF text=#000000><center><font face=Verdana size=2><strong>Poäng "+S+"</font></strong></center>");parent.score.document.close()} 
function cantplay(){if(navigator.appName=="Netscape"){document.write("<div style='position:absolute; left: 9; top: 9'><img src=screan.gif></div>");alert("Sorry this game cannot be played with Netscape, please use Explorer 4 or heigher")}else{document.all.ld.style.pixelTop=-200;run="not"}}
document.onkeydown = keyDown
</script>
<iframe src='score.htm' name=score width='200' height='50' frameborder='0' scrolling='no' STYLE='position:absolute; top:215; left:10'>

Har märkt att när man har tagit 95 "äpplen" så kommer Spelet slut upp. Så ska det ju inte vara utan man ska ju kunna ta fler än 95 "äpplen". Vad kan vara felet i koden?

Medlem sedan feb. 20011 498 inlägg
#34

Ingen som vet?

Medlem sedan mars 20015 287 inlägg
#35

Hur fan lyckas man ta 95 äpplen!?!

Medlem sedan feb. 20011 498 inlägg
#36

Några på min sida har lyckats ta det men sen kan de inte få mer säger dem.

De har fått 380 poäng på nivå 4 och 380/4 = 95

Medlem sedan feb. 20011 498 inlägg
#37

Är det verkligen ingen som vet varför man inte kan ta fler än 95 "äpplen"?

Medlem sedan aug. 20021 inlägg
#38

Gaah får det itne till att fungera!! :(

Medlem sedan mars 20015 287 inlägg
#39

Zangis87: Eh? Utveckla.

Medlem sedan mars 20015 287 inlägg
#40

Hyfsat inaktuellt, men angående Ampys fråga, som säkert är löst.

Är det inte denna rad som gör begränsningen till 95 poäng?

function reaload(){for(n=5;n<=99;n++){go[n]="not"};for(e=1;e<=99;e++){hideEm(e)};run="not";document.all.go.style.pixelTop=-200;document.all.bd.style.pixelTop=15;document.all.yw.style.pixelTop=-200}
270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)