From f7b6da279d48725247c33aa3606cf933e88d51df Mon Sep 17 00:00:00 2001 From: Jeremi Lisek Date: Mon, 9 May 2022 15:49:11 +0200 Subject: [PATCH] zajecia drzewa decyzyjne --- ClientParamsFactory.py | 31 +++++++++++++++++++++++++++++++ InitialStateFactory.py | 2 +- data/ClientParams.py | 21 +++++++++++++++++++++ data/GameConstants.py | 2 +- data/Item.py | 2 +- data/Order.py | 5 ++++- data/StockPile.py | 2 +- data/enum/CompanySize.py | 10 ++++++++++ data/{ => enum}/Direction.py | 0 data/{ => enum}/ItemType.py | 0 data/enum/Priority.py | 7 +++++++ decision/State.py | 2 +- drzewo.md | 2 ++ main.py | 2 +- 14 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 ClientParamsFactory.py create mode 100644 data/ClientParams.py create mode 100644 data/enum/CompanySize.py rename data/{ => enum}/Direction.py (100%) rename data/{ => enum}/ItemType.py (100%) create mode 100644 data/enum/Priority.py create mode 100644 drzewo.md diff --git a/ClientParamsFactory.py b/ClientParamsFactory.py new file mode 100644 index 0000000..88400b6 --- /dev/null +++ b/ClientParamsFactory.py @@ -0,0 +1,31 @@ +import random + +from data.ClientParams import ClientParams +from data.enum.CompanySize import CompanySize + + +class ClientParamsFactory: + + def __init__(self) -> None: + super().__init__() + + def get_client_params(self) -> ClientParams: + payment_delay = random.randint(0, 14) + payed = random.getrandbits(1) + net_worth = random.randint(0, 100) + is_skarbowka = random.getrandbits(1) + membership = random.getrandbits(1) + infuelnce_rate = random.randint(0, 100) + is_hat = random.getrandbits(1) + company_size = random.randint(1,6) + + return ClientParams( + payment_delay, + net_worth, + infuelnce_rate, + bool(payed), + bool(is_skarbowka), + bool(membership), + bool(is_hat), + CompanySize(company_size) + ) \ No newline at end of file diff --git a/InitialStateFactory.py b/InitialStateFactory.py index c354625..9eeb73c 100644 --- a/InitialStateFactory.py +++ b/InitialStateFactory.py @@ -1,7 +1,7 @@ import random from data.Item import Item -from data.ItemType import ItemType +from data.enum.ItemType import ItemType from data.Order import Order diff --git a/data/ClientParams.py b/data/ClientParams.py new file mode 100644 index 0000000..02e78aa --- /dev/null +++ b/data/ClientParams.py @@ -0,0 +1,21 @@ +from data.enum.CompanySize import CompanySize + + +class ClientParams: + def __init__(self, + payment_delay: int, + net_worth: int, + infuelnce_rate: int, + payed: bool, + is_skarbowka: bool, + membership: bool, + is_hat: bool, + company_size: CompanySize) -> None: + self.payment_delay = payment_delay + self.payed = payed + self.net_worth = net_worth + self.is_skarbowka = is_skarbowka + self.infuence_rate = infuelnce_rate + self.membership = membership + self.company_size = company_size + self.is_hat = is_hat diff --git a/data/GameConstants.py b/data/GameConstants.py index a6da7c9..81397d2 100644 --- a/data/GameConstants.py +++ b/data/GameConstants.py @@ -1,6 +1,6 @@ from typing import Dict -from data.ItemType import ItemType +from data.enum.ItemType import ItemType from util.PathDefinitions import GridLocation diff --git a/data/Item.py b/data/Item.py index 9851805..ecfb9f0 100644 --- a/data/Item.py +++ b/data/Item.py @@ -1,6 +1,6 @@ from itertools import count -from data.ItemType import ItemType +from data.enum.ItemType import ItemType class Item: diff --git a/data/Order.py b/data/Order.py index 5050cf0..79f5253 100644 --- a/data/Order.py +++ b/data/Order.py @@ -1,13 +1,16 @@ from itertools import count +from data.ClientParams import ClientParams from data.Item import Item +from data.enum.Priority import Priority class Order: id_counter = count(start=0) - def __init__(self, time: int, items: [Item], value: int): + def __init__(self, time: int, items: [Item], value: int, priority: Priority, client_params: ClientParams): self.id = next(self.id_counter) self.time = time self.items = items self.value = value + self.priority = priority diff --git a/data/StockPile.py b/data/StockPile.py index 8e6c9db..bfa2bb2 100644 --- a/data/StockPile.py +++ b/data/StockPile.py @@ -1,4 +1,4 @@ -from data.ItemType import ItemType +from data.enum.ItemType import ItemType from data.Item import Item diff --git a/data/enum/CompanySize.py b/data/enum/CompanySize.py new file mode 100644 index 0000000..9f41b6a --- /dev/null +++ b/data/enum/CompanySize.py @@ -0,0 +1,10 @@ +from enum import Enum + + +class CompanySize(Enum): + BIG = 1 + NORMAL = 2 + SMALL = 3 + NO = 4 + HUGE = 5 + GIGANTISHE = 6 \ No newline at end of file diff --git a/data/Direction.py b/data/enum/Direction.py similarity index 100% rename from data/Direction.py rename to data/enum/Direction.py diff --git a/data/ItemType.py b/data/enum/ItemType.py similarity index 100% rename from data/ItemType.py rename to data/enum/ItemType.py diff --git a/data/enum/Priority.py b/data/enum/Priority.py new file mode 100644 index 0000000..bb9d962 --- /dev/null +++ b/data/enum/Priority.py @@ -0,0 +1,7 @@ +from enum import Enum + + +class Priority(Enum): + HIGH = 1 + MEDIUM = 2 + LOW = 3 \ No newline at end of file diff --git a/decision/State.py b/decision/State.py index 70dcb34..3cd6be8 100644 --- a/decision/State.py +++ b/decision/State.py @@ -1,4 +1,4 @@ -from data.Direction import Direction +from data.enum.Direction import Direction from data.Item import Item from data.Order import Order from decision.ActionType import ActionType diff --git a/drzewo.md b/drzewo.md new file mode 100644 index 0000000..73adebc --- /dev/null +++ b/drzewo.md @@ -0,0 +1,2 @@ +# Parametry drzewa(klienta): +1. \ No newline at end of file diff --git a/main.py b/main.py index ab7c146..c57141d 100644 --- a/main.py +++ b/main.py @@ -7,7 +7,7 @@ from ForkliftAgent import ForkliftAgent from GameModel import GameModel from PatchAgent import PatchAgent from PatchType import PatchType -from data.Direction import Direction +from data.enum.Direction import Direction from util.PathDefinitions import GridWithWeights colors = [