Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Wojciech Łukasik 2020-04-28 13:51:11 +02:00
commit c0201f4a81

View File

@ -119,16 +119,20 @@ class Field{
setIsOccupiedByAgent(isOccupiedByAgent){
this.isOccupiedByAgent = isOccupiedByAgent;
}
setCostOfTravel(costOfTravel){
this.costOfTravel = costOfTravel;
}
}
class Shelf{
constructor(x, y){
this.xField = x;
this.yField = y;
constructor(accessY, accessX, havePlace, box1, box2, box3){
this.accessX = accessX;
this.accessY = accessY;
this.havePlace = true;
this.box1 = 0;
this.box2 = 0;
this.box3 = 0;
this.box1 = box1;
this.box2 = box2;
this.box3 = box3;
}
getParams(){
@ -150,11 +154,11 @@ class Shelf{
}
setbox2(box1){
this.box2 = box1;
this.box2 = box2;
}
setbox3(box1){
this.box3 = box1;
this.box3 = box3;
}
setHavePlace(havePlace){
@ -162,7 +166,20 @@ class Shelf{
}
}
//funkcje
class Candy{
constructor(type, taste, mark, id){
this.type = type;
this.taste = taste;
this.mark = mark;
this.id = id;
}
getId(){
return this.id;
}
}
//funckcje
function createBoard(rangeX, rangeY){
const board = [];
@ -178,7 +195,7 @@ function createBoard(rangeX, rangeY){
return board
}
function createShelf(board){
function createShelfOnBoard(board){
//pierwszy poziom
board[2][2].setIsShelf(true);
board[3][2].setIsShelf(true);
@ -214,6 +231,94 @@ function createShelf(board){
return board
}
function createCostofField(board, rangeX, rangeY){
let cost;
let number;
for(let y = 0; y < rangeY; y++){
for(let x = 0; x < rangeX; x++){
number = 0;
if(y<9 && board[y+1][x].getIsShelf()){
number = number + 1;
}
if(y>0 && board[y-1][x].getIsShelf()){
number = number + 1;
}
if(x<9 && board[y][x+1].getIsShelf()){
number = number + 1;
}
if(x>0 && board[y][x-1].getIsShelf()){
number = number + 1;
}
cost = number*2;
if(cost==0){
cost = 1;
}
board[y][x].setCostOfTravel(cost);
}
}
return board;
}
function createShelf(){
const listOfShelf = [];
//pierwszy poziom
let shelf = new Shelf(2, 1, true, 221, 222, 0);
listOfShelf.push(shelf)
shelf = new Shelf(3, 1, true, 321, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(4, 4, false, 341, 342, 343);
listOfShelf.push(shelf)
shelf = new Shelf(1, 4, true, 0, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(4, 6, true, 361, 362, 0);
listOfShelf.push(shelf)
shelf = new Shelf(1, 6, true, 261, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(3, 9, true, 381, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(2, 9, true, 281, 0, 0);
listOfShelf.push(shelf)
//drugi poziom
shelf = new Shelf(5, 1, true, 521, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(5, 4, true, 531, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(5, 6, true, 571, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(5, 9, true, 581, 0, 0);
listOfShelf.push(shelf)
//trzeci poziom
shelf = new Shelf(7, 1, true, 721, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(8, 1, true, 821, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(6, 4, true, 741, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(9, 4, true, 841, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(6, 6, true, 761, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(9, 6, true, 861, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(7, 9, true, 781, 0, 0);
listOfShelf.push(shelf)
shelf = new Shelf(8, 9, true, 881, 0, 0);
listOfShelf.push(shelf)
return listOfShelf;
}
function showBoard(board){
for(let y = board.length - 1; y >= 0 ; y--){
document.getElementById("board").innerHTML += "<div class='row' id='row-" + y + "'> </div>";
@ -236,7 +341,10 @@ function getDistance(x1,y1,x2,y2){
let board = createBoard(10,10);
board = createShelf(board);
board = createShelfOnBoard(board);
board = createCostofField(board, 10, 10);
let candy = new Candy('zelek', 'truskawkowy', 'Jumbo', 222);
let shelfs = createShelf();
let agent = new Agent(0,0, 'Right');