Update tractor.py

This commit is contained in:
s481846 2024-05-23 02:12:52 +02:00
parent bb6bc0ffa2
commit 268a39aa2d

View File

@ -1,10 +1,11 @@
import pygame import pygame
from constant import size, rows, cols from constant import size, rows, cols
from decisiontree import predict from decisiontree import predict
from neuralnetwork import predict_image
class Tractor: class Tractor:
def __init__(self, row, col, model, feature_columns): def __init__(self, row, col, model, feature_columns, neuralnetwork):
self.row = row self.row = row
self.col = col self.col = col
self.images = { self.images = {
@ -16,6 +17,7 @@ class Tractor:
self.direction = "down" self.direction = "down"
self.model = model self.model = model
self.feature_columns = feature_columns self.feature_columns = feature_columns
self.neuralnetwork = neuralnetwork
def draw(self, win): def draw(self, win):
tractor_image = self.images[self.direction] tractor_image = self.images[self.direction]
@ -41,6 +43,7 @@ class Tractor:
elif self.direction == "left": elif self.direction == "left":
self.direction = "up" self.direction = "up"
def move_forward(self, board): def move_forward(self, board):
if self.direction == "up" and self.row > 0: if self.direction == "up" and self.row > 0:
next_row, next_col = self.row - 1, self.col next_row, next_col = self.row - 1, self.col
@ -53,6 +56,14 @@ class Tractor:
else: else:
return # Nie możemy się ruszyć poza planszę return # Nie możemy się ruszyć poza planszę
image_path = board.vegetables[next_row][next_col] # Ścieżka do obrazu warzywa
# Predykcja warzywa po obrazie
if image_path is not None:
print(image_path, "mialo byc")
vegetable_name = predict_image(image_path, self.neuralnetwork)
print(vegetable_name, "jest")
if board.is_dirt(next_row, next_col) and board.board[next_row][next_col] != 10: if board.is_dirt(next_row, next_col) and board.board[next_row][next_col] != 10:
soil_features = board.soil_features soil_features = board.soil_features
sample = { sample = {
@ -63,7 +74,7 @@ class Tractor:
"proc_ekspo_na_swiatlo": soil_features["proc_ekspo_na_swiatlo"], "proc_ekspo_na_swiatlo": soil_features["proc_ekspo_na_swiatlo"],
"pora_dnia": soil_features["pora_dnia"], "pora_dnia": soil_features["pora_dnia"],
"pora_roku": soil_features["pora_roku"], "pora_roku": soil_features["pora_roku"],
"roslina": board.vegetable_types[board.vegetables[next_row][next_col]] "roslina": "warzywa/" + str(vegetable_name) + ".png"
} }
should_water = predict(self.model, self.feature_columns, sample) should_water = predict(self.model, self.feature_columns, sample)