Avatar billede SilenceWar Nybegynder
08. november 2010 - 17:14 Der er 39 kommentarer og
1 løsning

ASP Subroutines

Hej alle eksperter!

For laaaang tid siden skrev jeg med en fra USA.
Mit spørgsmål var dengang hvordan jeg fik lavet mig et landkort til mit tekstbaserede spil her på nettet..

Ham og jeg fik i løbet af samtalen skrevet følgende kode - hvori han skrev kommentarer ved noget jeg skulle ændre.. Problemet er bare - at jeg slet ikke kan forstå hvad koden skal gøre og derfor ikke aner hvad jeg skal rette... :s ? ?

Håber I kan hjælpe - selvom der er en hel del kode..
I får self top point for, at hjælpe mig igennem mit problem..

<%@Language=VBSCRIPT%>
   
    <%
    Const ROWS = 7
    Const COLS = 7
   
    ' This says return text, do you really want that in a web page
    ' Response.ContentType="text/plain"
   
    ' 1,1 is clearly just a test
    ' Call WriteState(1, 1)
   
    ' Read the code, this stops the page dead
    ' Response.End
   
    function getDb()
        strConn = "Driver={MySQL ODBC 3.51 Driver};server=mydb17.surftown.dk;Database=WorldWa_Bkock;uid=WorldWa_bkock;pwd=coolspil;"
        set Net= Server.CreateObject("ADODB.Connection")
        Net.Open strConn
        strIP = Request.ServerVariables("REMOTE_ADDR")
      set getDb = Net
    end function
   
    Sub WriteState(x, y)
            Response.Write "var MapState = {"
            Response.Write "'X' : " & x & ","
            Response.Write "'Y' : " & y & ","
            Response.Write "'ROWS' : " & ROWS & ","
            Response.Write "'COLS' : " & COLS & ","
            Response.Write "'IMG_WIDTH' : 40,"
            Response.Write "'IMG_HEIGHT' : 40,"
            Response.Write "'IMG_KEY' : ["
            Response.Write "'http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_yellow.png',"
            Response.Write "'http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_purple.png',"
            Response.Write "'http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_red.png',"
            Response.Write "],"
            Response.Write "'DETAIL' : ["
            Call WriteStateDetail(x, y)
            Response.Write "],"
            Response.Write "};"
    End Sub
   
    Sub WriteStateDetail(x, y)
            Dim sql, rs, x2, y2, db
            Dim grid()
            ReDim grid(COLS,ROWS)
     
            for y2=0 to ROWS-1
                    for x2=0 to COLS-1
                            grid(x2,y2) = 0
                    next
            next
     
            sql = "SELECT x,y,tip FROM map" _
                    & " where x between " & x & " and " & (x+COLS-1) _
                    & " and y between " & y & " and " & (y+ROWS-1)
            Set db = getDb()
            Set rs = db.execute(sql)
            Do While Not rs.EOF
                x2 = CInt(rs("x")) - x
                    y2 = CInt(rs("y")) - y
                    grid(x2,y2) = rs("tip")
                    rs.MoveNext
            Loop
            db.close
           
            for y2=0 to ROWS-1
                    Response.Write "["
                    for x2=0 to COLS-1
                            if x2>0 then Response.Write ","
                            Response.Write grid(x2,y2)
                    next
                    Response.Write "],"
            next
    End Sub
    %>
           
           
    <script type="application/javascript">
    <%
        ' where, exactly, do x2 and y2 come from?
        'Call WriteState(x2, y2)
        reqX = 0
        reqY = 0
        If Request.querystring("x") <> "" Then
            reqX = CInt(Request.querystring("x"))
        End If
        If Request.querystring("y") <> "" Then
            reqY = CInt(Request.querystring("y"))
        End If
        Call WriteState(reqX, reqY)
    %>
drawDetail(MapState);
<!-- this script tag is a concern; you will want to define drawDetail and the rest of the web page -->
    </script>


Er der nogen der har et foreslag! Al hjælp vil være værdsat! :)
Avatar billede Slettet bruger
08. november 2010 - 19:32 #1
where, exactly, do x2 and y2 come from?
Avatar billede SilenceWar Nybegynder
08. november 2010 - 20:35 #2
Jeg går stærkt ud fra, at det vil være et x og et y koordinat udtrukket fra databasen hvis det vil hjælpe..?
Avatar billede SilenceWar Nybegynder
08. november 2010 - 20:35 #3
Det er mere pointen i, at jeg slet ikke kan ramme den rigtige kombination til, at få systemet til at virke.. Uanset hvad jeg gør - rammer jeg blot en hvid skærm..
Avatar billede Slettet bruger
08. november 2010 - 20:43 #4
nu er den kodelinje så ikke aktiv: 'Call WriteState(x2, y2)

så har x2, y2 nogen værdi?
Avatar billede Slettet bruger
08. november 2010 - 20:44 #5
mig der vrøvler :-)
Avatar billede SilenceWar Nybegynder
08. november 2010 - 21:00 #6
Ikke pt.
Men hvis det er - kan jeg blot skrive en sql kommando til, at hente den?

fx kan der hentes koordinat på:

x2 = VHenter("x")
og
y2 = VHenter("y")

Der har jeg nogle liggende..

Ved ikke om det er det du mener??
Avatar billede SilenceWar Nybegynder
08. november 2010 - 21:01 #7
Men deres værdier kan ligge imellem 1 og 999 for at være helt præcis.. Det er an på hvor meget kortet i mit tekst baserede spil ender med, at blive udvidet..

Hvad mener du med, at du vrøvler? :)
Avatar billede Slettet bruger
08. november 2010 - 21:09 #8
Jeg havde ikke læst ordentligt på din kode, derfor var det noget vrøvl :-)

Hvis ROWS eller COLS er = 0 sker der vist ikke så meget
Avatar billede SilenceWar Nybegynder
08. november 2010 - 21:36 #9
Det er de da heller ikke?
Avatar billede Slettet bruger
08. november 2010 - 21:42 #10
og hvor bliver lige ReDim grid(COLS,ROWS) værdisat?
Avatar billede Slettet bruger
08. november 2010 - 21:47 #11
ok, det kan godt være det er mig, som har været længe oppe :-)

Men hvorfor: ReDim grid(COLS,ROWS)???
Avatar billede Slettet bruger
08. november 2010 - 21:50 #12
Ja, det er mig der sover...beklager :-)
Avatar billede SilenceWar Nybegynder
08. november 2010 - 21:55 #13
Skal jeg være ærligt? Jeg aner det ikke.. Jeg fik koden smækket i hovedet efter jeg åbenbart havde spurgt nok omkring den - så sagde han at den virkede og ignorerede mig efterfølgende..

Har du en idé til hvordan jeg ellers kan løse mit problem - hvis du altså ikke aner hvordan denne skal løses?

(og hvis du aner hvad mit egentlige problem er?)
Avatar billede Slettet bruger
08. november 2010 - 22:00 #14
Lad mig forsøge at svare på dit oprindelige spørgsmål :-)

Koden henter nogle billeder/clipart eller formattet *.png

Og.. flytter rundt på noget tekst der ligner det her [.]

Nu begynder jeg at kunne se det sjove. He he!

Som du selv skriver at koden var skrevet for laaaaang tid siden, så er de links heller ikke meget værd
Avatar billede Slettet bruger
08. november 2010 - 22:03 #15
Hvad mener du med landkort?
Avatar billede SilenceWar Nybegynder
08. november 2010 - 22:21 #16
Jo ser du..

Jeg sidder og er igang med et tekstbaseret spil - og et af hovedelementerne er et landkort. Dette landkort skal være styret med koordinater (x|y) og skal ved hjælp af nogle værdier fra databasen kunne vise nogle forskellige elementer (grafisk) på skærmen..
Fx træer, søer og vigtigst af alt - byer..

Jeg ved ikke om du kender til spillene TribalWars og Travian - men det er noget i den stil jeg er helt lost med, med hensyn til kodningen bag kortet..

Der er langt links til 2 billeder fra hvert sit spil nedenfor..

http://www.tw-report.net/blog/wp-content/uploads/2009/03/maps_20090302-600x267.jpg

http://forum.travian.com/picture.php?albumid=6&pictureid=106

Det er noget i denne stil jeg mangler.. Et kort hvor spillerne kan gå ind og se sine venner og fjenders byer..
og måske med noget ajax eller alm. kodning kunne bevæge sig nord/syd/øst/vest... Spørg endelig? Vil meget gerne hjælpe..
Avatar billede Slettet bruger
08. november 2010 - 22:32 #17
Det var også noget i den stil jeg havde luret på, men hvor går det så galt?
Avatar billede SilenceWar Nybegynder
08. november 2010 - 22:54 #18
På en skala fra 1-10? Temmelig tæt på 10..

Jeg har efterhånden arbejdet en hel del med ASP (åbenlyst ikke meget med subroutines) - men har ikke alverden erfaring med javascript desværre.. Synes det er lidt en svær nød at knække selv..

Derfor jeg er gået helt i stå med hensyn til det landkort jeg havde i tankerne..
Blev glad da jeg så alle disse koder jeg fik for lang tid siden - men forstod desværre ikke meget af dem.. Blev så ikke så glad da jeg aldrig fik dem til at fungere ordentligt ;)
Avatar billede Slettet bruger
08. november 2010 - 23:01 #19
Fremmed Kode er ligesom en fremmed Kone :-)

Der er altid et eller andet der spøger!

Meeeen! siden or later skal vi jo springe ud af skabet, som en Undulat!

Er der overhovedet noget der virker?
Avatar billede SilenceWar Nybegynder
08. november 2010 - 23:17 #20
Af koden ovenfor??

Jeg kan få det skrevet ud i plan HTML kode..
Det vil sige, at hvis jeg sletter ' (kommentar-tegnet) udfor:

Response.ContentType="text/plain"

og

Call WriteState(1, 1)

...

Det vil sige, at jeg så godt kan få den til at skrive:

var MapState = {'X' : 1,'Y' : 1,'ROWS' : 7,'COLS' : 7,'IMG_WIDTH' : 40,'IMG_HEIGHT' : 40,'IMG_KEY' : ['http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_yellow.png','http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_purple.png','http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_red.png',],'DETAIL' : [[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,1,2,0],[0,0,0,2,0,0,0],[0,0,0,0,0,0,0],],};
         
         
Det lød lidt på ham fra USA som om, at dette var en god ting, at kunne få skrevet ud..
Jeg ved ikke hvor stærk du er i engelsk - men jeg kan sende dig linket med ham:?


http://www.dreamincode.net/forums/topic/177794-text-based-browser-game-map/page__p__1042268__fromsearch__1&#entry1042268

Dog synes jeg ikke folk er særlig flinke efterhånden på den der side :P
Avatar billede SilenceWar Nybegynder
08. november 2010 - 23:21 #21
Jeg kan også lade vær med, at slette min test-side.. Og så kan du kigge direkte med på

http://www.btworldwars.com

Der ser du hvad jeg ser.. :)
Avatar billede Slettet bruger
08. november 2010 - 23:25 #22
Øhh!! http://www.btworldwars.com  har jo ingen HTML?
Avatar billede SilenceWar Nybegynder
08. november 2010 - 23:34 #23
Nej? Blot til test..??

Sig ikke, at der skal gøres noget specielt med HTML før det kommer.....?
Avatar billede Slettet bruger
08. november 2010 - 23:44 #24
Jo øhhh! koden skal afvikles på serveren og ikke i min browser.

Jeg ser koden = der er noget galt
Avatar billede Slettet bruger
08. november 2010 - 23:46 #25
Hvad er det du køre med? IIS eller Apache og hvilken udbyder?
Avatar billede SilenceWar Nybegynder
08. november 2010 - 23:46 #26
Nej, grunden til du ser koden er, at:

Response.ContentType="text/plain"

er til stede..

Fjerner jeg den forsvinder det også.. Kig fx nu..

Skal der laves noget specielt HTML som afvikler koden seperat fra den der kode?
Avatar billede SilenceWar Nybegynder
08. november 2010 - 23:47 #27
Udbyder såsom SurfTown?
Eller hvilken udbyder? :)
Avatar billede Slettet bruger
08. november 2010 - 23:54 #28
Noget som springer lige op i ansigtet er:
<script type="application/javascript">


hvorefter man declarere var ? som er basic
Avatar billede SilenceWar Nybegynder
08. november 2010 - 23:56 #29
Hvad mener du med, at det springer lige op i ansigtet?
Noget galt med måden det er skrevet på, eller hvad hentyder du til?
Avatar billede Slettet bruger
09. november 2010 - 00:03 #30
jeg mener ikke at man bruger var i et javascript. Nu kan jeg jo kun se den stump af den javascript-kode. Som jo er hele sourcecoden, men nada HTML
Avatar billede SilenceWar Nybegynder
09. november 2010 - 00:05 #31
Det ikke noget du har lyst til at eksperimentere med?

- Jeg har pt. ingen html på, og har prøvet at rykke variablen ud af javascript-koden.. intet resultat.. jeg har også skiftet billederne ud til nogle rigtige for at se så... stadig intet...
Avatar billede Slettet bruger
09. november 2010 - 00:05 #32
som jeg ser koden:

         
         
    <script type="application/javascript">
    var MapState = {'X' : 0,'Y' : 0,'ROWS' : 7,'COLS' : 7,'IMG_WIDTH' : 40,'IMG_HEIGHT' : 40,'IMG_KEY' : ['http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_yellow.png','http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_purple.png','http://www.public-domain-photos.com/free-cliparts-1/signs_and_symbols/led/led_square_red.png',],'DETAIL' : [[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,1,2],[0,0,0,0,2,0,0],],};
drawDetail(MapState);
<!-- this script tag is a concern; you will want to define drawDetail and the rest of the web page -->
    </script>
Avatar billede SilenceWar Nybegynder
09. november 2010 - 00:12 #33
Ja, og indenfor ser den sådan her ud:

<%@Language=VBSCRIPT%>
 
    <%
    Const ROWS = 7
    Const COLS = 7
x = 2
y = 2
   
  Response.ContentType="text/plain"
    function getDb()
        strConn = "Driver={MySQL ODBC 3.51 Driver};server=mydb17.surftown.dk;Database=WorldWa_Bkock;uid=WorldWa_bkock;pwd=coolspil;"
        set Net= Server.CreateObject("ADODB.Connection")
        Net.Open strConn
        strIP = Request.ServerVariables("REMOTE_ADDR")
      set getDb = Net
    end function
 
    Sub WriteState(x, y)
            Response.Write "var MapState = {"
            Response.Write "'X' : " & x & ","
            Response.Write "'Y' : " & y & ","
            Response.Write "'ROWS' : " & ROWS & ","
            Response.Write "'COLS' : " & COLS & ","
            Response.Write "'IMG_WIDTH' : 40,"
            Response.Write "'IMG_HEIGHT' : 40,"
            Response.Write "'IMG_KEY' : ["
            Response.Write "'http://cdn.iconfinder.net/data/icons/softwaredemo/PNG/128x128/Box_Red.png',"
            Response.Write "'http://cdn.iconfinder.net/data/icons/softwaredemo/PNG/128x128/Box_Red.png',"
            Response.Write "'http://cdn.iconfinder.net/data/icons/softwaredemo/PNG/128x128/Box_Red.png',"
            Response.Write "],"
            Response.Write "'DETAIL' : ["
            Call WriteStateDetail(x, y)
            Response.Write "],"
            Response.Write "};"
    End Sub
 
    Sub WriteStateDetail(x, y)
            Dim sql, rs, x2, y2, db
            Dim grid()
            ReDim grid(COLS,ROWS)
   
            for y2=0 to ROWS-1
                    for x2=0 to COLS-1
                            grid(x2,y2) = 0
                    next
            next
   
            sql = "SELECT x,y,tip FROM map" _
                    & " where x between " & x & " and " & (x+COLS-1) _
                    & " and y between " & y & " and " & (y+ROWS-1)
            Set db = getDb()
            Set rs = db.execute(sql)
            Do While Not rs.EOF
                x2 = CInt(rs("x")) - x
                    y2 = CInt(rs("y")) - y
                    grid(x2,y2) = rs("tip")
                    rs.MoveNext
            Loop
            db.close
         
            for y2=0 to ROWS-1
                    Response.Write "["
                    for x2=0 to COLS-1
                            if x2>0 then Response.Write ","
                            Response.Write grid(x2,y2)
                    next
                    Response.Write "],"
            next
    End Sub
    %>
         
         
    <script type="application/javascript">
    <%
        reqX = 0
        reqY = 0
        If Request.querystring("x") <> "" Then
            reqX = CInt(Request.querystring("x"))
        End If
        If Request.querystring("y") <> "" Then
            reqY = CInt(Request.querystring("y"))
        End If
        Call WriteState(reqX, reqY)
    %>
drawDetail(MapState);
    </script>
Avatar billede Slettet bruger
09. november 2010 - 00:16 #34
Helst ikke! Jo hvis jeg havde min egen server ville det ikke være noget problem.

Den kode du startede ud med, passer ikke med den kode jeg ser på hjemmesiden. Hvorfor gør den ikke det?
Avatar billede SilenceWar Nybegynder
09. november 2010 - 00:20 #35
Med den du ser på hjemmesiden?
Det jeg lige har lagt op er kopieret direkte ind..
Det er højst nogle x'er og y'er jeg har rykket med i løbet af aftenen for at teste de forskellige ting.. :s

Det eneste du ser på hjemmesiden er resultatet fra:

<script type="application/javascript">
    <%
        reqX = 0
        reqY = 0
        If Request.querystring("x") <> "" Then
            reqX = CInt(Request.querystring("x"))
        End If
        If Request.querystring("y") <> "" Then
            reqY = CInt(Request.querystring("y"))
        End If
        Call WriteState(reqX, reqY)
    %>
drawDetail(MapState);
    </script>
Avatar billede SilenceWar Nybegynder
09. november 2010 - 00:21 #36
Men bliver nødt til, at smutte nu hvis jeg skal kunne klare noget i morgen...
Jeg skriver hurtigst muligt tilbage.. :)
Avatar billede Slettet bruger
09. november 2010 - 00:22 #37
har du koden til dette: drawDetail(MapState);

Anden sidste linje
Avatar billede Slettet bruger
09. november 2010 - 00:26 #38
ups! ja klokken blev mange.

Andre må også gerne forsøge at løse gåden :-)
Avatar billede SilenceWar Nybegynder
09. november 2010 - 07:11 #39
Om jeg har koden?
Det jeg lagde online sidst lige inden jeg gik i seng i går, er al den kode jeg har på test siden.
Ctrl + a :)

måske det er meningen, at den skal laves om til en funktion så
drawDetail har noget at gå efter?
Avatar billede SilenceWar Nybegynder
06. december 2010 - 20:17 #40
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester