diff --git a/README.md b/README.md
index 4d225d1..bc67ef5 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
-Repozytorium projektu z sztucznej inteligencji, temat "Inteligentny wózek widłowy".
+Repozytorium projektu z sztucznej inteligencji, temat "Inteligentny wózek widłowy".
+Zespół: 444420, 444428, 444430
\ No newline at end of file
diff --git a/environment.md b/environment.md
new file mode 100644
index 0000000..7c15074
--- /dev/null
+++ b/environment.md
@@ -0,0 +1,44 @@
+# Raport 1
+
+### Środowisko
+Środowiskiem agenta jest plansza (mapa magazynu), która jest podzielona na pola. Każde pole może być puste lub zajęte.
+Agent może się poruszać tylko po polach pustych. Na polach zajętych znajdują się regały, na których przechowywane jest towar. Regały są zaznaczone za pomocą funkcji `pokolorujRegaly()`
+Plansza ma wymiar 11 kolumn indeksowanych od 0 do 11 i 7 wierszy indeksowanych od 0 do 6. Pola mogą być ponumerowane dzięki funkcji `ponumerujPola()`.
+
+### Agent
+
+Agent jest reprezentowany za pomocą klasy `Agent`.
+Agent jest wyświetlany na planszy przy użyciu ikony wózka widłowego (`umiescAgenta()`).
+Agent porusza się po dzięki metodzie `przemieszczenie()`, która najpierw usuwa agenta z planszy (funkcja: `usunAgenta()`) nasępnie przesuwa go metodami `right()`, `left()`,
+`up()`, `down()` i umieszcza go na nowej pozycji (funkcja: `umiescAgenta()`). Droga agenta jest ustala funkcją `droga()`.Przykład drogi agenta https://youtu.be/RLe2ZN5SFLo.
+
+### Reprezentacja wiedzy
+
+Klasa `Field` - reprezentuje pola w magazynie. Posiada pola:
+- `x` - współrzędna x
+- `y` - współrzędna y
+- `isEmpty` - określa czy pole jest puste, czy nie.
+
+
+
+Klasa `Product` - reprezentuje poszczególne produkty znajdujące się w magazynie. Posiada pola:
+- `name` - nazwa produktu
+- `type` - rodzaj produktu
+- `specs` - krótki opis produktu
+- `price` - cena produktu
+
+
+
+Klasa `Rack` - reprezentuje regały, które znajdują się w magazynie. Na jednym regale mogą znajdować się pordukty tego samego typu. Posiada pola:
+- `noOfShelf` - liczbę półek danego regału
+
+
+Metody:
+- `addShelf()` - dodającą półkę do regału
+- `isEmpty()` - zwracającą **true**, jeśli regał nie ma żadnych półek lub **false** w przeciwnym wypadku
+
+
+
+Klasa `Shelf` - reprezentuje półkę, w regale. Na jednej półce mogą znajdować się produkty o tej samej specyfikacji. Posiada pola:
+- `number` - numer półki
+- `typOfProduct` - rodzaj produktu, jaki znajduję się na półce
\ No newline at end of file
diff --git a/frontend/js/Archiwum/Agent.js b/frontend/js/Archiwum/Agent.js
new file mode 100644
index 0000000..1a51fc2
--- /dev/null
+++ b/frontend/js/Archiwum/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/Archiwum/Board.js b/frontend/js/Archiwum/Board.js
new file mode 100644
index 0000000..178bfb1
--- /dev/null
+++ b/frontend/js/Archiwum/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/Archiwum/Field.js b/frontend/js/Archiwum/Field.js
new file mode 100644
index 0000000..7e2b03b
--- /dev/null
+++ b/frontend/js/Archiwum/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/Archiwum/script.js b/frontend/js/Archiwum/script.js
new file mode 100644
index 0000000..44ad711
--- /dev/null
+++ b/frontend/js/Archiwum/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/js/main.js b/frontend/js/main.js
index 735d905..178bb7e 100644
--- a/frontend/js/main.js
+++ b/frontend/js/main.js
@@ -1,27 +1,147 @@
-import * as Board from './Board.js'
-import Agent from './Agent.js'
+//Klasy
+class Agent{
+ constructor(positionX, positionY, turn){
+ this.positionX = positionX;
+ this.positionY = positionY;
+ this.turn = turn;
+ }
-let board = Board.createBoard(10,10);
-Board.showBoard(board);
+ 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 = "";
+ }
+
+
+}
+
+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;
+ }
+}
+
+//funckcje
+
+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
+}
+
+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 += "
"
+ }
+ }
+}
+
+let board = createBoard(10,10);
let agent = new Agent(0,0, 'Right');
-
-agent.showAgent();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+function start(){
+ showBoard(board);
+ agent.showAgent();
+}