395
edits
m (→A hash based version (recommended): fix confusing and broken example and add another one) |
Philosopher (talk | contribs) m (pedantry: indentation) |
||
Line 7: | Line 7: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var wp1 = 0; | |||
var wp1alt = 0; | |||
var wp1dist = 0; | |||
var wp1angle = 0; | |||
var wp1length = 0; | |||
var wp1id = ""; | |||
var wp1brg = 0; | |||
var wp2 = 0; | |||
var wp2alt = 0; | |||
var wp2dist = 0; | |||
var wp2angle = 0; | |||
var wp2length = 0; | |||
var wp2id = ""; | |||
var wp2brg = 0; | |||
var wp3 = 0; | |||
var wp3alt = 0; | |||
var wp3dist = 0; | |||
var wp3angle = 0; | |||
var wp3length = 0; | |||
var wp3id = ""; | |||
var wp3brg = 0; | |||
var wp4 = 0; | |||
var wp4alt = 0; | |||
var wp4dist = 0; | |||
var wp4angle = 0; | |||
var wp4length = 0; | |||
var wp4id = ""; | |||
var wp4brg = 0; | |||
var wp5 = 0; | |||
var wp5alt = 0; | |||
var wp5dist = 0; | |||
var wp5angle = 0; | |||
var wp5length = 0; | |||
var wp5id = ""; | |||
var wp5brg = 0; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 67: | Line 67: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoints = ["wp1","wp2","wp3","wp4","wp5"]; | var waypoints = ["wp1","wp2","wp3","wp4","wp5"]; | ||
print( waypoints[0] ); # print wp1 | |||
print( waypoints[1] ); # print wp2 | |||
print( waypoints[2] ); # print wp3 | |||
print( waypoints[3] ); # print wp4 | |||
print( waypoints[4] ); # print wp5 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 79: | Line 79: | ||
var waypoints = ["wp1","wp2","wp3","wp4","wp5"]; | var waypoints = ["wp1","wp2","wp3","wp4","wp5"]; | ||
for(var index; index < size(waypoints); index=index+1) { | for(var index; index < size(waypoints); index=index+1) { | ||
print(waypoints[index]); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 88: | Line 88: | ||
var waypoints = ["wp1","wp2","wp3","wp4","wp5"]; | var waypoints = ["wp1","wp2","wp3","wp4","wp5"]; | ||
forindex(var index; waypoints) { | forindex(var index; waypoints) { | ||
print(waypoints[index]); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 97: | Line 97: | ||
var waypoints = ["wp1","wp2","wp3","wp4","wp5"]; | var waypoints = ["wp1","wp2","wp3","wp4","wp5"]; | ||
foreach(var wpt; waypoints) { | foreach(var wpt; waypoints) { | ||
print(wpt); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 104: | Line 104: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var wp4 = 0; # waypoint number | var wp4 = 0; # waypoint number | ||
var wp4alt = 0; # waypoint altitude | var wp4alt = 0; # waypoint altitude | ||
var wp4dist = 0; # waypoint distance | var wp4dist = 0; # waypoint distance | ||
var wp4angle = 0; #waypoint angle | var wp4angle = 0; # waypoint angle | ||
var wp4length = 0; # waypoint length | var wp4length = 0; # waypoint length | ||
var wp4id = ""; | var wp4id = ""; # waypoint id | ||
var wp4brg = 0; # waypoint bearing | var wp4brg = 0; # waypoint bearing | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 120: | Line 120: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var wp4 = 0; # waypoint number | var wp4 = 0; # waypoint number | ||
var wp4alt = 0; # waypoint altitude | var wp4alt = 0; # waypoint altitude | ||
var wp4dist = 0; # waypoint distance | var wp4dist = 0; # waypoint distance | ||
var wp4angle = 0; #waypoint angle | var wp4angle = 0; # waypoint angle | ||
var wp4length = 0; # waypoint length | var wp4length = 0; # waypoint length | ||
var wp4id = ""; | var wp4id = ""; # waypoint id | ||
var wp4brg = 0; # waypoint bearing | var wp4brg = 0; # waypoint bearing | ||
var waypoint4 = [wp4,wp4alt,wp4dist,wp4angle,wp4length,wp4id, wp4brg]; | var waypoint4 = [wp4,wp4alt,wp4dist,wp4angle,wp4length,wp4id, wp4brg]; | ||
Line 137: | Line 137: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var wp4 = 1; # waypoint number | var wp4 = 1; # waypoint number | ||
var wp4alt = 1000; # waypoint altitude | var wp4alt = 1000; # waypoint altitude | ||
var wp4dist = 20.4; # waypoint distance | var wp4dist = 20.4; # waypoint distance | ||
var wp4angle = 33.4; #waypoint angle | var wp4angle = 33.4; #waypoint angle | ||
var wp4length = 12; # waypoint length | var wp4length = 12; # waypoint length | ||
var wp4id = "none"; | var wp4id = "none"; # waypoint id | ||
var wp4brg = 122; # waypoint bearing | var wp4brg = 122; # waypoint bearing | ||
Line 179: | Line 179: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoints = [[1,1000,12,22,44,"none", 33], [2,1500,22,42,14,"none", 133]] | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 185: | Line 185: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoints = [[1,1000,12,22,44,"none", 33], [2,1500,22,42,14,"none", 133]] | |||
print(waypoints[0][0]) # prints 1 | |||
print(waypoints[0][1]) # prints 1000 | |||
print(waypoints[1][0]) # prints 2 | |||
print(waypoints[1][1]) # prints 1500 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 195: | Line 195: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var NUMBER=0; var ALTITUDE=1; var DISTANCE=2; var ANGLE=3; var LENGTH=4; var ID=5; var BRG=6; | |||
var waypoints = [[1,1000,12,22,44,"none", 33], [2,1500,22,42,14,"none", 133]] | |||
print(waypoints[0][ALTITUDE]) # prints 1 | |||
print(waypoints[0][DISTANCE]) # prints 1000 | |||
print(waypoints[1][ALTITUDE]) # prints 2 | |||
print(waypoints[1][DISTANCE]) # prints 1500 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 206: | Line 206: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var NUMBER=0; var ALTITUDE=1; var DISTANCE=2; var ANGLE=3; var LENGTH=4; var ID=5; var BRG=6; | |||
var waypoints = [[1,1000,12,22,44,"none", 33], [2,1500,22,42,14,"none", 133]] | |||
# print the altitude for each waypoint in the vector: | |||
foreach(var waypoint; waypoints) { | |||
print( waypoint[ALTITUDE] ); | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 218: | Line 218: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var NUMBER=0; var ALTITUDE=1; var DISTANCE=2; var ANGLE=3; var LENGTH=4; var ID=5; var BRG=6; | |||
var waypoints = [[1,1000,12,22,44,"none", 33], [2,1500,22,42,14,"none", 133]] | |||
print(waypoints[0][ALTITUDE]) # prints 1 | |||
print(waypoints[0][DISTANCE]) # prints 1000 | |||
print(waypoints[1][ALTITUDE]) # prints 2 | |||
print(waypoints[1][DISTANCE]) # prints 1500 | |||
append(waypoints, [3,3000,122,212,34,"none", 133] ); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 231: | Line 231: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var NUMBER=0; var ALTITUDE=1; var DISTANCE=2; var ANGLE=3; var LENGTH=4; var ID=5; var BRG=6; | |||
var waypoints = [[1,1000,12,22,44,"none", 33], [2,1500,22,42,14,"none", 133]] | |||
var get = func (n,what) { | |||
return waypoints[n][what]; | |||
} | |||
var set = func (n,what,value) { | |||
waypoints[n][what]=value; | |||
} | |||
print( get(0, ALTITUDE) ) # prints 1 | |||
print( get(0, DISTANCE) ) # prints 1000 | |||
print( get(1, ALTITUDE) ) # prints 2 | |||
print( get(1, DISTANCE) ) # prints 1500 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 255: | Line 254: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var NUMBER=0; var ALTITUDE=1; var DISTANCE=2; var ANGLE=3; var LENGTH=4; var ID=5; var BRG=6; | |||
var waypoints = [[1,1000,12,22,44,"none", 33], [2,1500,22,42,14,"none", 133]] | |||
var get = func (n,what) { | |||
return waypoints[n][what]; | |||
} | |||
var set = func (n,what,value) { | |||
waypoints[n][what]=value; | |||
} | |||
var get_alt = func(n) { | |||
return get(n,ALTITUDE); | |||
} | |||
var get_dist = func(n) { | |||
return get(n,DISTANCE); | |||
} | |||
var get_angle = func(n) { | |||
return get(n,ANGLE); | |||
} | |||
var get_length = func(n) { | |||
return get(n,LENGTH); | |||
} | |||
var get_id = func(n) { | |||
return get(n,ID); | |||
} | |||
var get_brg = func(n) { | |||
return get(n,BEARING); | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 428: | Line 427: | ||
forindex(var i; NUM_ELEMENTS-1) | forindex(var i; NUM_ELEMENTS-1) | ||
waypoints[i] = new_waypoint(); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 441: | Line 440: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint1 = { | var waypoint1 = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7 | bearing:7 | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 455: | Line 454: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint = { | var waypoint = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7, | bearing:7, | ||
hello: func { | hello: func { | ||
print("Hello"); | |||
} | } | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 472: | Line 471: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint = { | var waypoint = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7, | bearing:7, | ||
hello: func { | hello: func { | ||
print("Hello"); | |||
} | } | ||
}; | }; | ||
var w = {parents: [waypoint]}; | var w = {parents: [waypoint]}; | ||
w.hello(); | w.hello(); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 493: | Line 491: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var make_waypoint = func { | var make_waypoint = func { | ||
return { parents:[waypoint] }; | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 503: | Line 499: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint = { | var waypoint = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7, | bearing:7, | ||
new: func { | new: func { | ||
return {parents:[waypoint]} | |||
} | } | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 530: | Line 526: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var new = func { | var new = func { | ||
return {parents:arg}; | |||
} | } | ||
Line 544: | Line 540: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var new = func(classes...) { | var new = func(classes...) { | ||
return {parents:classes}; | |||
} | } | ||
Line 574: | Line 570: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint = { | var waypoint = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7, | bearing:7, | ||
new: func { | new: func { | ||
return {parents:[waypoint]}; | |||
}, | }, | ||
show_number: func { | show_number: func { | ||
print(me.number); | |||
} | } | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 596: | Line 592: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint = { | var waypoint = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7, | bearing:7, | ||
new: func(n) { | new: func(n) { | ||
return {parents:[waypoint]}; | |||
}, | }, | ||
show_number: func { | show_number: func { | ||
print(me.number); | |||
} | } | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 618: | Line 614: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
new: func(n) { | new: func(n) { | ||
var t={parents:[waypoint]}; | |||
t.number = n; | |||
return t; | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 628: | Line 624: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint = { | var waypoint = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7, | bearing:7, | ||
new: func(n) { | new: func(n) { | ||
var t={parents:[waypoint]}; | |||
t.number = n; | |||
return t; | |||
}, | }, | ||
show_number: func { | show_number: func { | ||
print(me.number); | |||
} | } | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 651: | Line 647: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint = { | var waypoint = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7, | bearing:7, | ||
new: func(n) { | new: func(n) { | ||
var t={parents:[waypoint]}; | |||
t.number = n; | |||
return t; | |||
}, | }, | ||
}; | }; | ||
Line 680: | Line 676: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var waypoint = { | var waypoint = { | ||
number:1, | number:1, | ||
altitude:2, | altitude:2, | ||
distance:3, | distance:3, | ||
angle:4, | angle:4, | ||
length:5, | length:5, | ||
ID:6, | ID:6, | ||
bearing:7, | bearing:7, | ||
new: func(n) { | new: func(n) { | ||
var t={parents:[waypoint]}; | |||
t.number = n; | |||
return t; | |||
}, | }, | ||
dump: func { | dump: func { | ||
print("Altitude:", me.altitude, " distance:", me.distance, " Bearing:", me.bearing); | |||
} | } | ||
}; | }; | ||
Line 701: | Line 697: | ||
foreach(var w; waypoints) { | foreach(var w; waypoints) { | ||
w.dump(); | |||
} | } | ||
Line 709: | Line 705: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var new = func return {parents:arg}; | |||
var propulsion = {horse_power:0}; | |||
var vehicle = {tyres:0}; | |||
# create different propulsion classes: | |||
var engine = new(propulsion); | |||
var piston_engine = new (engine); | |||
var turboprop_engine = new(engine); | |||
var jet_engine = new(engine); | |||
var car = new(vehicle, propulsion); | |||
var boat = new(vehicle, propulsion); | |||
var airplane = new(vehicle, propulsion); | |||
# seaplane is a new type of vehicle that inherits from the classes boat and airplane | |||
var seaplane = new(boat, airplane); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 742: | Line 738: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var new = func return {parents:arg}; | |||
var animal = {eyes:0,ears:0}; | |||
var dog = new(animal); | |||
var cat = new(animal); | |||
var bird = new(animal); | |||
var spider = new(animal); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 754: | Line 750: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var new = func return {parents:arg}; | |||
var animal = {eyes:0,ears:0,legs:0}; | |||
var dog = new(animal); | |||
var cat = new(animal); | |||
var bird = new(animal); | |||
var spider = new(animal); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 766: | Line 762: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
var new = func return {parents:arg}; | |||
var leg = {length:0}; | |||
var animal = {eyes:0,ears:0,legs:[] }; | |||
var dog = new(animal); | |||
var cat = new(animal); | |||
var bird = new(animal); | |||
var spider = new(animal); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
edits