UNPKG

@satheshsat/puzzle

Version:
1 lines 17.7 kB
{"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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"}