Fixed bugs in algorithm

main v2.0
DodoBirb 4 years ago
parent b7f30e1414
commit 7898b2a8c0
No known key found for this signature in database
GPG Key ID: 361CA687D5E39154

@ -59,6 +59,8 @@ ds_list_add(list, 101403)
ds_list_add(list, 112031) ds_list_add(list, 112031)
ds_list_add(list, 109211) ds_list_add(list, 109211)
ds_list_add(list, 129385) ds_list_add(list, 129385)
ds_list_add(list, 135456)
ds_list_add(list, 133711)
ds_list_add(access, 107801) ds_list_add(access, 107801)
ds_list_add(access, 109737) ds_list_add(access, 109737)
ds_list_add(access, 103777) ds_list_add(access, 103777)

@ -15,16 +15,32 @@ while (ds_list_size(access) > 0)
ds_list_delete(access, 0) ds_list_delete(access, 0)
if (ds_list_size(list) > 0) if (ds_list_size(list) > 0)
{ {
loop = 1
while (loop == 1)
{
loop = 0
ds_list_shuffle(list) ds_list_shuffle(list)
node2 = ds_list_find_value(list, 0) node2 = ds_list_find_value(list, 0)
ds_list_delete(list, 0) ds_list_delete(list, 0)
if is_array(node2)
targetnode = node2[1]
else
targetnode = node2
if ((!is_undefined(ds_map_find_value(map, targetnode))) || ds_list_find_index(access, targetnode) != -1 || node1 == targetnode)
loop = 1
} }
else if (ds_list_size(list) == 0) }
if (ds_list_size(list) == 0)
{
if is_undefined(node2)
{ {
ds_list_shuffle(access) ds_list_shuffle(access)
node2 = ds_list_find_value(access, 0) targetnode = ds_list_find_value(access, 0)
ds_list_delete(access, 0) ds_list_delete(access, 0)
} }
}
ds_map_add(map, node1, targetnode)
ds_map_add(map, targetnode, node1)
if is_array(node2) if is_array(node2)
{ {
for (i = 2; i < array_length_1d(node2); i += 1) for (i = 2; i < array_length_1d(node2); i += 1)
@ -34,20 +50,12 @@ while (ds_list_size(access) > 0)
if is_undefined(ds_map_find_value(map, node2[i])) if is_undefined(ds_map_find_value(map, node2[i]))
{ {
if (node2[i] != node2[1]) if (node2[i] != node2[1])
{
ds_list_add(access, node2[i]) ds_list_add(access, node2[i])
ds_list_delete(list, ds_list_find_index(list, node2[i]))
} }
} }
} }
} }
node2 = node2[1] file_text_write_string(fid, ((string(node1) + "-") + string(targetnode)))
}
ds_map_add(map, node1, node2)
ds_map_add(map, node2, node1)
file_text_write_string(fid, ((string(node1) + "-") + string(node2)))
file_text_writeln(fid)
file_text_write_string(fid, string(ds_list_size(access)))
file_text_writeln(fid) file_text_writeln(fid)
} }
file_text_close(fid) file_text_close(fid)

Loading…
Cancel
Save