From 7f67325c937bc9e802a5718937f2f19328725721 Mon Sep 17 00:00:00 2001 From: Tomek Date: Mon, 27 Apr 2020 20:47:43 +0200 Subject: [PATCH] =?UTF-8?q?Zmiany=20wprowadzone=20przez=20Wojtek=20=C5=81u?= =?UTF-8?q?kasik?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +- frontend/img/Down.png | Bin 0 -> 560 bytes frontend/img/Left.png | Bin 0 -> 567 bytes frontend/img/Right.png | Bin 0 -> 574 bytes frontend/img/Up.png | Bin 0 -> 509 bytes frontend/index.html | 102 ++-------------------------- frontend/js/Agent.js | 87 ++++++++++++++++++++++++ frontend/js/Board.js | 30 +++++++++ frontend/js/Field.js | 22 ++++++ frontend/js/main.js | 27 ++++++++ frontend/js/script.js | 125 ++++++++++++++++++++++++++++++++++ frontend/script.js | 150 ----------------------------------------- frontend/styles.css | 35 ++++++---- 13 files changed, 319 insertions(+), 262 deletions(-) create mode 100644 frontend/img/Down.png create mode 100644 frontend/img/Left.png create mode 100644 frontend/img/Right.png create mode 100644 frontend/img/Up.png create mode 100644 frontend/js/Agent.js create mode 100644 frontend/js/Board.js create mode 100644 frontend/js/Field.js create mode 100644 frontend/js/main.js create mode 100644 frontend/js/script.js delete mode 100644 frontend/script.js 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 0000000000000000000000000000000000000000..44308b3203e7047aa24bb6dad14c66dae4684f68 GIT binary patch literal 560 zcmV-00?+-4P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D03mcmSad^jWnpw_ zZ*Cw|X>DZyGB7eQIxsXkGB+SGI65^oIx;h~Qs5{600EduL_t(&L+zNm62l-21nvC) zKRcQsg(n!$;{?)}ZITLZ(Lv$!x~{{A^E`k5+IZ}aSK^q|0As+EbS5?SJOCw>%pFTA zlahzb9bLB1?^lku524#aGo=YKe~3bgr!?P(5N#?`TH;gSZ!J(-=u=<@;3_TmDR5%2 zl!EvahGE3dLwv?cp+;2bM;a&v^eJ?Ly{vd)M^tFVd*$N9x0QPRpm)h~UM8hE^^;Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D03mcmSad^jWnpw_ zZ*Cw|X>DZyGB7eQIxsXkGB+SGI65^oIx;h~Qs5{600Ey#L_t(&L+#nyZp0uAMbTvb z|DQ8wM8qKO7X!A%ercbAS3N~hdq2-}>FV=-Rn#F#=#V6&khI|vzwi6~F4p)w>qvP? zSodJlNv)Ew)(Iz)#xZX7bI!URXg#R@f%ID<$9NS7Cf?F)4=Nr(Nm}4B?LoQ+{YeTiruT!V#`CN7we@s5 z#nbn@^tO>Nfou(3mukUG+JeE}IAz%qEH%JKjJ002ovPDHLk FV1l3I_lf`j literal 0 HcmV?d00001 diff --git a/frontend/img/Right.png b/frontend/img/Right.png new file mode 100644 index 0000000000000000000000000000000000000000..edce10b0b49b34dd5b8c4c142fc4eb64fbc60fb0 GIT binary patch literal 574 zcmV-E0>S->P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D03mcmSad^jWnpw_ zZ*Cw|X>DZyGB7eQIxsXkGB+SGI65^oIx;h~Qs5{600E{+L_t(&L+zT~4#F@9MmOL8 zohOE+YS$my0)?jMMlXzT`Y~M0&g;64wRqjH3$c|vu%HspdN|MXe)rFm-P5m>)5xKw z*R0fP@B@T02doCgVkMSy8fT=9KP4kRNOv>l2Je?XtMA=|sfZ$)?l4TJ z6lgl`Tgh@n2)#oeDIr8FPf7sA>a!l~Pu-Kk!f=*Spb&#sB_Lu?72J^M=u zWXc&hQ!2|Kw-V)}(;+tLCMEizf0Zl;)zq7Vlv>X^e(u54-;{lW6Q^Wn{JJ|aI(Q=| zn||PC*7&i^NIIn{m6H zrW6>DOHKx9RtmJbNt*=vl>%iqHIo2?k~OI7!4X@@16#=h%PAel8{o6UAG1IE9{>OV M07*qoM6N<$f^N|B?EnA( literal 0 HcmV?d00001 diff --git a/frontend/img/Up.png b/frontend/img/Up.png new file mode 100644 index 0000000000000000000000000000000000000000..c71a34835986d85135aef485eb5e19d74948d845 GIT binary patch literal 509 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0g_2XK~!i%?a;xt z!ypJn(f1CdmrxtghbPNgxB8ubLlI?j4S6*nrblV$1{_=iwJM)aECM^Qy!{FKN9C^Ry7M_3xvy0q9y#3VzxzU~VG zQletVGAA*b7)4w5Noi2DrSXlS^r(BXPs)V4Coev!pmFX0SKht^rEB}7WGG$RCnZDa z+CC{6O4k-Rso?n=(75*Elc;;LPs)V4C+!amB}UPfeNq|}ZRvhvG$kr_taMUAKr)o; z8(o|XwJxo9QbAY(6dIA;od8t?#HT-s5;B_WAHsSuj1+=69##!1$OVU5Y$ zZ~&qwctkiMZkk(AK{X|Y{rD#ql)c1LcgOJs=AQXjhEVlz00000NkvXXu0mjfHhSH9 literal 0 HcmV?d00001 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 @@ + Inteligentny wózek - + - +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
+
+ \ 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; } +