{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/PokerApp/Poker.CardModel.ts","webpack:///src/PokerApp/Poker.DeckModel.ts","webpack:///src/PokerApp/Poker.HandComponent.ts","webpack:///src/PokerApp/Poker.HandView.html","webpack:///src/PokerApp/Poker.OptionDialogue.html","webpack:///src/PokerApp/Poker.HandModel.ts","webpack:///src/PokerApp/Poker.MainComponent.ts","webpack:///src/PokerApp/Poker.MainView.html","webpack:///src/PokerApp/Poker.MainModule.ts","webpack:///src/PokerApp/Poker.MainRouting.ts","webpack:///src/PokerApp/Poker.OptionModel.ts","webpack:///src/PokerApp/Poker.SquareModel.ts","webpack:///src/PokerApp/hand-guard.guard.ts","webpack:///src/PokerApp/material-module.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","Suit","CardModel","cardId","Blank","Club","Diamond","Heart","Spade","filename","cardSuit","getCardSuit","getSuitCode","getNumberCode","getImageName","getCardNumber","DeckModel","deck","Array","currentCard","previousCard","i","returnValue","deck1","Math","random","iPos","maxValue","maxIndex","indx","handModel","HandComponent","dialog","height1","floor","window","screen","availHeight","height2","toString","trim","imageStyles","width","height","isGameStarted","isGameComplete","newGame","confirm","dialogRef","open","OptionDialogData","data","options","afterClosed","subscribe","result","setOptions","openOptionDialog","selector","templateUrl","HandRow","squares","HandModel","handRows","deckModel","isFiveRows","isFiveColumns","deltCards","tabledCards","totalScore","repositionSquares","setAvailableSquares","shuffleCards","setNewGame","y","x","dealCard","replayDeck","row","col","cardModel","isAvailable","calculateScore","doReposition","lastCardId","undoCard","currentCardId","hand","calculateHand","score","cards","square","flushSuit","cardSuitCode","numberCounts","lowCard","hasAce","highCard","isPair","is2Pair","is3Kind","is4Kind","isStraight","isFlush","scoreText","cardNumber","isEasyMode","colStart","colEnd","rowStart","rowEnd","isCard","isAdjacientCard","MainComponent","title","MainModule","forRoot","declarations","imports","providers","bootstrap","MainRoutes","path","loadChildren","mod","HandModule","OptionModel","isAllowUndo","SquareModel","handRow","handCol","HandGuardGuard","component","currentRoute","currentState","nextState","canDeactivate","AppMaterialModule","environment","production","bootstrapModule","err","console","error"],"mappings":"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","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","\r\nenum Suit {\r\n Spade = \"Spade\",\r\n Heart = \"Heart\",\r\n Diamond = \"Diamond\",\r\n Club = \"Club\",\r\n Blank = \"\",\r\n}\r\n\r\nexport class CardModel {\r\n public cardId: number = 0;\r\n\r\n constructor (cardId: number) {\r\n this.cardId = cardId;\r\n }\r\n \r\n public get cardText() : string {\r\n return this.getSuitCode(this.cardId) + \" \" + this.getNumberCode(this.cardId);\r\n }\r\n\r\n public get imageName() : string {\r\n return this.getImageName(this.cardId);\r\n }\r\n\r\n /* public get cardSuit() {\r\n return this.getCardSuit(this.cardId);\r\n } */\r\n public get cardNumberCode() {\r\n return this.getNumberCode(this.cardId);\r\n }\r\n public get cardSuitCode() {\r\n return this.getSuitCode(this.cardId);\r\n }\r\n public get cardNumber() {\r\n return this.getCardNumber(this.cardId);\r\n }\r\n\r\n private getCardSuit(cardId: number) {\r\n if (cardId < 1)\r\n return Suit.Blank;\r\n else if (cardId < 14)\r\n return Suit.Club;\r\n else if (cardId < 27)\r\n return Suit.Diamond;\r\n else if (cardId < 40)\r\n return Suit.Heart;\r\n else if (cardId < 53)\r\n return Suit.Spade;\r\n return Suit.Blank;\r\n }\r\n\r\n private getSuitCode(cardId: number) {\r\n if (cardId < 1)\r\n return '';\r\n else if (cardId < 14)\r\n return 'C';\r\n else if (cardId < 27)\r\n return 'D';\r\n else if (cardId < 40)\r\n return 'H';\r\n else if (cardId < 53)\r\n return 'S';\r\n return '';\r\n }\r\n\r\n private getCardNumber(cardId: number) {\r\n while (cardId > 13)\r\n {\r\n cardId = cardId -13;\r\n }\r\n return cardId;\r\n }\r\n\r\n private getNumberCode(cardId: number) {\r\n while (cardId > 13)\r\n {\r\n cardId = cardId -13;\r\n }\r\n if (cardId === 1)\r\n return \"A\";\r\n else if (cardId === 2)\r\n return \"2\";\r\n else if (cardId === 3)\r\n return \"3\";\r\n else if (cardId === 4)\r\n return \"4\";\r\n else if (cardId === 5)\r\n return \"5\";\r\n else if (cardId === 6)\r\n return \"6\";\r\n else if (cardId === 7)\r\n return \"7\";\r\n else if (cardId === 8)\r\n return \"8\";\r\n else if (cardId === 9)\r\n return \"9\";\r\n else if (cardId === 10)\r\n return \"10\";\r\n else if (cardId === 11)\r\n return \"J\";\r\n else if (cardId === 12)\r\n return \"Q\";\r\n else if (cardId === 13)\r\n return \"K\";\r\n\r\n return \"\";\r\n }\r\n\r\n private getImageName(cardId: number) {\r\n let filename = 'Empty';\r\n let cardSuit = this.getCardSuit(cardId);\r\n \r\n if (cardSuit === Suit.Club) {\r\n filename = '_club'; \r\n }\r\n else if (cardSuit === Suit.Diamond) {\r\n filename = '_diamond';\r\n }\r\n else if (cardSuit === Suit.Heart) {\r\n filename = '_heart';\r\n }\r\n else if (cardSuit === Suit.Spade) {\r\n filename = '_spade';\r\n }\r\n \r\n while (cardId > 13)\r\n {\r\n cardId = cardId -13;\r\n }\r\n if (cardId === 1)\r\n filename = 'A' + filename;\r\n else if (cardId === 2)\r\n filename = '2' + filename;\r\n else if (cardId === 3)\r\n filename = '3' + filename;\r\n else if (cardId === 4)\r\n filename = '4' + filename;\r\n else if (cardId === 5)\r\n filename = '5' + filename;\r\n else if (cardId === 6)\r\n filename = '6' + filename;\r\n else if (cardId === 7)\r\n filename = '7' + filename;\r\n else if (cardId === 8)\r\n filename = '8' + filename;\r\n else if (cardId === 9)\r\n filename = '9' + filename;\r\n else if (cardId === 10)\r\n filename = '10' + filename;\r\n else if (cardId === 11)\r\n filename = 'J' + filename;\r\n else if (cardId === 12)\r\n filename = 'Q' + filename;\r\n else if (cardId === 13)\r\n filename = 'K' + filename;\r\n\r\n return filename;\r\n }\r\n\r\n /* public get cardName() : string {\r\n return this.getSuitName(this.cardSuit) + \" \" + this.getNumberName(this.cardId);\r\n } */\r\n\r\n /* public getSuitName(cardSuit: Suit) {\r\n if (cardSuit=== Suit.Spade)\r\n return \"Spade\";\r\n else if (cardSuit === Suit.Heart)\r\n return \"Heart\";\r\n else if (cardSuit === Suit.Diamond)\r\n return \"Diamond\";\r\n else if (cardSuit === Suit.Club)\r\n return \"Club\";\r\n return \"\";\r\n } */\r\n\r\n /* private getNumberName(cardNumber: number) {\r\n while (cardNumber > 13)\r\n {\r\n cardNumber = cardNumber -13;\r\n }\r\n if (cardNumber === 1)\r\n return \"Ace\";\r\n else if (cardNumber === 2)\r\n return \"Two\";\r\n else if (cardNumber === 3)\r\n return \"Three\";\r\n else if (cardNumber === 4)\r\n return \"Four\";\r\n else if (cardNumber === 5)\r\n return \"Five\";\r\n else if (cardNumber === 6)\r\n return \"Six\";\r\n else if (cardNumber === 7)\r\n return \"Seven\";\r\n else if (cardNumber === 8)\r\n return \"Eight\";\r\n else if (cardNumber === 9)\r\n return \"Nine\";\r\n else if (cardNumber === 10)\r\n return \"Ten\";\r\n else if (cardNumber === 11)\r\n return \"Jack\";\r\n else if (cardNumber === 12)\r\n return \"Queen\";\r\n else if (cardNumber === 13)\r\n return \"King\";\r\n\r\n return \"\";\r\n } */\r\n\r\n /* public getCardId(cardSuit: Suit, cardNumber: number): number {\r\n if (cardNumber > 13)\r\n return 0;\r\n else if (cardNumber < 1)\r\n return 0;\r\n else if (cardSuit === Suit.Club)\r\n return cardNumber;\r\n else if (cardSuit === Suit.Diamond)\r\n return cardNumber + 13;\r\n else if (cardSuit === Suit.Heart)\r\n return cardNumber + 26;\r\n else if (cardSuit === Suit.Spade)\r\n return cardNumber + 39;\r\n return 0;\r\n } */\r\n\r\n}","import { CardModel } from \"./Poker.CardModel\";\r\n\r\nexport class DeckModel {\r\n \r\n private deck = new Array(52);\r\n private currentCard = 0;\r\n private previousCard = 0;\r\n\r\n constructor(){\r\n for (let i = 0; i < 52; i++) {\r\n this.deck[i] = 0;\r\n }\r\n }\r\n\r\n public get currentCardId() : number {\r\n if ((this.currentCard < 0) || (this.currentCard > 51))\r\n return 0;\r\n return this.deck[this.currentCard];\r\n }\r\n \r\n dealCard(): number {\r\n if (this.currentCard < 52) {\r\n this.previousCard = this.currentCard;\r\n this.currentCard++;\r\n let returnValue = this.deck[this.currentCard];\r\n return returnValue;\r\n }\r\n return 0;\r\n }\r\n\r\n undoCard(): number {\r\n if (this.previousCard > 0) {\r\n this.previousCard--;\r\n this.currentCard--;\r\n let returnValue = this.deck[this.currentCard];\r\n return returnValue;\r\n }\r\n return 0;\r\n }\r\n\r\n replayDeck(): void {\r\n this.currentCard = -1;\r\n this.previousCard = -1;\r\n }\r\n\r\n shuffleCards(): void {\r\n\r\n let deck1 = new Array(52);\r\n for (let i = 0; i < 52; i++) {\r\n deck1[i] = Math.random();\r\n }\r\n\r\n for (let iPos = 0; iPos < 52; iPos++) {\r\n let maxValue = -1;\r\n let maxIndex = 1;\r\n for (let indx = 0; indx < 52; indx++) {\r\n if (maxValue < deck1[indx]) {\r\n maxValue = deck1[indx];\r\n maxIndex = indx;\r\n }\r\n }\r\n this.deck[iPos] = maxIndex + 1;\r\n deck1[maxIndex] = -1;\r\n }\r\n\r\n this.currentCard = -1;\r\n this.previousCard = -1;\r\n }\r\n}","import { Component, Inject, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HandModel } from \"./Poker.HandModel\";\r\nimport { CardModel } from \"./Poker.CardModel\";\r\nimport { OptionModel } from \"./Poker.OptionModel\";\r\nimport { AppMaterialModule } from './material-module';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './Poker.HandView.html'\r\n})\r\n\r\nexport class HandComponent implements OnInit, AfterViewInit {\r\n\r\nhandModel = new HandModel();\r\n\r\n imageStyles: {};\r\n\r\n constructor(public dialog: MatDialog) {}\r\n\r\n ngOnInit(): void {\r\n let height1 = Math.floor(window.screen.availHeight / 8);\r\n let height2 = height1.toString().trim() + 'px';\r\n if (height1 > 80) height2 = '80px';\r\n\r\n this.imageStyles = {\r\n width: '100%',\r\n height: height2\r\n };\r\n }\r\n\r\n public get canDeactivate() {\r\n return false;\r\n return this.handModel.isGameComplete || !this.handModel.isGameStarted;\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n \r\n newGame(): void {\r\n if (!this.handModel.isGameStarted || this.handModel.isGameComplete) {\r\n this.handModel.newGame();\r\n }\r\n else {\r\n if (confirm(\"Game in progress, are you sure?\")) {\r\n this.handModel.newGame();\r\n };\r\n }\r\n }\r\n \r\n openOptionDialog(): void {\r\n const dialogRef = this.dialog.open(OptionDialogData, {\r\n width: '250px',\r\n data: this.handModel.options\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.handModel.setOptions();\r\n });\r\n }\r\n\r\n } \r\n\r\n/**\r\n * @title Injecting data when opening a dialog\r\n */\r\n\r\n@Component({\r\n templateUrl: 'Poker.OptionDialogue.html',\r\n})\r\n\r\nexport class OptionDialogData {\r\n constructor(@Inject(MAT_DIALOG_DATA) public options: OptionModel) {}\r\n}\r\n","\n
\n
\n
\n\n
\n \n
\n\n
\n
\n \n
\n \n
\n \n
\n \n \n \n
\n
\n\n
\n
\n \n
\n \n
\n \n
\n
\n
\n\n
\n

{{handModel.scoreText}}

\n
\n\n
\n \n
\n\n
\n\n
\n
\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\nby MickBraz\n","

Game Options

\r\n
\r\n
\r\n
Easy mode
\r\n
\r\n

\r\n
\r\n \r\n
\r\n\r\n","import { CardModel } from './Poker.CardModel';\r\nimport { SquareModel } from './Poker.SquareModel';\r\nimport { DeckModel } from './Poker.DeckModel';\r\nimport { OptionModel } from './Poker.OptionModel';\r\nimport { NumberFormatStyle } from '@angular/common';\r\n\r\nclass HandRow {\r\n squares: SquareModel[] = [new SquareModel(0,0,0), new SquareModel(0,0,0)\r\n , new SquareModel(0,0,0), new SquareModel(0,0,0)\r\n , new SquareModel(0,0,0), new SquareModel(0,0,0)];\r\n}\r\n\r\nexport class HandModel {\r\n\r\n public handRows: HandRow[] = [new HandRow(), new HandRow()\r\n , new HandRow(), new HandRow(), new HandRow(), new HandRow()];\r\n public deckModel = new DeckModel();\r\n\r\n public isFiveRows = false;\r\n public isFiveColumns = false;\r\n public currentCard : CardModel = new CardModel(0);\r\n public isGameComplete = false;\r\n public isGameStarted = false;\r\n public deltCards = 0;\r\n public tabledCards = 0;\r\n public totalScore = 0;\r\n public options = new OptionModel();\r\n\r\n constructor() {\r\n }\r\n\r\n public get scoreText(): string {\r\n if (this.totalScore === 0) return 'Card game';\r\n return 'Total ' + this.totalScore.toString(); \r\n }\r\n\r\n public setOptions() {\r\n this.repositionSquares();\r\n this.setAvailableSquares();\r\n }\r\n\r\n public newGame() {\r\n this.deckModel.shuffleCards();\r\n this.setNewGame();\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 6; x++) {\r\n this.handRows[y].squares[x] = new SquareModel(y, x, 0);\r\n }\r\n }\r\n this.setAvailableSquares();\r\n this.dealCard();\r\n }\r\n\r\n private setNewGame()\r\n {\r\n this.deltCards = 0;\r\n this.totalScore = 0;\r\n this.tabledCards = 0;\r\n this.isFiveRows = false;\r\n this.isFiveColumns = false;\r\n this.isGameComplete = false;\r\n this.isGameStarted = true;\r\n }\r\n\r\n public get isUndoAllowed() {\r\n return (this.tabledCards > 1) && !this.isGameComplete;;\r\n }\r\n\r\n public replayGame() {\r\n this.deckModel.replayDeck();\r\n this.setNewGame();\r\n\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 6; x++) {\r\n this.handRows[y].squares[x] = new SquareModel(y, x, 0);\r\n }\r\n }\r\n\r\n this.setAvailableSquares();\r\n this.dealCard();\r\n }\r\n\r\n public setNextSquare(row: number, col: number) {\r\n this.handRows[row].squares[col].cardModel.cardId = this.currentCard.cardId;\r\n this.handRows[row].squares[col].isAvailable = false;\r\n this.tabledCards++;\r\n\r\n if (this.tabledCards === 25) {\r\n this.calculateScore();\r\n this.isGameComplete = true;\r\n this.currentCard.cardId = 0;\r\n }\r\n else {\r\n if ((row === 0) || (row === 5) ||\r\n (col === 0) || (col === 5)) {\r\n this.repositionSquares();\r\n }\r\n this.setAvailableSquares();\r\n this.dealCard();\r\n }\r\n }\r\n\r\n public dealCard() : number {\r\n if (this.deltCards < 25) {\r\n this.currentCard.cardId = this.deckModel.dealCard();\r\n this.deltCards++;\r\n return this.currentCard.cardId;\r\n }\r\n else {\r\n }\r\n this.currentCard.cardId = 0;\r\n return 0;\r\n }\r\n\r\n public undoSquare() : number {\r\n let doReposition = false;\r\n if (this.deltCards > 2) {\r\n let lastCardId = this.deckModel.undoCard();\r\n\r\n for (let y = 0; y < 5; y++) {\r\n for (let x = 0; x < 5; x++) {\r\n if (this.handRows[y].squares[x].cardModel.cardId === lastCardId) {\r\n this.handRows[y].squares[x].cardModel.cardId = 0;\r\n if ((y === 0) || (y >= 4))\r\n doReposition = true;\r\n if ((x === 0) || (x >= 4))\r\n doReposition = true;\r\n }\r\n }\r\n }\r\n\r\n this.deltCards--;\r\n this.tabledCards--;\r\n\r\n if (doReposition) {\r\n this.isFiveColumns = false;\r\n this.isFiveRows = false;\r\n this.repositionSquares();\r\n }\r\n\r\n this.setAvailableSquares();\r\n this.currentCard.cardId = this.deckModel.currentCardId;\r\n }\r\n return this.currentCard.cardId;\r\n }\r\n\r\n private calculateScore() {\r\n\r\n let totalScore = 0;\r\n for (let y = 0; y < 5; y++) {\r\n let hand = [this.handRows[y].squares[0].cardModel\r\n , this.handRows[y].squares[1].cardModel\r\n , this.handRows[y].squares[2].cardModel\r\n , this.handRows[y].squares[3].cardModel\r\n , this.handRows[y].squares[4].cardModel];\r\n this.calculateHand(hand, this.handRows[y].squares[5]);\r\n totalScore += this.handRows[y].squares[5].score;\r\n }\r\n for (let x = 0; x < 5; x++) {\r\n let hand = [this.handRows[0].squares[x].cardModel\r\n , this.handRows[1].squares[x].cardModel\r\n , this.handRows[2].squares[x].cardModel\r\n , this.handRows[3].squares[x].cardModel\r\n , this.handRows[4].squares[x].cardModel];\r\n this.calculateHand(hand, this.handRows[5].squares[x]);\r\n totalScore += this.handRows[5].squares[x].score;\r\n }\r\n this.totalScore = totalScore;\r\n }\r\n\r\n public calculateHand(cards : CardModel[], square: SquareModel) {\r\n let flushSuit = cards[0].cardSuitCode;\r\n let numberCounts = [0,0,0,0,0,0,0,0,0,0,0,0,0,0];\r\n let lowCard = 14;\r\n let hasAce = false;\r\n let highCard = 0;\r\n let isPair = false;\r\n let is2Pair = false;\r\n let is3Kind = false;\r\n let is4Kind = false;\r\n let isStraight = false;\r\n let isFlush = true;\r\n let score = 0;\r\n let scoreText = 'No match';\r\n\r\n for (let x = 0; x < 5; x++) {\r\n numberCounts[cards[x].cardNumber]++;\r\n if (flushSuit !== cards[x].cardSuitCode) isFlush = false;\r\n if (highCard < cards[x].cardNumber) highCard = cards[x].cardNumber;\r\n if (cards[x].cardNumber === 1) {\r\n hasAce = true;\r\n } else {\r\n if (lowCard > cards[x].cardNumber) lowCard = cards[x].cardNumber;\r\n }\r\n \r\n }\r\n\r\n if (hasAce) {\r\n if (highCard === 13 && lowCard === 10) isStraight = true;\r\n if (highCard === 5 && lowCard === 2) isStraight = true;\r\n }\r\n else {\r\n if (highCard - lowCard === 4) isStraight = true;\r\n }\r\n\r\n for (let x = 1; x < 14; x++) {\r\n if (numberCounts[x] === 4) {\r\n is4Kind = true;\r\n }\r\n if (numberCounts[x] === 3) {\r\n is3Kind = true;\r\n }\r\n if (numberCounts[x] === 2) {\r\n if (isPair) is2Pair = true;\r\n else isPair = true;\r\n }\r\n }\r\n\r\n if (is4Kind) {\r\n score = 50;\r\n scoreText = '4 of a kind';\r\n }\r\n else if (is2Pair) {\r\n score = 5;\r\n scoreText = '2 pair';\r\n }\r\n else if (isPair && is3Kind) {\r\n score = 25;\r\n scoreText = 'Full house';\r\n }\r\n else if (is3Kind) {\r\n score = 10;\r\n scoreText = '3 of a kind';\r\n }\r\n else if (isPair) {\r\n score = 2;\r\n scoreText = 'Pair';\r\n }\r\n else if (isStraight) {\r\n if (isFlush) {\r\n if (highCard === 13 && hasAce) {\r\n score = 100;\r\n scoreText = 'Royal flush';\r\n }\r\n else {\r\n score = 75;\r\n scoreText = 'Straight flush';\r\n }\r\n }\r\n else {\r\n score = 15;\r\n scoreText = 'Straight';\r\n }\r\n }\r\n else if (isFlush) {\r\n score = 20;\r\n scoreText = 'Flush';\r\n }\r\n square.score = score;\r\n }\r\n\r\n private repositionSquares() {\r\n\r\n if (this.isFiveRows && this.isFiveColumns) {\r\n return;\r\n }\r\n if (this.options.isEasyMode) {\r\n return;\r\n }\r\n\r\n let colStart = 2;\r\n let colEnd = 2;\r\n let rowStart = 2;\r\n let rowEnd = 2;\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 6; x++) {\r\n if (this.handRows[y].squares[x].isCard) {\r\n if (rowStart > y) { rowStart = y; }\r\n if (rowEnd < y) { rowEnd = y; }\r\n if (colStart > x) { colStart = x; }\r\n if (colEnd < x) { colEnd = x; }\r\n }\r\n }\r\n }\r\n\r\n this.isFiveRows = ((rowEnd - rowStart) === 4);\r\n this.isFiveColumns = ((colEnd - colStart) === 4);\r\n\r\n if (colEnd === 5) { // move hand left one square\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 5; x++) {\r\n this.handRows[y].squares[x].cardModel.cardId\r\n = this.handRows[y].squares[x+1].cardModel.cardId;\r\n }\r\n this.handRows[y].squares[5].cardModel.cardId = 0;\r\n }\r\n } \r\n else if ((colStart === 0) && !this.isFiveColumns) { // move hand right one square\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 5; x > 0; x--) {\r\n this.handRows[y].squares[x].cardModel.cardId \r\n = this.handRows[y].squares[x-1].cardModel.cardId;\r\n }\r\n this.handRows[y].squares[0].cardModel.cardId = 0;\r\n }\r\n }\r\n\r\n if (rowEnd === 5) { // move hand up one square\r\n for (let x = 0; x < 6; x++) {\r\n for (let y = 0; y < 5; y++) {\r\n this.handRows[y].squares[x].cardModel.cardId\r\n = this.handRows[y+1].squares[x].cardModel.cardId;\r\n }\r\n this.handRows[5].squares[x].cardModel.cardId = 0;\r\n }\r\n }\r\n else if ((rowStart === 0) && !this.isFiveRows) { // move hand down one square\r\n for (let x = 0; x < 6; x++) {\r\n for (let y = 5; y > 0; y--) {\r\n this.handRows[y].squares[x].cardModel.cardId\r\n = this.handRows[y-1].squares[x].cardModel.cardId;\r\n }\r\n this.handRows[0].squares[x].cardModel.cardId = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n public setAvailableSquares() {\r\n\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 6; x++) {\r\n if (this.handRows[y].squares[x].isCard)\r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.isFiveColumns && (x === 5)) \r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.options.isEasyMode && (x === 5)) \r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.isFiveRows && (y === 5))\r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.options.isEasyMode && (y === 5))\r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.options.isEasyMode) \r\n this.handRows[y].squares[x].isAvailable = true; \r\n else \r\n this.handRows[y].squares[x].isAvailable = this.isAdjacientCard(y, x); \r\n }\r\n }\r\n if (!this.handRows[2].squares[2].isCard) { // allow for first card\r\n this.handRows[2].squares[2].isAvailable = true;\r\n }\r\n }\r\n\r\n private isAdjacientCard(row : number, col : number) {\r\n \r\n let result = false;\r\n\r\n if (row > 0) {\r\n if (this.handRows[row-1].squares[col].isCard) {\r\n result = true;\r\n }\r\n }\r\n if (row < 5) {\r\n if (this.handRows[row+1].squares[col].isCard) {\r\n result = true;\r\n }\r\n }\r\n\r\n if (col > 0) {\r\n if (this.handRows[row].squares[col-1].isCard) {\r\n result = true;\r\n }\r\n }\r\n if (col < 5) {\r\n if (this.handRows[row].squares[col+1].isCard) {\r\n result = true;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './Poker.MainView.html'\r\n})\r\n\r\nexport class MainComponent implements OnInit {\r\n\r\n title = \"Poker Game\";\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","

{{title}}

\n\n
\n Poker game
\n \n \n


\n
Powered by MickBraz.com
\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms'\nimport { RouterModule } from \"@angular/router\"\nimport { HandGuardGuard } from \"./hand-guard.guard\"\n// import { MatMenuModule } from '@angular/material/menu';\n// import { MatIconModule } from '@angular/material/icon';\n// import { MatButtonModule } from '@angular/material/button';\n// MatIconModule\n\nimport { AppMaterialModule } from './material-module';\n\nimport { MainRoutes } from './Poker.MainRouting';\nimport { MainComponent } from './Poker.MainComponent';\nimport { HandComponent } from './Poker.HandComponent';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n@NgModule({\n declarations: [\n MainComponent\n ],\n imports: [\n RouterModule.forRoot(MainRoutes),\n BrowserModule, FormsModule, NgbModule,\n BrowserAnimationsModule,\n AppMaterialModule,\n //ReactiveFormsModule\n // MatMenuModule, MatIconModule, MatButtonModule\n ],\n providers: [HandGuardGuard],\n bootstrap: [HandComponent]\n})\nexport class MainModule { }\n","import { HandComponent } from \"./Poker.HandComponent\";\r\nimport { Routes } from \"@angular/router\";\r\nimport { HandGuardGuard } from './hand-guard.guard';\r\n\r\nexport const MainRoutes = [\r\n {\r\n path: 'Hand',\r\n loadChildren: () => import(\"./Poker.HandModule\").then(mod => mod.HandModule)\r\n },\r\n {\r\n path: 'Home/AngularApps',\r\n loadChildren: () => import(\"./Poker.HandModule\").then(mod => mod.HandModule)\r\n },\r\n \r\n];\r\n","\r\n\r\nexport class OptionModel {\r\n\r\n isEasyMode = false;\r\n isAllowUndo = true;\r\n}","import { CardModel } from './Poker.CardModel';\r\n\r\nexport class SquareModel {\r\n \r\n cardModel: CardModel;\r\n handRow: number = 0;\r\n handCol: number = 0;\r\n score: number = 0;\r\n \r\n isAvailable = false;\r\n\r\n constructor(row: number, col: number, cardId: number) {\r\n this.cardModel = new CardModel(cardId);\r\n this.handCol = col;\r\n this.handRow = row;\r\n }\r\n \r\n public get isCard() {\r\n return (this.cardModel.cardId > 0);\r\n }\r\n public get isScore() {\r\n return (this.score > 0);\r\n }\r\n\r\n public get imageName() : string {\r\n\r\n let filename = 'blank';\r\n\r\n if (this.score > 0) filename = 'Result_' + this.score.toString().trim();\r\n\r\n return filename;\r\n }\r\n\r\n /* cardSuitName = getSuitName(this.cardSuit);\r\n cardNumberName = getNumberName(this.CardNumber);\r\n public get cardText() : string {\r\n return this.getSuitName(this.cardSuit) + \" \" + this.getNumberName(this.cardId);\r\n } */\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { HandComponent } from './Poker.HandComponent';\n\n@Injectable()\nexport class HandGuardGuard implements CanDeactivate {\n canDeactivate(\n component: HandComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n if (component.canDeactivate) {\n return true;\n }\n return confirm(\"Warning: Game in progress, exit anyway?\");\n }\n \n}\n","import {NgModule} from '@angular/core';\r\n//import {A11yModule} from '@angular/cdk/a11y';\r\n//import {ClipboardModule} from '@angular/cdk/clipboard';\r\n//import {DragDropModule} from '@angular/cdk/drag-drop';\r\n//import {PortalModule} from '@angular/cdk/portal';\r\n//import {ScrollingModule} from '@angular/cdk/scrolling';\r\n//import {CdkStepperModule} from '@angular/cdk/stepper';\r\n//import {CdkTableModule} from '@angular/cdk/table';\r\n//import {CdkTreeModule} from '@angular/cdk/tree';\r\n//import {MatAutocompleteModule} from '@angular/material/autocomplete';\r\n//import {MatBadgeModule} from '@angular/material/badge';\r\n//import {MatBottomSheetModule} from '@angular/material/bottom-sheet';\r\nimport {MatButtonModule} from '@angular/material/button';\r\n//import {MatButtonToggleModule} from '@angular/material/button-toggle';\r\n//import {MatCardModule} from '@angular/material/card';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\n//import {MatChipsModule} from '@angular/material/chips';\r\n//import {MatStepperModule} from '@angular/material/stepper';\r\n//import {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\n//import {MatDividerModule} from '@angular/material/divider';\r\n//import {MatExpansionModule} from '@angular/material/expansion';\r\n//import {MatGridListModule} from '@angular/material/grid-list';\r\n//import {MatIconModule} from '@angular/material/icon';\r\n//import {MatInputModule} from '@angular/material/input';\r\n//import {MatListModule} from '@angular/material/list';\r\n//import {MatMenuModule} from '@angular/material/menu';\r\n//import {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\r\n//import {MatPaginatorModule} from '@angular/material/paginator';\r\n//import {MatProgressBarModule} from '@angular/material/progress-bar';\r\n//import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\n//import {MatRadioModule} from '@angular/material/radio';\r\n//import {MatSelectModule} from '@angular/material/select';\r\n//import {MatSidenavModule} from '@angular/material/sidenav';\r\n//import {MatSliderModule} from '@angular/material/slider';\r\n//import {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\n//import {MatSnackBarModule} from '@angular/material/snack-bar';\r\n//import {MatSortModule} from '@angular/material/sort';\r\n//import {MatTableModule} from '@angular/material/table';\r\n//import {MatTabsModule} from '@angular/material/tabs';\r\n//import {MatToolbarModule} from '@angular/material/toolbar';\r\n//import {MatTooltipModule} from '@angular/material/tooltip';\r\n//import {MatTreeModule} from '@angular/material/tree';\r\n//import {OverlayModule} from '@angular/cdk/overlay';\r\n\r\n@NgModule({\r\n exports: [\r\n // A11yModule,\r\n // ClipboardModule,\r\n // CdkStepperModule,\r\n // CdkTableModule,\r\n // CdkTreeModule,\r\n // DragDropModule,\r\n // MatAutocompleteModule,\r\n // MatBadgeModule,\r\n // MatBottomSheetModule,\r\n MatButtonModule,\r\n // MatButtonToggleModule,\r\n // MatCardModule,\r\n MatCheckboxModule,\r\n // MatChipsModule,\r\n // MatStepperModule,\r\n // MatDatepickerModule,\r\n MatDialogModule,\r\n // MatDividerModule,\r\n // MatExpansionModule,\r\n // MatGridListModule,\r\n // MatIconModule,\r\n // MatInputModule,\r\n // MatListModule,\r\n // MatMenuModule,\r\n // MatNativeDateModule,\r\n // MatPaginatorModule,\r\n // MatProgressBarModule,\r\n // MatProgressSpinnerModule,\r\n // MatRadioModule,\r\n // MatRippleModule,\r\n // MatSelectModule,\r\n // MatSidenavModule,\r\n // MatSliderModule,\r\n // MatSlideToggleModule,\r\n // MatSnackBarModule,\r\n // MatSortModule,\r\n // MatTableModule,\r\n // MatTabsModule,\r\n // MatToolbarModule,\r\n // MatTooltipModule,\r\n // MatTreeModule,\r\n // OverlayModule,\r\n // PortalModule,\r\n // ScrollingModule,\r\n ]\r\n})\r\nexport class AppMaterialModule {}\r\n\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { MainModule } from './PokerApp/Poker.MainModule';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(MainModule)\n .catch(err => console.error(err));\n"]}