init
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/charb.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/charf.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.1 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/charl.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/charr.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/coal.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/fire_coal.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/floor.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/grill.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/img/sprites/wall.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
							
								
								
									
										2145
									
								
								assets/maps/microban.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										103
									
								
								assets/script.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,103 @@
 | 
			
		|||
class Game {
 | 
			
		||||
  constructor() {
 | 
			
		||||
    this.mapInstance = null;
 | 
			
		||||
    this.level = 153;
 | 
			
		||||
    this.lives = 10;
 | 
			
		||||
    this.points = 0;
 | 
			
		||||
    this.totalMoves = 0;
 | 
			
		||||
    this.levelMoves = {};
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  initializeLevel() {
 | 
			
		||||
    this.mapInstance = new Map();
 | 
			
		||||
    this.mapInstance.generateMapArray();
 | 
			
		||||
    this.loop();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  loop() {
 | 
			
		||||
    this.mapInstance.display();
 | 
			
		||||
    // this.mapInstance.waitForInput();
 | 
			
		||||
    // this.mapInstance.checkWinCondition();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  handlePoints() {}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Map {
 | 
			
		||||
  constructor() {
 | 
			
		||||
    this.level = g.level;
 | 
			
		||||
    this.levelMap = levels[this.level][0];
 | 
			
		||||
    this.levelPar = levels[this.level][1];
 | 
			
		||||
    this.mapArray = [];
 | 
			
		||||
    this.storageLocations = [];
 | 
			
		||||
 | 
			
		||||
    this.playerX = null;
 | 
			
		||||
    this.playerY = null;
 | 
			
		||||
    this.previousElement = " ";
 | 
			
		||||
 | 
			
		||||
    this.win = false;
 | 
			
		||||
    this.lose = false;
 | 
			
		||||
    this.breakCondition = true;
 | 
			
		||||
 | 
			
		||||
    this.totalWin = g.level + 1 == levels.length;
 | 
			
		||||
    this.finalPointsGiven = false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  generateMapArray() {
 | 
			
		||||
    g.levelMoves[this.level] = 0;
 | 
			
		||||
    let levelArray = this.levelMap.split("\n");
 | 
			
		||||
 | 
			
		||||
    for (let i = 0; i < levelArray.length; i++) {
 | 
			
		||||
      if (i === 0 || i === levelArray.length - 1) {
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      let rowElements = levelArray[i].split("");
 | 
			
		||||
 | 
			
		||||
      if (rowElements.includes("@")) {
 | 
			
		||||
        this.playerX = i - 1;
 | 
			
		||||
        this.playerY = rowElements.indexOf("@");
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      let storageTypes = [".", "*"];
 | 
			
		||||
      for (let j = 0; j < storageTypes.length; j++) {
 | 
			
		||||
        if (storageTypes[j] in rowElements) {
 | 
			
		||||
          for (let k = 0; k < rowElements.length; k++) {
 | 
			
		||||
            if (rowElements[k] === storageTypes[j]) {
 | 
			
		||||
              this.storageLocations.push([i - 1, k]);
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      this.mapArray.push(rowElements);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  display() {
 | 
			
		||||
    let map = "";
 | 
			
		||||
    for (let i = 0; i < this.mapArray.length; i++) {
 | 
			
		||||
      for (let j = 0; j < this.mapArray[i].length; j++) {
 | 
			
		||||
        if (this.mapArray[i][j] === "#") {
 | 
			
		||||
          map += '<img src="assets/img/sprites/wall.png">';
 | 
			
		||||
        } else if (this.mapArray[i][j] === " ") {
 | 
			
		||||
          map += '<img src="assets/img/sprites/floor.png">';
 | 
			
		||||
        } else if (this.mapArray[i][j] === "0") {
 | 
			
		||||
          map += '<img src="assets/img/sprites/coal.png">';
 | 
			
		||||
        } else if (this.mapArray[i][j] === "*") {
 | 
			
		||||
          map += '<img src="assets/img/sprites/fire_coal.png">';
 | 
			
		||||
        } else if (this.mapArray[i][j] === "@") {
 | 
			
		||||
          map += '<img src="assets/img/sprites/charf.png">';
 | 
			
		||||
        } else if (this.mapArray[i][j] === ".") {
 | 
			
		||||
          map += '<img src="assets/img/sprites/grill.png">';
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      map += "<br>";
 | 
			
		||||
    }
 | 
			
		||||
    let mapDiv = document.getElementById("map");
 | 
			
		||||
    mapDiv.innerHTML = map;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let levels = microban_levels;
 | 
			
		||||
let g = new Game();
 | 
			
		||||
g.initializeLevel();
 | 
			
		||||
							
								
								
									
										29
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
<html>
 | 
			
		||||
  <head>
 | 
			
		||||
    <script src="assets/maps/microban.js"></script>
 | 
			
		||||
  </head>
 | 
			
		||||
 | 
			
		||||
  <body>
 | 
			
		||||
    <style>
 | 
			
		||||
      body {
 | 
			
		||||
        font-family: monospace;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        background-color: #efd4af;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #map {
 | 
			
		||||
        white-space: pre;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #map > img {
 | 
			
		||||
        height: 50px;
 | 
			
		||||
        width: 50px;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
 | 
			
		||||
    <center>
 | 
			
		||||
      <div id="map"></div>
 | 
			
		||||
    </center>
 | 
			
		||||
    <script src="assets/script.js"></script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||