diff --git a/README.md b/README.md
index 42b3be8..4d225d1 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,2 @@
-Repozytorium projektu z sztucznej inteligencji, temat "Inteligentny wózek widłowy".
-Zespół: 444420, 444428, 444430
+Repozytorium projektu z sztucznej inteligencji, temat "Inteligentny wózek widłowy".
diff --git a/frontend/img/Down.png b/frontend/img/Down.png
new file mode 100644
index 0000000..44308b3
Binary files /dev/null and b/frontend/img/Down.png differ
diff --git a/frontend/img/Left.png b/frontend/img/Left.png
new file mode 100644
index 0000000..6caff0c
Binary files /dev/null and b/frontend/img/Left.png differ
diff --git a/frontend/img/Right.png b/frontend/img/Right.png
new file mode 100644
index 0000000..edce10b
Binary files /dev/null and b/frontend/img/Right.png differ
diff --git a/frontend/img/Up.png b/frontend/img/Up.png
new file mode 100644
index 0000000..c71a348
Binary files /dev/null and b/frontend/img/Up.png differ
diff --git a/frontend/index.html b/frontend/index.html
index e51cf90..f65b762 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -2,108 +2,18 @@
-
+
\ No newline at end of file
diff --git a/frontend/js/Agent.js b/frontend/js/Agent.js
new file mode 100644
index 0000000..1a51fc2
--- /dev/null
+++ b/frontend/js/Agent.js
@@ -0,0 +1,87 @@
+export default class Agent{
+ constructor(positionX, positionY, turn){
+ this.positionX = positionX;
+ this.positionY = positionY;
+ this.turn = turn;
+ }
+
+ getParams(){
+ let params = {};
+
+ positionX = this.positionX;
+ positionY = this.positionY;
+ turn = this.turn;
+
+ params = {positionX, positionY, turn};
+
+ return params;
+ }
+
+ goForward(){
+ if(this.turn == 'Up'){
+ this.positionY += 1;
+ }
+ else if(this.turn == 'Down'){
+ this.positionY -= 1;
+ }
+ else if(this.turn == 'Left'){
+ this.positionX -= 1;
+ }
+ else if(this.turn == 'Right'){
+ this.positionX += 1;
+ }
+ }
+
+ turnLeft(){
+ if(this.turn == 'Up'){
+ this.turn = 'Left';
+ }
+ else if(this.turn == 'Down'){
+ this.turn = 'Right';
+ }
+ else if(this.turn == 'Left'){
+ this.turn = 'Down';
+ }
+ else if(this.turn == 'Right'){
+ this.turn = 'Up'
+ }
+ }
+
+ turnRight(){
+ if(this.turn == 'Up'){
+ this.turn = 'Right';
+ }
+ else if(this.turn == 'Down'){
+ this.turn = 'Left';
+ }
+ else if(this.turn == 'Left'){
+ this.turn = 'Up';
+ }
+ else if(this.turn == 'Right'){
+ this.turn = 'Down'
+ }
+ }
+
+ showAgent(){
+ console.log(this.turn)
+ if(this.turn === "Up"){
+ document.getElementById(this.positionX + "-" + this.positionY).style.backgroundImage = "url('img/Up.png')";
+ }
+ else if(this.turn === "Down"){
+ document.getElementById(this.positionX + "-" + this.positionY).style.backgroundImage = "url('img/Down.png')";
+ }
+ else if(this.turn === "Right"){
+ document.getElementById(this.positionX + "-" + this.positionY).style.backgroundImage = "url('img/Right.png')";
+ }
+ else if(this.turn === "Left"){
+ document.getElementById(this.positionX + "-" + this.positionY).style.backgroundImage = "url('img/Left.png')";
+ }
+
+ }
+
+ hideAgent(){
+ document.getElementById(this.positionX + "-" + this.positionY).style.backgroundImage = "";
+ }
+
+
+}
\ No newline at end of file
diff --git a/frontend/js/Board.js b/frontend/js/Board.js
new file mode 100644
index 0000000..178bfb1
--- /dev/null
+++ b/frontend/js/Board.js
@@ -0,0 +1,30 @@
+import Field from './Field.js'
+
+export function createBoard(rangeX, rangeY){
+ const board = [];
+
+ for(let y = 0; y < rangeY; y++){
+ const row = [];
+ for(let x = 0; x < rangeX; x++){
+ let field = new Field(x, y, false, false, 1);
+ row.push(field)
+ }
+ board.push(row)
+ }
+ return board
+}
+
+export function showBoard(board){
+ for(let y = board.length - 1; y >= 0 ; y--){
+ document.getElementById("board").innerHTML += "
";
+
+ for(let x = 0; x < board[y].length; x++){
+ document.getElementById("row-" + y).innerHTML += "
"
+ }
+ }
+}
+
+
+
+
+
diff --git a/frontend/js/Field.js b/frontend/js/Field.js
new file mode 100644
index 0000000..7e2b03b
--- /dev/null
+++ b/frontend/js/Field.js
@@ -0,0 +1,22 @@
+export default class Field{
+ constructor(x, y, isShelf, isOccupiedByAgent, costOfTravel){
+ this.xField = x;
+ this.yField = y;
+ this.isShelf = isShelf;
+ this.isOccupiedByAgent = isOccupiedByAgent;
+ this.costOfTravel = costOfTravel;
+ }
+
+ getParams(){
+ let params = {};
+
+ xField = this.xField;
+ yField = this.yField;
+ isShelf = this.isShelf;
+ isOccupiedByAgent = this.isOccupiedByAgent;
+ costOfTravel = this.costOfTravel;
+ params = {xField, yField, isShelf, isOccupiedByAgent, costOfTravel}
+
+ return params;
+ }
+}
\ No newline at end of file
diff --git a/frontend/js/main.js b/frontend/js/main.js
new file mode 100644
index 0000000..735d905
--- /dev/null
+++ b/frontend/js/main.js
@@ -0,0 +1,27 @@
+import * as Board from './Board.js'
+import Agent from './Agent.js'
+
+let board = Board.createBoard(10,10);
+Board.showBoard(board);
+
+let agent = new Agent(0,0, 'Right');
+
+agent.showAgent();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/js/script.js b/frontend/js/script.js
new file mode 100644
index 0000000..44ad711
--- /dev/null
+++ b/frontend/js/script.js
@@ -0,0 +1,125 @@
+// import Agent from './Agent.js'
+
+// //Klasy
+
+
+// class Field {
+// constructor(x, y, isEmpty) {
+// this.xField = x;
+// this.yField = y;
+// this.isFieldEmpty = isEmpty;
+// }
+// getCoordinates(){
+// return this.xField + this.yField;
+// }
+
+// getStatus(){
+// return this.isFieldEmpty;
+// }
+// }
+
+// class Product {
+// constructor(name, type, farcing, price) {
+// this.name = name;
+// this.type = type;
+// this.farcing = farcing;
+// this.price = price
+// }
+// }
+
+// class Rack{
+// constructor(noOfShelf, typOfProduct) {
+// this.noOfShelf = noOfShelf;
+// }
+
+// addShelf(){
+// this.noOfShelf = this.noOfShelf + 1;
+// }
+
+// isEmpty(){
+// if (this.noOfShelf === 0){
+// return true;
+// }else {
+// return false;
+// }
+// }
+// }
+
+// class Shelf {
+// constructor(number) {
+// this.number = number;
+// }
+// }
+
+
+// //Objekty i zmienne
+// var regaly = ['1-1', '1-3', '1-4', '1-6', '1-7', '1-9', '2-1', '2-9', '3-3', '3-4', '3-6', '3-7', '4-1', '4-9', '5-1', '5-3', '5-4', '5-6', '5-7', '5-9']
+// const agent1 = new Agent(3, 0);
+
+// //Funkcja uruchamiająca prace calego scriptu
+// function start(){
+// //ponumerujPola();
+// pokolorujRegaly();
+// umiescAgenta(agent1);
+// droga(agent1);
+// }
+
+// //Funkcja kolorujaca miejsca na planszy gdzie znajduja sie regaly
+// function pokolorujRegaly(){
+// let x;
+// for(x = 0; x < regaly.length; x++){
+// document.getElementById(regaly[x]).className = 'regal';
+// }
+// }
+
+// //Funkcja wyswietlajaca id pol
+// function ponumerujPola(){
+// let x,y
+// for(x = 0; x < 7; x++){
+// for(y = 0; y < 11; y++){
+// id = x.toString() + "-" + y.toString();
+// document.getElementById(id).innerHTML = id;
+// }
+// }
+// }
+
+// //Funkcja usuwająca agenta z pola, przed przemieszczeniem
+// function usunAgenta(agent){
+// document.getElementById(agent.getId()).style.backgroundImage = "none";
+// }
+
+
+// //Funckja wyswietlajaca agenta gdy ten zmieni polozenie
+// function umiescAgenta(agent) {
+// document.getElementById(agent.getId()).style.backgroundImage = "url('Agent.jpg')";
+// }
+
+// //Funkcja zmieniajaca polozenie agenta o 1 pole
+// function przemieszczenie(side, time, agent){
+// const lastPosition = agent.getId();
+// setTimeout(function(){
+// usunAgenta(agent)
+// if(side == "left")
+// agent.left();
+// if(side == "right")
+// agent.right();
+// if(side == "up")
+// agent.up();
+// if(side == "down")
+// agent.down();
+// umiescAgenta(agent);
+// }, time);
+// }
+
+// //Funkcja ktora ustala droge agenta do przebycia
+// function droga(agent) {
+// przemieszczenie("right", 1000, agent);
+// przemieszczenie("right", 2000, agent);
+// przemieszczenie("up", 3000, agent);
+// przemieszczenie("right", 4000, agent);
+// przemieszczenie("right", 5000, agent);
+// przemieszczenie("right", 6000, agent);
+// przemieszczenie("right", 7000, agent);
+// przemieszczenie("right", 8000, agent);
+// przemieszczenie("right", 9000, agent);
+// }
diff --git a/frontend/script.js b/frontend/script.js
deleted file mode 100644
index b3921a1..0000000
--- a/frontend/script.js
+++ /dev/null
@@ -1,150 +0,0 @@
-//Klasy
-class Agent {
- constructor(x, y){
- this.xField = x;
- this.yField = y;
- }
-
- getId(){
- return this.xField + "-" + this.yField;
- }
-
- right(){
- this.yField++;
- }
-
- left(){
- this.yField--;
- }
-
- up(){
- this.xField--;
- }
-
- down(){
- this.xField++;
- }
-}
-
-class Field {
- constructor(x, y, isEmpty) {
- this.xField = x;
- this.yField = y;
- this.isFieldEmpty = isEmpty;
- }
- getCoordinates(){
- return this.xField + this.yField;
- }
-
- getStatus(){
- return this.isFieldEmpty;
- }
-}
-
-class Product {
- constructor(name, type, specs, price) {
- this.name = name;
- this.type = type;
- this.specs = specs;
- this.price = price
- }
-}
-
-
-class Rack{
- constructor(noOfShelf) {
- this.noOfShelf = noOfShelf;
- }
-
- addShelf(){
- this.noOfShelf = this.noOfShelf + 1;
- }
-
- isEmpty(){
- if (this.noOfShelf === 0){
- return true;
- }else {
- return false;
- }
- }
-}
-
-class Shelf {
- constructor(number, typeOfProduct) {
- this.number = number;
- this.typeOfProduct = typeOfProduct;
- }
-}
-
-
-//Objekty i zmienne
-var regaly = ['1-1', '1-3', '1-4', '1-6', '1-7', '1-9', '2-1', '2-9', '3-3', '3-4', '3-6', '3-7', '4-1', '4-9', '5-1', '5-3', '5-4', '5-6', '5-7', '5-9']
-const agent1 = new Agent(3, 0);
-
-//Funkcja uruchamiająca prace calego scriptu
-function start(){
- //ponumerujPola();
- pokolorujRegaly();
- umiescAgenta(agent1);
- droga(agent1);
-}
-
-//Funkcja kolorujaca miejsca na planszy gdzie znajduja sie regaly
-function pokolorujRegaly(){
- let x;
- for(x = 0; x < regaly.length; x++){
- document.getElementById(regaly[x]).className = 'regal';
- }
-}
-
-//Funkcja wyswietlajaca id pol
-function ponumerujPola(){
- let x,y
- for(x = 0; x < 7; x++){
- for(y = 0; y < 11; y++){
- id = x.toString() + "-" + y.toString();
- document.getElementById(id).innerHTML = id;
- }
- }
-}
-
-//Funkcja usuwająca agenta z pola, przed przemieszczeniem
-function usunAgenta(agent){
- document.getElementById(agent.getId()).style.backgroundImage = "none";
-}
-
-
-//Funckja wyswietlajaca agenta gdy ten zmieni polozenie
-function umiescAgenta(agent) {
- document.getElementById(agent.getId()).style.backgroundImage = "url('Agent.jpg')";
-}
-
-//Funkcja zmieniajaca polozenie agenta o 1 pole
-function przemieszczenie(side, time, agent){
- const lastPosition = agent.getId();
- setTimeout(function(){
- usunAgenta(agent)
- if(side == "left")
- agent.left();
- if(side == "right")
- agent.right();
- if(side == "up")
- agent.up();
- if(side == "down")
- agent.down();
- umiescAgenta(agent);
- }, time);
-}
-
-//Funkcja ktora ustala droge agenta do przebycia
-function droga(agent) {
- przemieszczenie("right", 1000, agent);
- przemieszczenie("right", 2000, agent);
- przemieszczenie("up", 3000, agent);
- przemieszczenie("right", 4000, agent);
- przemieszczenie("right", 5000, agent);
- przemieszczenie("right", 6000, agent);
- przemieszczenie("right", 7000, agent);
- przemieszczenie("right", 8000, agent);
- przemieszczenie("right", 9000, agent);
-}
diff --git a/frontend/styles.css b/frontend/styles.css
index 877c58c..0fbed01 100644
--- a/frontend/styles.css
+++ b/frontend/styles.css
@@ -1,33 +1,39 @@
+body {
+ padding: 0;
+ margin: 0;
+}
+
.container{
width: 100%;
height: 100%;
+ min-width: 1920px;
+ min-height: 1080px;
position: absolute;
- background-color: grey;
+ background-color: rgb(37, 36, 36);
}
-.plansza{
- width: 1100px;
- height:700px;
+#board{
+ width: 700px;
+ height: 700px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
- background-color: lightyellow;
-
+ background-color: white;
}
.row{
- width: 1100px;
- height: 100px;
+ width: 100%;
+ height: 70px;
display: flex;
flex-direction: row;
}
-.pole{
- height: 100px;
- width: 100px;
- background-color: lightyellow;
+.field{
+ height: 70px;
+ width: 70px;
+ background-color: white;
background-image: none;
background-size: cover;
border-color: black;
@@ -43,8 +49,8 @@
}
.regal{
- height: 100px;
- width: 100px;
+ height: 50px;
+ width: 50px;
color: lightyellow;
background-color: darkslategrey;
border-color: black;
@@ -57,3 +63,4 @@
justify-content: center;
align-items: center;
}
+