Foppe Hemminga 6 rokov pred
rodič
commit
9cdae21953
1 zmenil súbory, kde vykonal 31 pridanie a 22 odobranie
  1. 31 22
      High-Low.user.js

+ 31 - 22
High-Low.user.js

@@ -1,7 +1,7 @@
 // ==UserScript==
 // @name         High-Low
 // @namespace    http://tampermonkey.net/
-// @version      0.1.2
+// @version      0.1.3
 // @description  try to take over the world!
 // @author       You
 // @match        https://www.torn.com/loader.php?sid=high*ow
@@ -56,7 +56,8 @@
 
 	class Card {
 		constructor(number) {
-			let card = this.getCardFromNumber(number);
+            this.number = parseInt(number, 10);
+            let card = this.getCardFromNumber(this.number);
 			this.color = card[0];
 			this.rank = card[1];
 		}
@@ -112,10 +113,11 @@
     /* Initialize deck */
     let deck = GM_getValue('deck', []);
     let createDeck = (deck) => {
-        for (let i = 1; i <= 52; i++) {
+        for (let i = 2; i < 54; i++) {
             deck.push(i);
         }
-        GM_setValue('[createDeck] deck', deck);
+        GM_setValue('deck', deck);
+        console.warn('new deck.length:', deck.length);
         // console.log(deck);
         return deck;
     }
@@ -134,8 +136,8 @@
                 deck.splice(i, 1);
             }
         }
-        GM_setValue('[removeCard] deck', deck);
-        // console.log(deck);
+        GM_setValue('deck', deck);
+        // console.log('deck.length:', deck.length);
     }
 
 	//********
@@ -153,7 +155,9 @@
 				console.log("Multiplier changed!. Old: " + previousMultiplier + " => New: " + currentMultiplier);
 			}
 		}
-		//$("pre code.json").empty().append(JSON.stringify(db, null, 4));
+        console.log("Multiplier:", currentMultiplier);
+
+        //$("pre code.json").empty().append(JSON.stringify(db, null, 4));
 		console.log('myVue:', myVue);
 		myVue.jsonobject = JSON.stringify(db, null, 4);
 		// myVue.jsonobject = "Test";
@@ -162,15 +166,27 @@
 			hljs.initHighlighting.called = false;
 			hljs.initHighlighting();
 		});
-		console.log("Multiplier:", currentMultiplier);
 	};
 
 	let processGameStarted = function(db) {
 		// dealerCard is revealed; player picks High or Low
 		// Note: Player also has the option to cash in but that is never considered
-		console.log("dealerCard:", db.currentGame[0].dealerCard);
+		// console.log("dealerCard:", db.currentGame[0].dealerCard);
 		let dealerCard = new Card(db.currentGame[0].dealerCard);
+        // console.warn('dealerCard.number:', dealerCard.number);
+        removeCard(deck, dealerCard.number);
 
+        if ('result' in db.currentGame[0]) {
+            console.log('LOST');
+            removeCard(deck, parseInt(db.currentGame[0].playerCard, 10));
+        }
+        if ('deckShuffled' in db.DB) {
+            console.warn('db.DB.deckShuffled:', db.DB.deckShuffled);
+            if (db.DB.deckShuffled === true) {
+                deck = [];
+                deck = createDeck(deck);
+            }
+        }
 		console.assert(dealerCard.toString() === db.currentGame[0].dealerCardInfo.classCode,
 					   "Mismatch dealerCard " + dealerCard + " <-> " + db.currentGame[0].dealerCardInfo.classCode);
 		console.log("dealerCard:", dealerCard.toString());
@@ -198,8 +214,6 @@
 		let dealerCard = new Card(db.currentGame[0].dealerCard);
 		console.assert(dealerCard.toString() === db.currentGame[0].dealerCardInfo.classCode,
 					   "Mismatch dealerCard " + dealerCard + " <-> " + db.currentGame[0].dealerCardInfo.classCode);
-		console.log("dealerCard:", dealerCard.toString());
-        removeCard(deck, parseInt(db.currentGame[0].dealerCard, 10));
 		let playerCard = new Card(db.currentGame[0].playerCard);
 		console.assert(playerCard.toString() === db.currentGame[0].playerCardInfo.classCode,
 					   "Mismatch playerCard " + playerCard + " <-> " + db.currentGame[0].playerCardInfo.classCode);
@@ -312,11 +326,12 @@
 	 * @return {array} number of cards by rank where key is the rank \
 	 * and val is the number of that rank in the deck
 	 */
-	let parseDeck = function(dealerCard, deck) {
+	let parseDeck = function(deck) {
+        // Create new parsedDeck from deck
 		let parsedDeck = [];
         // parsedDeck runs from 0 to 14 where 0 and 1 are always 0.
         // Real deck values count from 2 to 14 (ace)
-        for (let i = 0; i < 15; i++) {
+        for (let i = 0; i <= 15; i++) {
             parsedDeck[i] = 0;
         }
 		let deckLength = deck.length;
@@ -330,10 +345,6 @@
 			offset += 4; // Counter for 2 being first card, not 1
 			offset += 3; // Counter for using floor
 			let rank = Math.floor((parseInt(deck[i], 10)+offset)/4);
-			// console.log("[parseDeck] rank:", rank);
-			if (!(rank in parsedDeck)) {
-				parsedDeck[rank] = 0;
-			}
 			parsedDeck[rank]++;
 		}
 		if (deckLength === 0) {
@@ -341,15 +352,12 @@
 			for (let i = 2; i < 15; i++) {
 				parsedDeck[i] = 4;
 			}
-			// Remove dealerCard
-			parseDeck[dealerCard.rank]--;
-		}
-        // console.table(parsedDeck);
+        }
 		return parsedDeck;
 	};
 
 	let calculateOdds = function(dealerCard, deck) {
-		let parsedDeck = parseDeck(dealerCard, deck);
+		let parsedDeck = parseDeck(deck);
 		let deckLength = parsedDeck.length;
 		let numberOfCards = 0;
 		let lowerDoesNotLose = 0; // Equals count as 'not lose'
@@ -363,6 +371,7 @@
 			}
 			numberOfCards += parsedDeck[i];
 		}
+        console.assert(deck.length === numberOfCards, 'deck.length: '+deck.length+' <> numberOfCards: '+numberOfCards);
 		// console.log("[calculteOdds] parsedDeck;", parsedDeck);
 		console.log("[calculateOdds] lowerDoesNotLose:", lowerDoesNotLose);
 		console.log("[calculateOdds] higherDoesNotLose:", higherDoesNotLose);