{"version":3,"file":"satheshsat-puzzle.mjs","sources":["../../../projects/puzzle/src/lib/puzzle.service.ts","../../../projects/puzzle/src/lib/image-puzzle/image-puzzle.component.ts","../../../projects/puzzle/src/lib/image-puzzle/image-puzzle.component.html","../../../projects/puzzle/src/lib/puzzle.component.ts","../../../projects/puzzle/src/lib/puzzle.component.html","../../../projects/puzzle/src/lib/puzzle.module.ts","../../../projects/puzzle/src/public-api.ts","../../../projects/puzzle/src/satheshsat-puzzle.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PuzzleService {\n\n  constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Observable, timer } from 'rxjs';\n\n@Component({\n  selector: 'lib-image-puzzle',\n  templateUrl: './image-puzzle.component.html',\n  styleUrls: ['./image-puzzle.component.css']\n})\nexport class ImagePuzzleComponent implements OnInit {\n\n  imageUrl: string = 'https://cdn.britannica.com/86/170586-050-AB7FEFAE/Taj-Mahal-Agra-India.jpg';\n  imageSize: number = 500;\n  gridsize: number = 2;\n  boxSize: number = 100 / (this.gridsize - 1);\n  index: number = 0;\n  totalBoxes: number = this.gridsize * this.gridsize;\n  Image: any[] = [];\n  imageName: string = this.imageUrl.substr(this.imageUrl.lastIndexOf('/') + 1).split('.')[0];\n  difficulty: string = '2';\n  steps: number = 0;\n  ticks: string = '0:00';\n  timer: any = timer(0, 1000);\n  timeVar: any;\n  gameComplete: Boolean = false;\n\n  indexes: number[] = [];\n  position: number[] = [];\n  ngOnInit() {\n    this.startGame();\n  }\n\n  isSorted(indexes: any): Boolean {\n    let i: number = 0;\n    for (i = 0; i < indexes.length; i++) {\n      if (indexes[i] !== i) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  randomize(imageParts: any[]): any[] {\n    let i = 0, img: any[] = [], ran = 0;\n    for (i = 0; i < imageParts.length; i++) {\n      ran = Math.floor(Math.random() * imageParts.length);\n      while (imageParts[ran] == null) {\n        ran = Math.floor(Math.random() * imageParts.length);\n      }\n      img.push(imageParts[ran]);\n      this.position.push(imageParts[ran].index);\n      imageParts[ran] = null;\n    }\n    this.printIndexes(this.indexes);\n    this.printIndexes(this.position);\n    return img;\n  }\n\n  onDragStart(event: any): void {\n    event.dataTransfer.setData('data', event.target.id);\n  }\n  onDrop(event: any): void {\n    let origin = event.dataTransfer.getData('data');\n    let dest = event.target.id;\n\n\n    let originEl: any = document.getElementById(origin);\n    let destEl: any = document.getElementById(dest);\n\n    let origincss = originEl.style.cssText;\n    let destcss = event.target.style.cssText;\n\n\n    destEl.style.cssText = origincss;\n    originEl.style.cssText = destcss;\n    originEl.id = dest;\n    destEl.id = origin;\n\n\n    for (let i = 0; i < this.position.length; i++) {\n      if (this.position[i].toString() === originEl.id) {\n        this.position[i] = Number(destEl.id);\n      } else if (this.position[i].toString() === destEl.id) {\n        this.position[i] = Number(originEl.id);\n      }\n\n    }\n\n    this.printIndexes(this.position);\n    this.steps++;\n    this.gameComplete = this.isSorted(this.position);\n    if (this.gameComplete) {\n\n      if (this.timeVar) {\n        this.timeVar.unsubscribe();\n      }\n    }\n\n   \n  }\n\n  allowDrop(event: any): void {\n    event.preventDefault();\n    event.target.style.opacity = 1;\n  }\n\n  printIndexes(sorts: number[]): void {\n    let i: number = 0, ind: string = '';\n    for (i = 0; i < sorts.length; i++) {\n      ind += sorts[i].toString() + ' , ';\n    }\n    console.log(ind);\n  }\n\n  reRandomize(): void {\n    this.gameComplete = false;\n    this.Image = this.randomize(this.Image);\n  }\n\n  startGame(): void {\n    this.reset();\n    this.initializeGame();\n    this.breakImageParts();\n    this.reRandomize();\n\n    if (this.timeVar) {\n      this.timeVar.unsubscribe();\n    }\n    this.timeVar = this.timer.subscribe((t: any) => {\n      this.settime(t);\n    });\n  }\n\n  settime(t: number): void {\n    this.ticks = Math.floor(t / 60).toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false }) + ':' +\n      (t % 60).toLocaleString('en-US', { minimumIntegerDigits: 2, useGrouping: false });\n  }\n  breakImageParts(): void {\n    for (this.index = 0; this.index < this.totalBoxes; this.index++) {\n      const x: string = (this.boxSize * (this.index % this.gridsize)) + '%';\n      const y: string = (this.boxSize * Math.floor(this.index / this.gridsize)) + '%';\n      let img: ImageBox = new ImageBox();\n      img.x_pos = x;\n      img.y_pos = y;\n      img.index = this.index;\n      this.indexes.push(this.index);\n      this.Image.push(img);\n    }\n    this.boxSize = this.imageSize / this.gridsize;\n  }\n\n  initializeGame(): void {\n\n    this.gridsize = Number(this.difficulty);\n    console.log(this.gridsize);\n    this.boxSize = 100 / (this.gridsize - 1);\n    this.index = 0;\n    this.totalBoxes = this.gridsize * this.gridsize;\n  }\n\n  reset(): void {\n    this.Image = [];\n    this.indexes = [];\n    this.position = [];\n  }\n\n}\n\nclass ImageBox {\n  x_pos: string | any;\n  y_pos: string | any;\n  index: number | any;\n}\n","<div class=\"imagePuzzle\">\n\t<div class=\"unsolvedPuzzle\">\n\t\t<h1 class=\"sectionName\">{{imageName}}</h1>\n\t\t<ul class=\"puzzle\" dropzone=\"true\">\n\t\t\t<li *ngFor=\"let img of Image\" class=\"box\" [draggable]=\"true\" [id]=\"img.index\" (dragstart)=\"onDragStart($event)\"\n\t\t\t\t(drop)=\"onDrop($event)\" (dragover)=\"allowDrop($event)\" [style.width.px]=\"boxSize\" [style.height.px]=\"boxSize\"\n\t\t\t\t[ngStyle]=\"{'background-image':'url(' + imageUrl + ') ','background-repeat':'no-repeat', 'background-position': '' + img.x_pos + ' '  + img.y_pos + '','background-size':''+ (gridsize * 100) +'% '+ (gridsize * 100) +'%'}\">\n\n\t\t\t</li>\n\t\t</ul>\n\t\t<div class=\"successMessage\" *ngIf=\"gameComplete\">\n\t\t\tGame Complete. <br>\n\t\t\tYou completed the game in time = {{ticks}} & {{steps }} steps.\n\t\t</div>\n\n\t</div>\n\t<div class=\"scoreboard\">\n\t\t<h1 class=\"sectionName\">Scoreboard</h1>\n\t\t<h3 class=\"score-detail\">\n\t\t\t<span>Time Spent: {{ ticks }}        </span>\n\t\t\t<span>  Steps : {{steps}}</span>\n\t\t</h3>\n\t\t<div class=\"finalImage\" [ngStyle]=\"{'background-image':'url(' + imageUrl + ') '}\"></div>\n\t\t<div class=\"image-url\">\n\t\t\t<div class=\"input-group\">\n\t\t\t\t<span class=\"input-group-btn\">\n                   <div class=\"btn btn-default\" >Image Url!</div>\n                </span>\n\t\t\t\t<input type=\"url\" class=\"form-control\" placeholder=\"Image Url...\" [(ngModel)]=\"imageUrl\">\n\t\t\t</div>\n\t\t</div>\n\n\t\t<h3>Difficulty Level</h3>\n\t\t<div class=\"difficulty-levels\">\n\t\t\t<div class=\"input-group\">\n\t\t\t\t<input type=\"radio\" [(ngModel)]=\"difficulty\" name=\"difficulty\" value=\"2\" checked (change)=\"startGame()\">Low\n\t\t\t</div>\n\t\t\t<div class=\"input-group\">\n\t\t\t\t<input type=\"radio\" [(ngModel)]=\"difficulty\" name=\"difficulty\" value=\"3\" (change)=\"startGame()\">Medium\n\t\t\t</div>\n\t\t\t<div class=\"input-group\">\n\t\t\t\t<input type=\"radio\" [(ngModel)]=\"difficulty\" name=\"difficulty\" value=\"4\" (change)=\"startGame()\">High\n\t\t\t</div>\n\t\t</div>\n\t\t<br>\n\t\t<div class=\"score-detail\">\n\t\t\t<button type=\"button\" class=\"btn btn-primary\" (click)=\"startGame()\"> Restart Game</button>\n\t\t\t<button type=\"button\" class=\"btn btn-primary\" (click)=\"reRandomize()\"> Randomize</button>\n\t\t</div>\n\n\t</div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'satheshsat-puzzle',\n  templateUrl: './puzzle.component.html',\n  styleUrls: ['./puzzle.component.css']\n})\nexport class PuzzleComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<nav class=\"navbar navbar-inverse\">\n\t<div class=\"game-title\">Image Puzzle Game</div>\n</nav>\n<div class=\"ImagePuzzleContainer\">\n\t<lib-image-puzzle></lib-image-puzzle>\n</div>","import { NgModule } from '@angular/core';\nimport { PuzzleComponent } from './puzzle.component';\nimport { ImagePuzzleComponent } from './image-puzzle/image-puzzle.component';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\n\n@NgModule({\n  declarations: [\n    PuzzleComponent,\n    ImagePuzzleComponent\n  ],\n  imports: [\n    FormsModule,\n    BrowserModule\n  ],\n  exports: [\n    PuzzleComponent\n  ]\n})\nexport class PuzzleModule { }\n","/*\n * Public API Surface of puzzle\n */\n\nexport * from './lib/puzzle.service';\nexport * from './lib/puzzle.component';\nexport * from './lib/puzzle.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ImagePuzzleComponent"],"mappings":"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"}