Προς το περιεχόμενο

Ερώτηση σε javascript


RcManiac

Προτεινόμενες αναρτήσεις

Δημοσ.

Έστω ότι έχουμε αυτόν τον κώδικα , πως μπορώ κάθε φορά που το πατάω να με πηγαίνει στην επόμενη συντεταγμένη;;

Δεν θέλω να επαναλαμβάνεται 2 φορές η ίδια συντεταγμένη , όταν φτάσω στην τελευταία να ξεκινάει πάλι από την αρχή.

Υπάρχει κάποιος τρόπος ;;

 

 

 

>javascript:selectAllUnits(true);var coords='778|851 778|852 778|853 778|854 778|855 ';var doc=document;var eleDoc=(window.frames.length>0)?window.main.document:document;function fnFillRallyPoint(){var coord=coords.split(' ');var coordSplit=coord[Math.floor(Math.random()*coord.length)].split('|');eleDoc.forms[0].x.value=coordSplit[0];eleDoc.forms[0].y.value=coordSplit[1];var lights=parseInt(eleDoc.forms[0].light.nextSibling.nextSibling.innerHTML.match(/\d+/));if(lights>lc){eleDoc.forms[0].light.value=lc;}else{eleDoc.forms[0].light.value=lights;}var mas=parseInt(eleDoc.forms[0].marcher.nextSibling.nextSibling.innerHTML.match(/\d+/));if(mas>ma){eleDoc.forms[0].marcher.value=ma;}else{eleDoc.forms[0].marcher.value=mas;}var hcs=parseInt(eleDoc.forms[0].heavy.nextSibling.nextSibling.innerHTML.match(/\d+/));if(hcs>hc){eleDoc.forms[0].heavy.value=hc;}else{eleDoc.forms[0].heavy.value=hcs;}var scouts=parseInt(eleDoc.forms[0].spy.nextSibling.nextSibling.innerHTML.match(/\d+/));if(scouts>sc){eleDoc.forms[0].spy.value=sc;}else{eleDoc.forms[0].spy.value=scouts;}var rams=parseInt(eleDoc.forms[0].ram.nextSibling.nextSibling.innerHTML.match(/\d+/));if(rams>0){eleDoc.forms[0].ram.value=1;}else{var cats=parseInt(eleDoc.forms[0].catapult.nextSibling.nextSibling.innerHTML.match(/\d+/));if(cats>0){eleDoc.forms[0].catapult.value=1;}}}fnFillRallyPoint();

Δημοσ.

Σκέφτηκες να βάλεις τις συντεταγμένες σε ένα πίνακα δύο διαστάσεων; Το τα τις έχει όλες τις συντεταγμένες χύμα μέσα σε ένα String δεν μου φαίνεται και η καλύτερη λύση.

Φτιάξε έναν πίνακα δύο διαστάσεων [n][2], όπου η διάσταση x θα κρατάει τις τιμές των x και y τιμών των συντεταγμένων σου. Δηλαδή, έστω ότι έχεις τα σημεία (32.4535, 56.23423), (15.321,76,3424) και (34.432, 65.2342). Ο πίνακας σου θα είναι

32.4535, 56.23423

15.321,76,3424

34.432, 65.2342

 

Κάθε φορά που θα θες να πηγαίνεις στην επόμενη συντεταγμένη

  • Θα αυξάνεις το y κατά 1
  • Εάν το y+1 είναι μεγαλύτερο από το μήκος του πίνακα, τότε y=0

 

Δεν έκατσα να διαβάσω όλον τον κώδικα, αλλά εάν κατάλαβα καλά κάτι τέτοιο θες. Ελπίζω να βοήθησα.

Δημοσ.

Για τσέκαρε αν ο παρακάτω κώδικας μπορεί να προσαρμοστεί στις ανάγκες σου

 

>
<HTML>
<HEAD>

<script LANGUAGE="JavaScript">
<!-- Beginning of JavaScript -
function TestCoords (coords) 
{
	if ( typeof TestCoords.counter == 'undefined' ) 
		TestCoords.counter = 0;
	
	var coord=coords.split(' ');
	
	if (TestCoords.counter >= coord.length) TestCoords.counter = 0;	
	
	var coordSplit = coord[TestCoords.counter].split('|');
	TestCoords.counter++;
	
	alert("x = " + coordSplit[0] + ", y = " + coordSplit[1]);
}
// - End of JavaScript - -->
</SCRIPT>

</HEAD>


<BODY>

 <FORM>
   <INPUT NAME="submit" TYPE=Button VALUE="Show Me" onClick="javascript:var coords='11|12 21|22 31|32 41|42 51|52';TestCoords(coords)">
 </FORM>

</BODY>
</HTML>

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...