added first draft litris
This commit is contained in:
16
litris.py
16
litris.py
@@ -34,6 +34,8 @@ import numpy as np
|
|||||||
from utils import mse
|
from utils import mse
|
||||||
from game_base_class import GameBase
|
from game_base_class import GameBase
|
||||||
import random
|
import random
|
||||||
|
from pynput.keyboard import Key, Controller
|
||||||
|
|
||||||
|
|
||||||
BLOCK_FULL = [[0, 0, 0, 0], [0, 1, 1, 0], [0, 1, 1, 0], [0, 0, 0, 0]]
|
BLOCK_FULL = [[0, 0, 0, 0], [0, 1, 1, 0], [0, 1, 1, 0], [0, 0, 0, 0]]
|
||||||
BLOCK_SMALL = [[1, 1], [1, 1]]
|
BLOCK_SMALL = [[1, 1], [1, 1]]
|
||||||
@@ -56,6 +58,8 @@ class Litris(GameBase):
|
|||||||
def __init__(self, overlay):
|
def __init__(self, overlay):
|
||||||
super().__init__(overlay)
|
super().__init__(overlay)
|
||||||
|
|
||||||
|
self.keyboard = Controller()
|
||||||
|
|
||||||
self.data_coordinates = np.zeros((20, 20), dtype=object)
|
self.data_coordinates = np.zeros((20, 20), dtype=object)
|
||||||
self.stone_coordinates = np.zeros((4, 4), dtype=object)
|
self.stone_coordinates = np.zeros((4, 4), dtype=object)
|
||||||
self.observation = np.zeros((20, 20), dtype=int)
|
self.observation = np.zeros((20, 20), dtype=int)
|
||||||
@@ -212,15 +216,21 @@ class Litris(GameBase):
|
|||||||
|
|
||||||
|
|
||||||
def move_stone(self, col_movement):
|
def move_stone(self, col_movement):
|
||||||
keyboard.press('Down')
|
if col_movement is None:
|
||||||
|
return
|
||||||
|
# Press and release space
|
||||||
|
self.keyboard.press(Key.down)
|
||||||
|
self.keyboard.release(Key.down)
|
||||||
cv.waitKey(500)
|
cv.waitKey(500)
|
||||||
if col_movement < 0:
|
if col_movement < 0:
|
||||||
for i in range(0, col_movement, - 1):
|
for i in range(0, col_movement, - 1):
|
||||||
keyboard.press('Left')
|
self.keyboard.press(Key.left)
|
||||||
|
self.keyboard.release(Key.left)
|
||||||
cv.waitKey(500)
|
cv.waitKey(500)
|
||||||
else:
|
else:
|
||||||
for i in range(0, col_movement, 1):
|
for i in range(0, col_movement, 1):
|
||||||
keyboard.press('Right')
|
self.keyboard.press(Key.right)
|
||||||
|
self.keyboard.release(Key.right)
|
||||||
cv.waitKey(500)
|
cv.waitKey(500)
|
||||||
|
|
||||||
def point_in_rect(self, point):
|
def point_in_rect(self, point):
|
||||||
|
|||||||
Reference in New Issue
Block a user