Init gym
This commit is contained in:
60
cpp/a_star/expansion_groups.py
Normal file
60
cpp/a_star/expansion_groups.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from os import getcwd
|
||||
from os.path import join, dirname
|
||||
from math import sqrt
|
||||
|
||||
MAX_RADIUS = 5
|
||||
LINES = 321
|
||||
COLS = 221
|
||||
|
||||
expansion_groups = dict()
|
||||
CWD = join(getcwd(), dirname(__file__))
|
||||
|
||||
for l in range(MAX_RADIUS*10+1):
|
||||
for c in range(MAX_RADIUS*10+1):
|
||||
dist = sqrt(l*l+c*c)*0.1
|
||||
if dist <= MAX_RADIUS:
|
||||
if not dist in expansion_groups:
|
||||
expansion_groups[dist] = []
|
||||
expansion_groups[dist].append((l,c))
|
||||
|
||||
if c>0: expansion_groups[dist].append((l,-c))
|
||||
if l>0: expansion_groups[dist].append((-l,c))
|
||||
if c>0 and l>0: expansion_groups[dist].append((-l,-c))
|
||||
|
||||
ascending_dist = sorted(expansion_groups)
|
||||
groups_no = len(expansion_groups)
|
||||
|
||||
#============================================= prepare text to file
|
||||
|
||||
no_of_pos = 0
|
||||
for g in expansion_groups.values():
|
||||
no_of_pos += len(g)
|
||||
|
||||
file = []
|
||||
file.append(f"const int expansion_positions_no = {no_of_pos};\n")
|
||||
file.append(f"const float expansion_pos_dist[{no_of_pos}] = {{")
|
||||
|
||||
for dist in ascending_dist:
|
||||
for p in expansion_groups[dist]:
|
||||
file.extend([f"{dist}",","])
|
||||
file.pop()
|
||||
|
||||
file.append(f"}};\n\nconst int expansion_pos_l[{no_of_pos}] = {{")
|
||||
|
||||
for dist in ascending_dist:
|
||||
for p in expansion_groups[dist]:
|
||||
file.extend([f"{p[0]}",","])
|
||||
file.pop()
|
||||
|
||||
file.append(f"}};\n\nconst int expansion_pos_c[{no_of_pos}] = {{")
|
||||
|
||||
for dist in ascending_dist:
|
||||
for p in expansion_groups[dist]:
|
||||
file.extend([f"{p[1]}",","])
|
||||
file.pop()
|
||||
file.append("};\n")
|
||||
|
||||
#============================================= write to file
|
||||
|
||||
with open(join(CWD, "expansion_groups.h"), 'w') as f:
|
||||
f.write(''.join(file))
|
||||
Reference in New Issue
Block a user