He he, du bad ju om det... :)
göra en topplista till ett snakespel i dhtml
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> S n a k e </title> <style> input{width:25px;border-width: 0px;background-color: #FCC95A;
Läs frågan i sin helhet →Jo, man tackar. Då klar den en attack iaf. Nu vet jag iofs inte hur hårt du försökte, men men. :)
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> <a href="#" onclick="level=2;startIt()"><img src="bilder/2.gif" border="0"></a> <a href="#" onclick="level=3;startIt()"><img src="bilder/3.gif" border="0"></a> <a href="#" onclick="level=4;startIt()"><img src="bilder/4.gif" border="0"></a> <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>
Ey solbulle! CInt är inte bra med tanke på dess minimala begränsning.
ehy! Ska alla ha snake på sin sida?? Då ska jag också ha det!!
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> <a href="#" onclick="level=2;startIt()"><img src="bilder/2.gif" border="0"></a> <a href="#" onclick="level=3;startIt()"><img src="bilder/3.gif" border="0"></a> <a href="#" onclick="level=4;startIt()"><img src="bilder/4.gif" border="0"></a> <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>
Erik Juhlin:
Nu är jag inte alls med???
Ey solbulle! CInt är inte bra med tanke på dess minimala begränsning.
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
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,
:r Just det... glömde det :OO
Ja, nu é det OT så det stänker...
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å. ;) :)
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?
<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?
Ingen som vet?
Hur fan lyckas man ta 95 äpplen!?!
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
Är det verkligen ingen som vet varför man inte kan ta fler än 95 "äpplen"?
Gaah får det itne till att fungera!! :(
Zangis87: Eh? Utveckla.
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}



