Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Terror
HV veteran

liitunud: 08.11.2001
|
07.01.2009 20:07:49
Väike abi vaja Javascriptiga |
|
|
Tahan ühele mängule vajaminevat scripti täiustada, hetkel näeb asi välja nii:
javascript: var report = document.body.innerHTML; var coords = report.match (/>\d{3}\|\d{3}</g);for ( var i=coords.length-1; i>=0; --i ){document.writeln("[village]" + coords[i].substring(1,8)+"[/village]<br>")}; |
Mis ta siis teeb: Teatud lehel kus on kordinaadid loeb ta need ning paneb nad [village][/village] tagidesse.
Välja näeb asi nii:
[village]810|607[/village]
[village]812|607[/village]
[village]810|608[/village]
[village]807|606[/village]
[village]775|722[/village]
...
Oleks aga vaja teha nii, et ta nummerdaks asjad ka ära:
1 [village]810|607[/village]
2 [village]812|607[/village]
3 [village]810|608[/village]
4 [village]807|606[/village]
5 [village]775|722[/village]
...
Peaks suhteliselt litsalt teostatav olema, kuid ei oska ise seda keelt ning ei tea ka mis "käsklust" pean otsima, et isearetamisega alustada.
Ehk keegi aitab hädast välja?
|
|
Kommentaarid: 100 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
2 :: |
91 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
07.01.2009 20:16:17
|
|
|
Lihtsalt lisad väikese loenduri:
javascript:
|
var report = document.body.innerHTML; var coords = report.match (/>\d{3}\|\d{3}</g); var counter = 0; for ( var i=coords.length-1; i>=0; --i ){ counter++; document.writeln("" + counter + "[village]" + coords[i].substring(1,8)+"[/village]<br>"); }
|
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
Terror
HV veteran

liitunud: 08.11.2001
|
07.01.2009 21:29:47
|
|
|
Suured tänud asi funkab
Samas tõusid ka minu abitsioonid selle scripti osas
Kõigepealt et pilt selgemaks saaks: Tegu on mänguga kus on nö maailma kaart. Igal külal on oma kordinaadid. Maailm on jaotatud kontinentideks.
Näit 933|241 kordinaatidega küla asub K29's, 931|602 asub K69's.
Praegu teeb script sellise listi (ühest suvalisesest mängijast):
1 [village]933|241[/village]
2 [village]925|246[/village]
3 [village]937|235[/village]
4 [village]707|601[/village]
5 [village]710|605[/village]
6 [village]929|238[/village]
7 [village]931|602[/village]
8 [village]932|603[/village]
9 [village]790|593[/village]
10 [village]933|604[/village]
11 [village]725|598[/village]
12 [village]933|603[/village]
13 [village]930|601[/village]
14 [village]788|588[/village]
15 [village]789|591[/village]
16 [village]789|590[/village]
17 [village]927|243[/village]
Kui keeruline on asja panna neid külasid Kontinentide järgi järjestama?
Et näiteks alustab väiksemast ning liigub suuremaks välja.
-e-
Praegu script selline:
javascript: var report = document.body.innerHTML; var coords = report.match (/>\d{3}\|\d{3}</g); var counter = 0; for ( var i=coords.length-1; i>=0; --i ){counter++; document.writeln("" + counter + " [village]" + coords[i].substring(1,8)+"[/village]<br>");}; |
Peaks mingi "sort" funktsiooni sisse istutama?
|
|
Kommentaarid: 100 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
2 :: |
91 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
08.01.2009 01:39:56
|
|
|
Terror kirjutas: |
Näit 933|241 kordinaatidega küla asub K29's, 931|602 asub K69's.
Kui keeruline on asja panna neid külasid Kontinentide järgi järjestama? |
Nojaa... aga kustkohast seda teada saab, mis küla millise kontinendiga seotud on?
sort() funktsioon on JavaScriptis täiesti olemas... lihtsalt googelda veidi.
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
Terror
HV veteran

liitunud: 08.11.2001
|
08.01.2009 08:25:20
|
|
|
Kordinaatide Esimesed nr'd tähistavad Kontinenti. Näit 933|241 kordinaatidega küla asub K29's
Kuid ma ei mõista juba seda kuhu see "sort" toppida. seal kus ta juba asja välja kirjutab on ka juba counter sees, seega peaks need külad juba enne counterit sorteeritud olema vms
|
|
Kommentaarid: 100 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
2 :: |
91 |
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
08.01.2009 10:19:05
|
|
|
selle for tsükli sees, sa peaks koordinaadid arraysse panema, alles peale seda teed sorteerimise ja lisad järjekorranumbrid ette.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
Terror
HV veteran

liitunud: 08.11.2001
|
08.01.2009 18:57:53
|
|
|
Ma hakkan enne prääksuga kükkides Narva minema, kui mingi algortimi valmis saan, minu oskused progemises on umbkaudu sellised, et ma suudan ühest scriptist mingi funktiooni teise scripti üle kopeerida suurel katse eksitus meetodil
( var i=coords.length-1; i>=0; --i ) selline rida on mulle nagu hiina keel.
NAgu paistab käib praegune ülesanne mulle mäekõrguselt üle võimete, kuid kui kellegi jaoks asi imelihtne ning viitsib selle ära kribada siia siis positiivse kommi saan ikka vastutasuks panna minimaalselt
|
|
Kommentaarid: 100 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
2 :: |
91 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
08.01.2009 19:40:55
|
|
|
Kusjuures enne saaksid sa selle funktsiooni valmis kui prääksuga kükkidega Narva
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
Terror
HV veteran

liitunud: 08.11.2001
|
08.01.2009 19:48:55
|
|
|
mikk36 kirjutas: |
Kusjuures enne saaksid sa selle funktsiooni valmis kui prääksuga kükkidega Narva  |
Anna siis mingi vihjegi
Kui sa siia valmis funktsiooni copiksid siis mul läheks pool päeva et see scripti õigesse kohta pista
|
|
Kommentaarid: 100 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
2 :: |
91 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
Terror
HV veteran

liitunud: 08.11.2001
|
08.01.2009 22:34:34
|
|
|
On mu aretises siin mingi loogika?
javascript:
var report = document.body.innerHTML;
var coords = report.match (/>\d{3}\|\d{3}</g);
function compare_villages(coords1, coords2)
{
var village1 = coords1[4]+coords1[0];
var village2 = coords2[4]+coords2[0];
return((village1 < village2) ? -1 : ((village1 > village2) ? 1 : 0));
}
var counter = 0;
coords.sort(compare_villages);
for ( var i=coords.length-1; i>=0; --i ){counter++; document.writeln("" + counter + " [village]" + coords[i].substring(1,8) +"[/village]<br>");};
|
|
|
Kommentaarid: 100 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
2 :: |
91 |
|
tagasi üles |
|
 |
nene
Kreisi kasutaja

liitunud: 20.03.2004
|
09.01.2009 00:56:49
|
|
|
Oi jah... niiviisi on see kood muidugi lühikene, aga üsna raskesti käsitletav.
Parem on lugeda need koordinaadid mingisse andmestruktuuri, sorteerida see ning siis viia tagasi algkujule.
Pikk ta sai, aga peaks toimima:
html:
|
<meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <script type="text/javascript" src="sort.js"></script> </head> <p><a href="#" onclick="return sort_coords();">Sorteeri kontinentide järgi </a></p> </ul> </body> </html>
|
javascript:
|
function sort_coords() { // read coordinates from page var coords = read_coords(); // sort by continents coords.sort(compare_continents); // output to document write_coords(coords); return false; } /** * Reads coordinates from page and returns them as array of objects. * * For example when page contains 123|456 and 112|224, then it will * return [{x:123, y:456, cont: 63}, {x:112, y:224, cont: 42}] */ function read_coords() { return map( function(raw_coord) { return { x: raw_coord.substr(1, 3), y: raw_coord.substr(5, 3), cont: raw_coord.charAt(5) + raw_coord.charAt(1) }; }, document.body.innerHTML.match(/>\d{3}\|\d{3}</g)); } function compare_continents(c1, c2){ return (c1.cont < c2.cont) ? -1 : ((c1.cont > c2.cont) ? 1 : 0); } /** * Writes coordinates back to page inside [village] tags and with numbers. */ function write_coords(coords) { return map( function(coord, i) { document.writeln("" + (i+1) + " [village]" + coord.x + "|" + coord.y + "[/village]<br />"); }, coords); } // Small helper function for transforming arrays. function map(f, arr) { var new_arr = []; for (var i=0; i<arr.length; i++) { new_arr[i] = f(arr[i], i); } return new_arr; }
|
_________________ Mõistus otsas? Pane pinusse... |
|
Kommentaarid: 24 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
23 |
|
tagasi üles |
|
 |
|