You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
LoopyTest/scripts/GameState.gd

33 lines
766 B

extends Reference
class_name GameState
# var parent: GameState # possibly reference the previous state and only store changed cells
# cell state info
var cellOwners: Array
# line state info
var lineOwners: Array
func init_arrays(size: Vector2):
var cells: int = int(size.x * size.y)
# A grid graph G_(m,n) has mn nodes and (m-1)n+(n-1)m=2mn-m-n edges
var lines: int = int((2 * size.x * size.y) - size.x - size.y)
for _cell in range(cells):
cellOwners.append(0)
for _line in range(lines):
lineOwners.append(0)
func clone() -> GameState:
var ret = .new()
ret.cellOwners = cellOwners.duplicate()
ret.lineOwners = lineOwners.duplicate()
return ret;
func get_cell_count():
return cellOwners.size()
func get_line_count():
return lineOwners.size()