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
|
||||
|
||||
|
||||
def get_peaks(field: np.ndarray) -> float:
|
||||
def get_peaks(field: np.ndarray) -> np.ndarray:
|
||||
col_num = field.shape[1]
|
||||
peaks = np.zeros(col_num)
|
||||
|
||||
@ -11,4 +11,12 @@ def get_peaks(field: np.ndarray) -> float:
|
||||
if 1 in field[:, col]:
|
||||
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 numpy as np
|
||||
from ai.fitness.peaks import get_peaks
|
||||
from ai.fitness.peaks import get_peaks_sum
|
||||
|
||||
|
||||
class TestFitness(unittest.TestCase):
|
||||
@ -13,11 +13,11 @@ class TestFitness(unittest.TestCase):
|
||||
[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:
|
||||
field = np.zeros((3, 5))
|
||||
self.assertEqual(get_peaks(field), 0)
|
||||
self.assertEqual(get_peaks_sum(field), 0)
|
||||
|
||||
def test_single_peak(self):
|
||||
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