Array – Talk
m (Reverted edits by Heecf..... (talk) to last revision by Messiah2) |
No edit summary |
||
Line 13: | Line 13: | ||
not working, why? I've also tried "tmp = tmp - val1;" --[[User:Messiah2|MessiahUA]] 16:14, 19 September 2008 (CEST) | not working, why? I've also tried "tmp = tmp - val1;" --[[User:Messiah2|MessiahUA]] 16:14, 19 September 2008 (CEST) | ||
How are arrays stored in memory? Last night, I was successfully able to create an array containing 26905 elements. (one for each land grid square on Altis) | |||
<code>[] spawn | |||
{ | |||
_number = 0; | |||
_test = []; | |||
_brushes = ["Solid","Horizontal","Vertical","Grid","FDiagonal","BDiagonal","DiagGrid","Cross"]; | |||
for "_i" from 0 to 308 do | |||
{ | |||
for "_o" from 0 to 308 do | |||
{ | |||
if (!surfaceIsWater [(_o * 100) + 50, (_i * 100) + 50]) then | |||
{ | |||
_name = format["%1_%2",_o,_i]; | |||
_marker = createMarker [_name, [(_o * 100) + 50, (_i * 100) + 50]]; | |||
_marker setMarkerShape "RECTANGLE"; | |||
_marker setMarkerSize [50,50]; | |||
_marker setMarkerBrush (_brushes select (floor random (count _brushes))); | |||
_marker setMarkerColor "ColorRed"; | |||
_number = _number + 1; | |||
_test pushBack _marker; | |||
}; | |||
}; | |||
sleep 0.01; | |||
}; | |||
hint str _number; | |||
player setVariable ["holy_shit", _test]; | |||
_test = nil; | |||
};</code> | |||
I was able to confirm that the array did actually contain my elements with: | |||
<code>'''//ran from debug console''' | |||
_array = (player getVariable "holy_shit"); | |||
_array spawn | |||
{ | |||
for "_i" from 0 to ((count _this) - 1) do | |||
{ | |||
hintSilent (_this select _i); | |||
sleep 0.05; | |||
}; | |||
};</code> | |||
I thought it was strange, at first, that my game didn't crash from running out of memory, but after doing some quick math everything seems to be in order. ASCII uses 7 bits and I was saving 5-6 character strings so:<br> | |||
7 * 6 = 42<br> | |||
42 * 26905 = 1130010 '''bits'''<br> | |||
1130010 / 8 = 141251 '''bytes'''<br> | |||
141251 / 1000 = 141 '''megabytes'''<br> | |||
- [https://community.bistudio.com/wiki/User_talk:DreadedEntity DreadedEntity] |
Revision as of 19:13, 7 December 2014
Should there be any comment here or in random about randomly selecting an array element given the rounding rules? Or am I being ridiculous?
e.g.
_myArray select ((random (count _myArray)) - 0.5)
--Mr.Peanut 21:11, 28 September 2006 (CEST)
tmp = [];
val1 = [1,2,3];
val2 = [3,4,5];
tmp = tmp + [val1];
tmp = tmp + [val2];
tmp = tmp - [val1];
not working, why? I've also tried "tmp = tmp - val1;" --MessiahUA 16:14, 19 September 2008 (CEST)
How are arrays stored in memory? Last night, I was successfully able to create an array containing 26905 elements. (one for each land grid square on Altis)
[] spawn
{
_number = 0;
_test = [];
_brushes = ["Solid","Horizontal","Vertical","Grid","FDiagonal","BDiagonal","DiagGrid","Cross"];
for "_i" from 0 to 308 do
{
for "_o" from 0 to 308 do
{
if (!surfaceIsWater [(_o * 100) + 50, (_i * 100) + 50]) then
{
_name = format["%1_%2",_o,_i];
_marker = createMarker [_name, [(_o * 100) + 50, (_i * 100) + 50]];
_marker setMarkerShape "RECTANGLE";
_marker setMarkerSize [50,50];
_marker setMarkerBrush (_brushes select (floor random (count _brushes)));
_marker setMarkerColor "ColorRed";
_number = _number + 1;
_test pushBack _marker;
};
};
sleep 0.01;
};
hint str _number;
player setVariable ["holy_shit", _test];
_test = nil;
};
I was able to confirm that the array did actually contain my elements with:
//ran from debug console
_array = (player getVariable "holy_shit");
_array spawn
{
for "_i" from 0 to ((count _this) - 1) do
{
hintSilent (_this select _i);
sleep 0.05;
};
};
I thought it was strange, at first, that my game didn't crash from running out of memory, but after doing some quick math everything seems to be in order. ASCII uses 7 bits and I was saving 5-6 character strings so:
7 * 6 = 42
42 * 26905 = 1130010 bits
1130010 / 8 = 141251 bytes
141251 / 1000 = 141 megabytes
- DreadedEntity