|
|
@@ -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);
|