mirror of
https://github.com/kristoferssolo/Tetris.git
synced 2025-10-21 20:00:35 +00:00
refactor(ai): add max and sum peaks
refactor(ai): mean -> sum
This commit is contained in:
parent
85254c5724
commit
1ce17c43ba
@ -3,7 +3,7 @@ import numpy as np
|
|||||||
from ai.log import log
|
from ai.log import log
|
||||||
|
|
||||||
|
|
||||||
def get_peaks(field: np.ndarray) -> float:
|
def get_peaks(field: np.ndarray) -> np.ndarray:
|
||||||
col_num = field.shape[1]
|
col_num = field.shape[1]
|
||||||
peaks = np.zeros(col_num)
|
peaks = np.zeros(col_num)
|
||||||
|
|
||||||
@ -11,4 +11,12 @@ def get_peaks(field: np.ndarray) -> float:
|
|||||||
if 1 in field[:, col]:
|
if 1 in field[:, col]:
|
||||||
peaks[col] = field.shape[0] - np.argmax(field[:, col], axis=0)
|
peaks[col] = field.shape[0] - np.argmax(field[:, col], axis=0)
|
||||||
|
|
||||||
return float(np.sum(peaks))
|
return peaks
|
||||||
|
|
||||||
|
|
||||||
|
def get_peaks_max(field: np.ndarray) -> int:
|
||||||
|
return int(np.max(get_peaks(field)))
|
||||||
|
|
||||||
|
|
||||||
|
def get_peaks_sum(field: np.ndarray) -> int:
|
||||||
|
return np.sum(get_peaks(field))
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from ai.fitness.peaks import get_peaks
|
from ai.fitness.peaks import get_peaks_sum
|
||||||
|
|
||||||
|
|
||||||
class TestFitness(unittest.TestCase):
|
class TestFitness(unittest.TestCase):
|
||||||
@ -13,11 +13,11 @@ class TestFitness(unittest.TestCase):
|
|||||||
[0, 1, 1, 0, 0],
|
[0, 1, 1, 0, 0],
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
self.assertEqual(get_peaks(field), 11)
|
self.assertEqual(get_peaks_sum(field), 11)
|
||||||
|
|
||||||
def test_get_peaks_zeros(self) -> None:
|
def test_get_peaks_zeros(self) -> None:
|
||||||
field = np.zeros((3, 5))
|
field = np.zeros((3, 5))
|
||||||
self.assertEqual(get_peaks(field), 0)
|
self.assertEqual(get_peaks_sum(field), 0)
|
||||||
|
|
||||||
def test_single_peak(self):
|
def test_single_peak(self):
|
||||||
field = np.array(
|
field = np.array(
|
||||||
@ -28,4 +28,4 @@ class TestFitness(unittest.TestCase):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(get_peaks(field), 2)
|
self.assertEqual(get_peaks_sum(field), 2)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user