Shared Tease-AI Java scripts

Webteases are great, but what if you're in the mood for a slightly more immersive experience? Chat about Tease AI and other offline tease software.

Moderator: 1885

Post Reply
User avatar
genome231
Explorer At Heart
Explorer At Heart
Posts: 683
Joined: Wed Nov 12, 2014 8:35 am

Shared Tease-AI Java scripts

Post by genome231 »

This thread is intended for everyone writing Tease-AI Java scripts to share their work for other peoples benefit.

Allow me to make the first contribution:

Black Jack script:
You initiate the script by writing:
playBlackJack(Starting Gold,Gold required,Round Limit);
If used you will need to work through the script changing things related to your personality.
NOTICE: Script might contain minor bugs, be aware. Script contains vocabulary. Script will benefit from more text to user. Script will benefit from reward at the end, right now it only congratulates you for winning.
Also Notice: It draws cards from 4 decks. The deck is reshuffled when there is less than 30 cards in the pile.
Script:
Spoiler: show

Code: Select all

var x;
var x1;
var x2;
var x3;
var cardDrawn;
var deck;
var playerHand = [];
var dealerHand = [];
var playerHandValue = 0;
var dealerHandValue = 0;
var playerHandValueMin = 0;
var card;
var gold;
var goldNeeded;
var i;
var z;
var roundLimit;
var round;
var bet;
var firstBJ;
var aceCount = 0;
var dealer = 0;
var bjPlayerAVG = 0;
var gameRunning = true;
var bjPlayerLost = false;
var bjDealerLost = false;

/*
Takes the following inputs:
gold = Gold the user starts with.
goldNeeded = Gold the user needs to have in order to win.
roundLimit = the number of rounds the game can maximum last.
*/

function playBlackJack(x1,x2,x3) {
gameRunning = true;
gold = x1;
goldNeeded = x2;
roundLimit = x3;
round = 0;
answer = sendInput("have you played black jack before %slaveName% ?");
while(true) {
	if (answer.matchesRegexLowerCase("yes([ ]|$)","yea([ ]|$)","yeap([ ]|$)","yep([ ]|$)","y([ ]|$)")) {
		runBJIntro(1);
		break;
	} else if (answer.matchesRegexLowerCase("no([ ]|$)","nope([ ]|$)","nah([ ]|$)","haven't([ ]|$)","not([ ]|$)")) {
		runBJIntro(0);
		break;
	} else if (answer.matchesRegexLowerCase("skip([ ]|$)")) {
		break;
	} else if (answer.timeout()) {
		chat("hello?","hmm?","???!",5);
		reduceMerits();
		answer.loop();
	} else {
		chat("huh?","what was that?","???",3);
		answer.loop();
	}
}
bjResetDeck();
runBJ();
}


function runBJ() {
while (gameRunning == true) {
	//Updates the round number.
	round++;
	//Checks if the deck has less than 30 cards and reshuffels them if true.
	if (deck.length < 30) {
		bjResetDeck();
	} else{}
	resetBJ(); // Resets the variables needed.
	//A chance that the domme will give a status
	if (75 > randomInteger(75)) {
		bjStatus();
	} else {}
	bjBet(); //Player makes his bet.
	bjPlayerDraw(); //Player Draw cards until satisfied or until hand value is higher than 21.
	if (bjPlayerLost == true) {

	} else {
		bjDealerDraw(); //Dealer draws cards until she's satisfied or until hand value is higher than 21.
	}
	bjDetermine(); //Test which player wins.
	winConditionsBJ(); //Checks everything against win/lose conditions.
	}
}


//Resets the players hand, hand value and the deck.
function resetBJ() {
	playerHand = [];
	dealerHand = [];
	playerHandValue = 0;
	dealerHandValue = 0;
	bjPlayerLost = false;
	bjDealerLost = false;
}

//Creates/resets the deck being used. h = hearts, d = diamonds, s = spades and c = clubs.
function bjResetDeck() {
	sendMessage("%bj_ShuffleDeck%",5);
	deck = ["h1", "d1", "s1", "c1", "h2", "d2", "s2", "c2", "h3", "d3", "s3", "c3", "h4", "d4", "s4", "c4", "h5", "d5", "s5", "c5", "h6", "d6", "s6", "c6", "h7", "d7", "s7", "c7", "h8", "d8", "s8", "c8", "h9", "d9", "s9", "c9", "h10", "d10", "s10", "c10", "h11", "d11", "s11", "c11", "h12", "d12", "s12", "c12", "h13", "d13", "s13", "c13","h1", "d1", "s1", "c1", "h2", "d2", "s2", "c2", "h3", "d3", "s3", "c3", "h4", "d4", "s4", "c4", "h5", "d5", "s5", "c5", "h6", "d6", "s6", "c6", "h7", "d7", "s7", "c7", "h8", "d8", "s8", "c8", "h9", "d9", "s9", "c9", "h10", "d10", "s10", "c10", "h11", "d11", "s11", "c11", "h12", "d12", "s12", "c12", "h13", "d13", "s13", "c13","h1", "d1", "s1", "c1", "h2", "d2", "s2", "c2", "h3", "d3", "s3", "c3", "h4", "d4", "s4", "c4", "h5", "d5", "s5", "c5", "h6", "d6", "s6", "c6", "h7", "d7", "s7", "c7", "h8", "d8", "s8", "c8", "h9", "d9", "s9", "c9", "h10", "d10", "s10", "c10", "h11", "d11", "s11", "c11", "h12", "d12", "s12", "c12", "h13", "d13", "s13", "c13","h1", "d1", "s1", "c1", "h2", "d2", "s2", "c2", "h3", "d3", "s3", "c3", "h4", "d4", "s4", "c4", "h5", "d5", "s5", "c5", "h6", "d6", "s6", "c6", "h7", "d7", "s7", "c7", "h8", "d8", "s8", "c8", "h9", "d9", "s9", "c9", "h10", "d10", "s10", "c10", "h11", "d11", "s11", "c11", "h12", "d12", "s12", "c12", "h13", "d13", "s13", "c13"];
}

//---------------------------------------------------------------------------------- Basic game functions --------------------------------------------------------------------------------------

function bjPlayerWin() {
	// Bet is multiplied by 2 and added to gold.
	gold = gold + (bet * 2);
	sendMessage("%bj_PlayerWin%",5);
}
	
function bjDealerWin() {
	//Bet is deducted from gold.
	gold = gold - bet;
	sendMessage("%bj_DealerWin%",5)
}

function bjDetermine() {
	bjDealerValue();
	bjPlayerValue();
	if (bjPlayerLost == true) {
		bjDealerWin();
	} else if (bjDealerLost == true) {
		bjPlayerWin();
	} else if (dealerHandValue >= playerHandValue) {
		bjDealerWin();
	} else {
		bjPlayerWin();
	}
}

//Selects a random card and removes that card from the array of available cards.
function bjSelectCard() {
	x = randomInteger(0,deck.length - 1);
	card = deck[x];
	deck.splice(x,1);
}


function winConditionsBJ() {
	//Check if player has enough gold
	if(gold >= goldNeeded) {
		bjWin();
	} else {}
	//Check if all the rounds has passed.
	if(round >= roundLimit) {
		bjLose();
	} else {}
	//Check if gold is below 0.
	if(gold <= 0) {
		bjLose();
	} else {}
}

function bjWin() {
	sendMessage("You win the Game!",5);
	gameRunning = false;
}

function bjLose() {
	sendMessage("You lose the game!",5);
	gameRunning = false;
}

//Dealer Draws
//Dealer will give herself 2 cards, she will then test if she is happy with her hand.
//3 factors determine if she's happy.
//If hand value is less than 14, she will automaticly choose to draw a new card.
//If hand value is higher than 18, she will automaticly stop drawing.
//in between 



//---------------------------------------------------------------------------------- dealer draw card function --------------------------------------------------------------------------------------

function dealerDraw() {
	bjSelectCard();
	bjShowCard();
	sleep(4);
	dealerHand.splice(i,0,card);
	i++;	
}

function bjDealerDraw() {
	bjPlayerValueMin(); //Calculates the player hand value min.
	i = 0;
	dealerDraw();
	dealerDraw();
	dealer = 0;
	while (dealer == 0) {
		bjDealerValue();
		//Does the dealer have a hand value higher than 21.
		if (dealerHandValue > 21) {
			bjDealerLost = true;
		} else {}
		//Will test if hand is less than 15 or higher than 18.
		if (dealerHandValue <= 14) {
			dealerDraw();
		} else if (dealerHandValue >= 19) {
			dealer = 1;
		} else {
			x = randomInteger(1,100);
			if (x > 75) {
				if (randomInteger(14,19) > dealerHandValue) {
					dealerDraw();
				} else {
					dealer = 1;
				}
			} else if (x > 25) {
				if (dealerHandValue >= bjPlayerAVG) {
					dealer = 1;
				} else {
					dealerDraw();
				}
			} else {
				if (dealerHandValue > bjPlayerMin && dealerHandValue > 17) {
					dealer = 1;
				} else {
					dealerDraw();
				}
			}
		}
	}
}


//---------------------------------------------------------------------------------- player draw card function --------------------------------------------------------------------------------------

function playerDraw() {
	bjSelectCard();
	bjShowCard();
	sleep(4);
	playerHand.splice(i,0,card);
	i++;
}

function bjPlayerDraw() {
	//Draws first card.
	i = 0;
	playerDraw();
	//Draws second card
	playerDraw();
	//Ask the player to draw or stay
	answer = sendInput("Draw or stay?");
	while (true) {
		if (answer.matchesRegexLowerCase("draw([ ]|$)")) {
			playerDraw();
			bjPlayerValue();
			if (playerHandValue > 21) {
				bjPlayerLost = true;
			} else {}
			answer.loop();
		} else if (answer.matchesRegexLowerCase("stay([ ]|$)")) {
			bjCalculateAvg();
			break;
		} else {
			sendMessage("Stay or draw??");
			answer.loop();
		}
	}
}

function bjCalculateAvg() {
	bjPlayerValue();
	bjPlayerAVG = (bjPlayerAVG + playerHandValue) / 2
}

//---------------------------------------------------------------------------------- player betting function --------------------------------------------------------------------------------------

function bjBet() {
	answer = sendInput("How much do you want to bet?");
	while (true) {
		if (answer.isInteger()) {
			bet = answer.getInt();
			if (bet <= 0) {
				sendMessage("You have to give me a positive number bigger than 0...");
				reduceMerits();
				answer.loop();
			} else if (bet > gold) {
				sendMessage("You cant choose a number bigger than your available gold. You only have " + gold + "..");
				reduceMerits();
				answer.loop();
			} else {
				break;
			}
		} else {
			sendMessage("You have to give me a number like 50, 111, 77 or similar");
			answer.loop();
		}
	}
}

function bjStatus() {
	sendMessage("You have " + gold,3);
	sendMessage("And this is round " + round + " of " + roundLimit + " rounds in total",3);
}

//---------------------------------------------------------------------------------- Simple show current selected card --------------------------------------------------------------------------------------

//shows the current drawn card.
function bjShowCard() {
		if(card == "h2") {showImage("Images/GNM_Images/Games/Deck/2/H2.JPG");} 
		else if(card == "h3") {showImage("Images/GNM_Images/Games/Deck/3/H3.JPG");}
		else if(card == "h4") {showImage("Images/GNM_Images/Games/Deck/4/H4.JPG");}
		else if(card == "h5") {showImage("Images/GNM_Images/Games/Deck/5/H5.JPG");}
		else if(card == "h6") {showImage("Images/GNM_Images/Games/Deck/6/H6.JPG");}
		else if(card == "h7") {showImage("Images/GNM_Images/Games/Deck/7/H7.JPG");}
		else if(card == "h8") {showImage("Images/GNM_Images/Games/Deck/8/H8.JPG");}
		else if(card == "h9") {showImage("Images/GNM_Images/Games/Deck/9/H9.JPG");}
		else if(card == "h10") {showImage("Images/GNM_Images/Games/Deck/10/H10.JPG");}
		else if(card == "h11") {showImage("Images/GNM_Images/Games/Deck/11/H11.JPG");}
		else if(card == "h12") {showImage("Images/GNM_Images/Games/Deck/12/H12.JPG");}
		else if(card == "h13") {showImage("Images/GNM_Images/Games/Deck/13/H13.JPG");}
		else if(card == "d2") {showImage("Images/GNM_Images/Games/Deck/2/D2.JPG");}
		else if(card == "d3") {showImage("Images/GNM_Images/Games/Deck/3/D3.JPG");}
		else if(card == "d4") {showImage("Images/GNM_Images/Games/Deck/4/D4.JPG");}
		else if(card == "d5") {showImage("Images/GNM_Images/Games/Deck/5/D5.JPG");}
		else if(card == "d6") {showImage("Images/GNM_Images/Games/Deck/6/D6.JPG");}
		else if(card == "d7") {showImage("Images/GNM_Images/Games/Deck/7/D7.JPG");}
		else if(card == "d8") {showImage("Images/GNM_Images/Games/Deck/8/D8.JPG");}
		else if(card == "d9") {showImage("Images/GNM_Images/Games/Deck/9/D9.JPG");}
		else if(card == "d10") {showImage("Images/GNM_Images/Games/Deck/10/D10.JPG");}
		else if(card == "d11") {showImage("Images/GNM_Images/Games/Deck/11/D11.JPG");}
		else if(card == "d12") {showImage("Images/GNM_Images/Games/Deck/12/D12.JPG");}
		else if(card == "d13") {showImage("Images/GNM_Images/Games/Deck/13/D13.JPG");}
		else if(card == "s2") {showImage("Images/GNM_Images/Games/Deck/2/S2.JPG");}
		else if(card == "s3") {showImage("Images/GNM_Images/Games/Deck/3/S3.JPG");}
		else if(card == "s4") {showImage("Images/GNM_Images/Games/Deck/4/S4.JPG");}
		else if(card == "s5") {showImage("Images/GNM_Images/Games/Deck/5/S5.JPG");}
		else if(card == "s6") {showImage("Images/GNM_Images/Games/Deck/6/S6.JPG");}
		else if(card == "s7") {showImage("Images/GNM_Images/Games/Deck/7/S7.JPG");}
		else if(card == "s8") {showImage("Images/GNM_Images/Games/Deck/8/S8.JPG");}
		else if(card == "s9") {showImage("Images/GNM_Images/Games/Deck/9/S9.JPG");}
		else if(card == "s10") {showImage("Images/GNM_Images/Games/Deck/10/S10.JPG");}
		else if(card == "s11") {showImage("Images/GNM_Images/Games/Deck/11/S11.JPG");}
		else if(card == "s12") {showImage("Images/GNM_Images/Games/Deck/12/S12.JPG");}
		else if(card == "s13") {showImage("Images/GNM_Images/Games/Deck/13/S13.JPG");}
		else if(card == "c2") {showImage("Images/GNM_Images/Games/Deck/2/C2.JPG");}
		else if(card == "c3") {showImage("Images/GNM_Images/Games/Deck/3/C3.JPG");}
		else if(card == "c4") {showImage("Images/GNM_Images/Games/Deck/4/C4.JPG");}
		else if(card == "c5") {showImage("Images/GNM_Images/Games/Deck/5/C5.JPG");}
		else if(card == "c6") {showImage("Images/GNM_Images/Games/Deck/6/C6.JPG");}
		else if(card == "c7") {showImage("Images/GNM_Images/Games/Deck/7/C7.JPG");}
		else if(card == "c8") {showImage("Images/GNM_Images/Games/Deck/8/C8.JPG");}
		else if(card == "c9") {showImage("Images/GNM_Images/Games/Deck/9/C9.JPG");}
		else if(card == "c10") {showImage("Images/GNM_Images/Games/Deck/10/C10.JPG");}
		else if(card == "c11") {showImage("Images/GNM_Images/Games/Deck/11/C11.JPG");}
		else if(card == "c12") {showImage("Images/GNM_Images/Games/Deck/12/C12.JPG");}
		else if(card == "c13") {showImage("Images/GNM_Images/Games/Deck/13/C13.JPG");}
		else if(card == "s1") {showImage("Images/GNM_Images/Games/Deck/1/S1.JPG");}
		else if(card == "h1") {showImage("Images/GNM_Images/Games/Deck/1/H1.JPG");}
 		else if(card == "d1") {showImage("Images/GNM_Images/Games/Deck/1/D1.JPG");}
 		else if(card == "c1") {showImage("Images/GNM_Images/Games/Deck/1/C1.JPG");}
		else {}
}

//---------------------------------------------------------------------------------- Calculate hand value --------------------------------------------------------------------------------------

function bjDealerValue() {
	aceCount = 0;
	for (z = 0; z < dealerHand.length; z++) {
		if(dealerHand[z] == "h2") {dealerHandValue += 2;} 
		else if(dealerHand[z] == "h3") {dealerHandValue += 3;}
		else if(dealerHand[z] == "h4") {dealerHandValue += 4;}
		else if(dealerHand[z] == "h5") {dealerHandValue += 5;}
		else if(dealerHand[z] == "h6") {dealerHandValue += 6;}
		else if(dealerHand[z] == "h7") {dealerHandValue += 7;}
		else if(dealerHand[z] == "h8") {dealerHandValue += 8;}
		else if(dealerHand[z] == "h9") {dealerHandValue += 9;}
		else if(dealerHand[z] == "h10") {dealerHandValue += 10;}
		else if(dealerHand[z] == "h11") {dealerHandValue += 10;}
		else if(dealerHand[z] == "h12") {dealerHandValue += 10;}
		else if(dealerHand[z] == "h13") {dealerHandValue += 10;}
		else if(dealerHand[z] == "d2") {dealerHandValue += 2;}
		else if(dealerHand[z] == "d3") {dealerHandValue += 3;}
		else if(dealerHand[z] == "d4") {dealerHandValue += 4;}
		else if(dealerHand[z] == "d5") {dealerHandValue += 5;}
		else if(dealerHand[z] == "d6") {dealerHandValue += 6;}
		else if(dealerHand[z] == "d7") {dealerHandValue += 7;}
		else if(dealerHand[z] == "d8") {dealerHandValue += 8;}
		else if(dealerHand[z] == "d9") {dealerHandValue += 9;}
		else if(dealerHand[z] == "d10") {dealerHandValue += 10;}
		else if(dealerHand[z] == "d11") {dealerHandValue += 10;}
		else if(dealerHand[z] == "d12") {dealerHandValue += 10;}
		else if(dealerHand[z] == "d13") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s2") {dealerHandValue += 2;}
		else if(dealerHand[z] == "s3") {dealerHandValue += 3;}
		else if(dealerHand[z] == "s4") {dealerHandValue += 4;}
		else if(dealerHand[z] == "s5") {dealerHandValue += 5;}
		else if(dealerHand[z] == "s6") {dealerHandValue += 6;}
		else if(dealerHand[z] == "s7") {dealerHandValue += 7;}
		else if(dealerHand[z] == "s8") {dealerHandValue += 8;}
		else if(dealerHand[z] == "s9") {dealerHandValue += 9;}
		else if(dealerHand[z] == "s10") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s11") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s12") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s13") {dealerHandValue += 10;}
		else if(dealerHand[z] == "c2") {dealerHandValue += 2;}
		else if(dealerHand[z] == "c3") {dealerHandValue += 3;}
		else if(dealerHand[z] == "c4") {dealerHandValue += 4;}
		else if(dealerHand[z] == "c5") {dealerHandValue += 5;}
		else if(dealerHand[z] == "c6") {dealerHandValue += 6;}
		else if(dealerHand[z] == "c7") {dealerHandValue += 7;}
		else if(dealerHand[z] == "c8") {dealerHandValue += 8;}
		else if(dealerHand[z] == "c9") {dealerHandValue += 9;}
		else if(dealerHand[z] == "c10") {dealerHandValue += 10;}
		else if(dealerHand[z] == "c11") {dealerHandValue += 10;}
		else if(dealerHand[z] == "c12") {dealerHandValue += 10;}
		else if(dealerHand[z] == "c13") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s1") {aceCount = aceCount + 1;}
		else if(dealerHand[z] == "h1") {aceCount = aceCount + 1;}
 		else if(dealerHand[z] == "d1") {aceCount = aceCount + 1;}
 		else if(dealerHand[z] == "c1") {aceCount = aceCount + 1;}
		else {}
	}
	//Ace Test.
	if (aceCount > 0) {
		while(aceCount > 0) {
			if (dealerHandValue + aceCount * 11 > 21) {
				dealerHandValue += 1;
				aceCount -= 1;
			} else {
				dealerHandValue += aceCount * 11;
				aceCount = 0;
			}
		}
	} else {}
}


function bjPlayerValue() {
	aceCount = 0;
	for (z = 0; z < playerHand.length; z++) {
		if(playerHand[z] == "h2") {playerHandValue += 2;} 
		else if(playerHand[z] == "h3") {playerHandValue += 3;}
		else if(playerHand[z] == "h4") {playerHandValue += 4;}
		else if(playerHand[z] == "h5") {playerHandValue += 5;}
		else if(playerHand[z] == "h6") {playerHandValue += 6;}
		else if(playerHand[z] == "h7") {playerHandValue += 7;}
		else if(playerHand[z] == "h8") {playerHandValue += 8;}
		else if(playerHand[z] == "h9") {playerHandValue += 9;}
		else if(playerHand[z] == "h10") {playerHandValue += 10;}
		else if(playerHand[z] == "h11") {playerHandValue += 10;}
		else if(playerHand[z] == "h12") {playerHandValue += 10;}
		else if(playerHand[z] == "h13") {playerHandValue += 10;}
		else if(playerHand[z] == "d2") {playerHandValue += 2;}
		else if(playerHand[z] == "d3") {playerHandValue += 3;}
		else if(playerHand[z] == "d4") {playerHandValue += 4;}
		else if(playerHand[z] == "d5") {playerHandValue += 5;}
		else if(playerHand[z] == "d6") {playerHandValue += 6;}
		else if(playerHand[z] == "d7") {playerHandValue += 7;}
		else if(playerHand[z] == "d8") {playerHandValue += 8;}
		else if(playerHand[z] == "d9") {playerHandValue += 9;}
		else if(playerHand[z] == "d10") {playerHandValue += 10;}
		else if(playerHand[z] == "d11") {playerHandValue += 10;}
		else if(playerHand[z] == "d12") {playerHandValue += 10;}
		else if(playerHand[z] == "d13") {playerHandValue += 10;}
		else if(playerHand[z] == "s2") {playerHandValue += 2;}
		else if(playerHand[z] == "s3") {playerHandValue += 3;}
		else if(playerHand[z] == "s4") {playerHandValue += 4;}
		else if(playerHand[z] == "s5") {playerHandValue += 5;}
		else if(playerHand[z] == "s6") {playerHandValue += 6;}
		else if(playerHand[z] == "s7") {playerHandValue += 7;}
		else if(playerHand[z] == "s8") {playerHandValue += 8;}
		else if(playerHand[z] == "s9") {playerHandValue += 9;}
		else if(playerHand[z] == "s10") {playerHandValue += 10;}
		else if(playerHand[z] == "s11") {playerHandValue += 10;}
		else if(playerHand[z] == "s12") {playerHandValue += 10;}
		else if(playerHand[z] == "s13") {playerHandValue += 10;}
		else if(playerHand[z] == "c2") {playerHandValue += 2;}
		else if(playerHand[z] == "c3") {playerHandValue += 3;}
		else if(playerHand[z] == "c4") {playerHandValue += 4;}
		else if(playerHand[z] == "c5") {playerHandValue += 5;}
		else if(playerHand[z] == "c6") {playerHandValue += 6;}
		else if(playerHand[z] == "c7") {playerHandValue += 7;}
		else if(playerHand[z] == "c8") {playerHandValue += 8;}
		else if(playerHand[z] == "c9") {playerHandValue += 9;}
		else if(playerHand[z] == "c10") {playerHandValue += 10;}
		else if(playerHand[z] == "c11") {playerHandValue += 10;}
		else if(playerHand[z] == "c12") {playerHandValue += 10;}
		else if(playerHand[z] == "c13") {playerHandValue += 10;}
		else if(playerHand[z] == "s1") {aceCount = aceCount + 1;}
		else if(playerHand[z] == "h1") {aceCount = aceCount + 1;}
 		else if(playerHand[z] == "d1") {aceCount = aceCount + 1;}
 		else if(playerHand[z] == "c1") {aceCount = aceCount + 1;}
		else {}
	}
	//Ace Test.
	if (aceCount > 0) {
		while(aceCount > 0) {
			if (playerHandValue + aceCount * 11 > 21) {
				playerHandValue += 1;
				aceCount -= 1;
			} else {
				playerHandValue += aceCount * 11;
				aceCount = 0;
			}
		}
	} else {}
}


function bjPlayerValueMin() {
	aceCount = 0;
	for (i = 1; i < playerHand.length; i++) {
		if(playerHand[z] == "h2") {playerHandValueMin += 2;} 
		else if(playerHand[z] == "h3") {playerHandValueMin += 3;}
		else if(playerHand[z] == "h4") {playerHandValueMin += 4;}
		else if(playerHand[z] == "h5") {playerHandValueMin += 5;}
		else if(playerHand[z] == "h6") {playerHandValueMin += 6;}
		else if(playerHand[z] == "h7") {playerHandValueMin += 7;}
		else if(playerHand[z] == "h8") {playerHandValueMin += 8;}
		else if(playerHand[z] == "h9") {playerHandValueMin += 9;}
		else if(playerHand[z] == "h10") {playerHandValueMin += 10;}
		else if(playerHand[z] == "h11") {playerHandValueMin += 10;}
		else if(playerHand[z] == "h12") {playerHandValueMin += 10;}
		else if(playerHand[z] == "h13") {playerHandValueMin += 10;}
		else if(playerHand[z] == "d2") {playerHandValueMin += 2;}
		else if(playerHand[z] == "d3") {playerHandValueMin += 3;}
		else if(playerHand[z] == "d4") {playerHandValueMin += 4;}
		else if(playerHand[z] == "d5") {playerHandValueMin += 5;}
		else if(playerHand[z] == "d6") {playerHandValueMin += 6;}
		else if(playerHand[z] == "d7") {playerHandValueMin += 7;}
		else if(playerHand[z] == "d8") {playerHandValueMin += 8;}
		else if(playerHand[z] == "d9") {playerHandValueMin += 9;}
		else if(playerHand[z] == "d10") {playerHandValueMin += 10;}
		else if(playerHand[z] == "d11") {playerHandValueMin += 10;}
		else if(playerHand[z] == "d12") {playerHandValueMin += 10;}
		else if(playerHand[z] == "d13") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s2") {playerHandValueMin += 2;}
		else if(playerHand[z] == "s3") {playerHandValueMin += 3;}
		else if(playerHand[z] == "s4") {playerHandValueMin += 4;}
		else if(playerHand[z] == "s5") {playerHandValueMin += 5;}
		else if(playerHand[z] == "s6") {playerHandValueMin += 6;}
		else if(playerHand[z] == "s7") {playerHandValueMin += 7;}
		else if(playerHand[z] == "s8") {playerHandValueMin += 8;}
		else if(playerHand[z] == "s9") {playerHandValueMin += 9;}
		else if(playerHand[z] == "s10") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s11") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s12") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s13") {playerHandValueMin += 10;}
		else if(playerHand[z] == "c2") {playerHandValueMin += 2;}
		else if(playerHand[z] == "c3") {playerHandValueMin += 3;}
		else if(playerHand[z] == "c4") {playerHandValueMin += 4;}
		else if(playerHand[z] == "c5") {playerHandValueMin += 5;}
		else if(playerHand[z] == "c6") {playerHandValueMin += 6;}
		else if(playerHand[z] == "c7") {playerHandValueMin += 7;}
		else if(playerHand[z] == "c8") {playerHandValueMin += 8;}
		else if(playerHand[z] == "c9") {playerHandValueMin += 9;}
		else if(playerHand[z] == "c10") {playerHandValueMin += 10;}
		else if(playerHand[z] == "c11") {playerHandValueMin += 10;}
		else if(playerHand[z] == "c12") {playerHandValueMin += 10;}
		else if(playerHand[z] == "c13") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s1") {aceCount = aceCount + 1;}
		else if(playerHand[z] == "h1") {aceCount = aceCount + 1;}
 		else if(playerHand[z] == "d1") {aceCount = aceCount + 1;}
 		else if(playerHand[z] == "c1") {aceCount = aceCount + 1;}
		else {}
	}
	//Ace Test.
	if (aceCount > 0) {
		while(aceCount > 0) {
			if (playerHandValueMin + aceCount * 11 > 21) {
				playerHandValueMin += 1;
				aceCount -= 1;
			} else {
				playerHandValueMin += aceCount * 11;
				aceCount = 0;
			}
		}
	} else {}
}

//---------------------------------------------------------------------------------- INTRO --------------------------------------------------------------------------------------

function runBJIntro(x) {
	if(x === 0) {
		sendMessage("Then let me introduce you to the game",2);
		sendMessage("It's a relatively simple game");
		sendMessage("First I'm gonna deal you two cards");
		sendMessage("The first card I deal is face down meaning only you can see it");
		sendMessage("The second and possible third, fourth etc will be face up meaning we can both see them");
		sendMessage("Cards have a different value");
		sendMessage("The goal of the game is for you to reach 21 or as close as you dare");
		sendMessage("two's and all the way to ten's have the corresponding value");
		sendMessage("Jacks, queens and kings have the value 10");
		sendMessage("Ace's are special, because normally they have the value 11");
		sendMessage("Except if that means you lose then their value is reduced to 1");
		sendMessage("So say you have 2 jacks and a ace");
		sendMessage("Your hand value wouldn't be 31 = 10 + 10 + 11");
		sendMessage("It would actually be 21 = 10 + 10 + 1");
		sendMessage("If your hand value goes above 21 you automaticly lose");
		sendMessage("So you will be dealt 2 cards");
		sendMessage("Then you choose if you want to stay or have another card");
		sendMessage("Another card is pretty obvious");
		sendMessage("But if you choose to stay I will start dealing cards to myself until I'm happy");
		sendMessage("I cant go beyond 21 either");
		sendMessage("So lets pretend you have a hand with a value of 18");
		sendMessage("I would then start to deal to myself");
		sendMessage("I happen to also end with 18 before I choose that I'm happy");
		sendMessage("What would happen is that you would actually lose because the dealer wins on draws");
		sendMessage("And yes..");
		sendMessage("I am always the dealer *Grins*");
		sendMessage("Think I've explained the fundamentals");
		sendMessage("The easiest way to learn it is just by trying it out");
		sendMessage("Oh I almost forgot the most important thing Lol");
		sendMessage("You have 250 gold");
		sendMessage("Your goal is to reach 1000 within 20 rounds");
		sendMessage("Before a round you have to make a bet which can be anything from 1 to however much gold you have");
		sendMessage("If you win you earn the goal you've bet x2");
		sendMessage("If you lose you lose the gold");
		sendMessage("Do notice I'm using 4 decks in total, so you will see the same card multiple times");
		sendMessage("If there is less than 30 cards remaining, I will shuffle them all over again %emote_Grin%");
		sendMessage("Now we're ready to start!");
	} else {
		sendMessage("Just a super quick recap to make sure we agree on the rules");
		sendMessage("Or rather you understand MY rules %emote_Grin%");
		sendMessage("two's to ten's have their corresponding value");
		sendMessage("Jacks, queen's and king's have the value 10");
		sendMessage("Ace's are special, usually they have the value 11");
		sendMessage("unless that makes you lose, then their value is decreased to one");
		sendMessage("I always win on ties");
		sendMessage("The first card I deal you I cant see, so that is secret for you");
		sendMessage("The goal is to reach 21");
		sendMessage("Do notice I'm using 4 decks in total, so you will see the same card multiple times");
		sendMessage("If there is less than 30 cards remaining, I will shuffle them all over again %emote_Grin%");
		sendMessage("Now we're ready to start!");
	}
}
Best regards
Genome
Tribute to 1885 & those involved with Tease-AI.
Thank you for spending time on this awesome project! :-)
GodDragon
Explorer At Heart
Explorer At Heart
Posts: 790
Joined: Sun Jun 11, 2017 4:30 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: Shared Tease-AI Java scripts

Post by GodDragon »

genome231 wrote: Fri Dec 28, 2018 3:26 pm This thread is intended for everyone writing Tease-AI Java scripts to share their work for other peoples benefit.

Allow me to make the first contribution:

Black Jack script:
You initiate the script by writing:
playBlackJack(Starting Gold,Gold required,Round Limit);
If used you will need to work through the script changing things related to your personality.
NOTICE: Script might contain minor bugs, be aware. Script contains vocabulary. Script will benefit from more text to user. Script will benefit from reward at the end, right now it only congratulates you for winning.
Also Notice: It draws cards from 4 decks. The deck is reshuffled when there is less than 30 cards in the pile.
Script:
Spoiler: show

Code: Select all

var x;
var x1;
var x2;
var x3;
var cardDrawn;
var deck;
var playerHand = [];
var dealerHand = [];
var playerHandValue = 0;
var dealerHandValue = 0;
var playerHandValueMin = 0;
var card;
var gold;
var goldNeeded;
var i;
var z;
var roundLimit;
var round;
var bet;
var firstBJ;
var aceCount = 0;
var dealer = 0;
var bjPlayerAVG = 0;
var gameRunning = true;
var bjPlayerLost = false;
var bjDealerLost = false;

/*
Takes the following inputs:
gold = Gold the user starts with.
goldNeeded = Gold the user needs to have in order to win.
roundLimit = the number of rounds the game can maximum last.
*/

function playBlackJack(x1,x2,x3) {
gameRunning = true;
gold = x1;
goldNeeded = x2;
roundLimit = x3;
round = 0;
answer = sendInput("have you played black jack before %slaveName% ?");
while(true) {
	if (answer.matchesRegexLowerCase("yes([ ]|$)","yea([ ]|$)","yeap([ ]|$)","yep([ ]|$)","y([ ]|$)")) {
		runBJIntro(1);
		break;
	} else if (answer.matchesRegexLowerCase("no([ ]|$)","nope([ ]|$)","nah([ ]|$)","haven't([ ]|$)","not([ ]|$)")) {
		runBJIntro(0);
		break;
	} else if (answer.matchesRegexLowerCase("skip([ ]|$)")) {
		break;
	} else if (answer.timeout()) {
		chat("hello?","hmm?","???!",5);
		reduceMerits();
		answer.loop();
	} else {
		chat("huh?","what was that?","???",3);
		answer.loop();
	}
}
bjResetDeck();
runBJ();
}


function runBJ() {
while (gameRunning == true) {
	//Updates the round number.
	round++;
	//Checks if the deck has less than 30 cards and reshuffels them if true.
	if (deck.length < 30) {
		bjResetDeck();
	} else{}
	resetBJ(); // Resets the variables needed.
	//A chance that the domme will give a status
	if (75 > randomInteger(75)) {
		bjStatus();
	} else {}
	bjBet(); //Player makes his bet.
	bjPlayerDraw(); //Player Draw cards until satisfied or until hand value is higher than 21.
	if (bjPlayerLost == true) {

	} else {
		bjDealerDraw(); //Dealer draws cards until she's satisfied or until hand value is higher than 21.
	}
	bjDetermine(); //Test which player wins.
	winConditionsBJ(); //Checks everything against win/lose conditions.
	}
}


//Resets the players hand, hand value and the deck.
function resetBJ() {
	playerHand = [];
	dealerHand = [];
	playerHandValue = 0;
	dealerHandValue = 0;
	bjPlayerLost = false;
	bjDealerLost = false;
}

//Creates/resets the deck being used. h = hearts, d = diamonds, s = spades and c = clubs.
function bjResetDeck() {
	sendMessage("%bj_ShuffleDeck%",5);
	deck = ["h1", "d1", "s1", "c1", "h2", "d2", "s2", "c2", "h3", "d3", "s3", "c3", "h4", "d4", "s4", "c4", "h5", "d5", "s5", "c5", "h6", "d6", "s6", "c6", "h7", "d7", "s7", "c7", "h8", "d8", "s8", "c8", "h9", "d9", "s9", "c9", "h10", "d10", "s10", "c10", "h11", "d11", "s11", "c11", "h12", "d12", "s12", "c12", "h13", "d13", "s13", "c13","h1", "d1", "s1", "c1", "h2", "d2", "s2", "c2", "h3", "d3", "s3", "c3", "h4", "d4", "s4", "c4", "h5", "d5", "s5", "c5", "h6", "d6", "s6", "c6", "h7", "d7", "s7", "c7", "h8", "d8", "s8", "c8", "h9", "d9", "s9", "c9", "h10", "d10", "s10", "c10", "h11", "d11", "s11", "c11", "h12", "d12", "s12", "c12", "h13", "d13", "s13", "c13","h1", "d1", "s1", "c1", "h2", "d2", "s2", "c2", "h3", "d3", "s3", "c3", "h4", "d4", "s4", "c4", "h5", "d5", "s5", "c5", "h6", "d6", "s6", "c6", "h7", "d7", "s7", "c7", "h8", "d8", "s8", "c8", "h9", "d9", "s9", "c9", "h10", "d10", "s10", "c10", "h11", "d11", "s11", "c11", "h12", "d12", "s12", "c12", "h13", "d13", "s13", "c13","h1", "d1", "s1", "c1", "h2", "d2", "s2", "c2", "h3", "d3", "s3", "c3", "h4", "d4", "s4", "c4", "h5", "d5", "s5", "c5", "h6", "d6", "s6", "c6", "h7", "d7", "s7", "c7", "h8", "d8", "s8", "c8", "h9", "d9", "s9", "c9", "h10", "d10", "s10", "c10", "h11", "d11", "s11", "c11", "h12", "d12", "s12", "c12", "h13", "d13", "s13", "c13"];
}

//---------------------------------------------------------------------------------- Basic game functions --------------------------------------------------------------------------------------

function bjPlayerWin() {
	// Bet is multiplied by 2 and added to gold.
	gold = gold + (bet * 2);
	sendMessage("%bj_PlayerWin%",5);
}
	
function bjDealerWin() {
	//Bet is deducted from gold.
	gold = gold - bet;
	sendMessage("%bj_DealerWin%",5)
}

function bjDetermine() {
	bjDealerValue();
	bjPlayerValue();
	if (bjPlayerLost == true) {
		bjDealerWin();
	} else if (bjDealerLost == true) {
		bjPlayerWin();
	} else if (dealerHandValue >= playerHandValue) {
		bjDealerWin();
	} else {
		bjPlayerWin();
	}
}

//Selects a random card and removes that card from the array of available cards.
function bjSelectCard() {
	x = randomInteger(0,deck.length - 1);
	card = deck[x];
	deck.splice(x,1);
}


function winConditionsBJ() {
	//Check if player has enough gold
	if(gold >= goldNeeded) {
		bjWin();
	} else {}
	//Check if all the rounds has passed.
	if(round >= roundLimit) {
		bjLose();
	} else {}
	//Check if gold is below 0.
	if(gold <= 0) {
		bjLose();
	} else {}
}

function bjWin() {
	sendMessage("You win the Game!",5);
	gameRunning = false;
}

function bjLose() {
	sendMessage("You lose the game!",5);
	gameRunning = false;
}

//Dealer Draws
//Dealer will give herself 2 cards, she will then test if she is happy with her hand.
//3 factors determine if she's happy.
//If hand value is less than 14, she will automaticly choose to draw a new card.
//If hand value is higher than 18, she will automaticly stop drawing.
//in between 



//---------------------------------------------------------------------------------- dealer draw card function --------------------------------------------------------------------------------------

function dealerDraw() {
	bjSelectCard();
	bjShowCard();
	sleep(4);
	dealerHand.splice(i,0,card);
	i++;	
}

function bjDealerDraw() {
	bjPlayerValueMin(); //Calculates the player hand value min.
	i = 0;
	dealerDraw();
	dealerDraw();
	dealer = 0;
	while (dealer == 0) {
		bjDealerValue();
		//Does the dealer have a hand value higher than 21.
		if (dealerHandValue > 21) {
			bjDealerLost = true;
		} else {}
		//Will test if hand is less than 15 or higher than 18.
		if (dealerHandValue <= 14) {
			dealerDraw();
		} else if (dealerHandValue >= 19) {
			dealer = 1;
		} else {
			x = randomInteger(1,100);
			if (x > 75) {
				if (randomInteger(14,19) > dealerHandValue) {
					dealerDraw();
				} else {
					dealer = 1;
				}
			} else if (x > 25) {
				if (dealerHandValue >= bjPlayerAVG) {
					dealer = 1;
				} else {
					dealerDraw();
				}
			} else {
				if (dealerHandValue > bjPlayerMin && dealerHandValue > 17) {
					dealer = 1;
				} else {
					dealerDraw();
				}
			}
		}
	}
}


//---------------------------------------------------------------------------------- player draw card function --------------------------------------------------------------------------------------

function playerDraw() {
	bjSelectCard();
	bjShowCard();
	sleep(4);
	playerHand.splice(i,0,card);
	i++;
}

function bjPlayerDraw() {
	//Draws first card.
	i = 0;
	playerDraw();
	//Draws second card
	playerDraw();
	//Ask the player to draw or stay
	answer = sendInput("Draw or stay?");
	while (true) {
		if (answer.matchesRegexLowerCase("draw([ ]|$)")) {
			playerDraw();
			bjPlayerValue();
			if (playerHandValue > 21) {
				bjPlayerLost = true;
			} else {}
			answer.loop();
		} else if (answer.matchesRegexLowerCase("stay([ ]|$)")) {
			bjCalculateAvg();
			break;
		} else {
			sendMessage("Stay or draw??");
			answer.loop();
		}
	}
}

function bjCalculateAvg() {
	bjPlayerValue();
	bjPlayerAVG = (bjPlayerAVG + playerHandValue) / 2
}

//---------------------------------------------------------------------------------- player betting function --------------------------------------------------------------------------------------

function bjBet() {
	answer = sendInput("How much do you want to bet?");
	while (true) {
		if (answer.isInteger()) {
			bet = answer.getInt();
			if (bet <= 0) {
				sendMessage("You have to give me a positive number bigger than 0...");
				reduceMerits();
				answer.loop();
			} else if (bet > gold) {
				sendMessage("You cant choose a number bigger than your available gold. You only have " + gold + "..");
				reduceMerits();
				answer.loop();
			} else {
				break;
			}
		} else {
			sendMessage("You have to give me a number like 50, 111, 77 or similar");
			answer.loop();
		}
	}
}

function bjStatus() {
	sendMessage("You have " + gold,3);
	sendMessage("And this is round " + round + " of " + roundLimit + " rounds in total",3);
}

//---------------------------------------------------------------------------------- Simple show current selected card --------------------------------------------------------------------------------------

//shows the current drawn card.
function bjShowCard() {
		if(card == "h2") {showImage("Images/GNM_Images/Games/Deck/2/H2.JPG");} 
		else if(card == "h3") {showImage("Images/GNM_Images/Games/Deck/3/H3.JPG");}
		else if(card == "h4") {showImage("Images/GNM_Images/Games/Deck/4/H4.JPG");}
		else if(card == "h5") {showImage("Images/GNM_Images/Games/Deck/5/H5.JPG");}
		else if(card == "h6") {showImage("Images/GNM_Images/Games/Deck/6/H6.JPG");}
		else if(card == "h7") {showImage("Images/GNM_Images/Games/Deck/7/H7.JPG");}
		else if(card == "h8") {showImage("Images/GNM_Images/Games/Deck/8/H8.JPG");}
		else if(card == "h9") {showImage("Images/GNM_Images/Games/Deck/9/H9.JPG");}
		else if(card == "h10") {showImage("Images/GNM_Images/Games/Deck/10/H10.JPG");}
		else if(card == "h11") {showImage("Images/GNM_Images/Games/Deck/11/H11.JPG");}
		else if(card == "h12") {showImage("Images/GNM_Images/Games/Deck/12/H12.JPG");}
		else if(card == "h13") {showImage("Images/GNM_Images/Games/Deck/13/H13.JPG");}
		else if(card == "d2") {showImage("Images/GNM_Images/Games/Deck/2/D2.JPG");}
		else if(card == "d3") {showImage("Images/GNM_Images/Games/Deck/3/D3.JPG");}
		else if(card == "d4") {showImage("Images/GNM_Images/Games/Deck/4/D4.JPG");}
		else if(card == "d5") {showImage("Images/GNM_Images/Games/Deck/5/D5.JPG");}
		else if(card == "d6") {showImage("Images/GNM_Images/Games/Deck/6/D6.JPG");}
		else if(card == "d7") {showImage("Images/GNM_Images/Games/Deck/7/D7.JPG");}
		else if(card == "d8") {showImage("Images/GNM_Images/Games/Deck/8/D8.JPG");}
		else if(card == "d9") {showImage("Images/GNM_Images/Games/Deck/9/D9.JPG");}
		else if(card == "d10") {showImage("Images/GNM_Images/Games/Deck/10/D10.JPG");}
		else if(card == "d11") {showImage("Images/GNM_Images/Games/Deck/11/D11.JPG");}
		else if(card == "d12") {showImage("Images/GNM_Images/Games/Deck/12/D12.JPG");}
		else if(card == "d13") {showImage("Images/GNM_Images/Games/Deck/13/D13.JPG");}
		else if(card == "s2") {showImage("Images/GNM_Images/Games/Deck/2/S2.JPG");}
		else if(card == "s3") {showImage("Images/GNM_Images/Games/Deck/3/S3.JPG");}
		else if(card == "s4") {showImage("Images/GNM_Images/Games/Deck/4/S4.JPG");}
		else if(card == "s5") {showImage("Images/GNM_Images/Games/Deck/5/S5.JPG");}
		else if(card == "s6") {showImage("Images/GNM_Images/Games/Deck/6/S6.JPG");}
		else if(card == "s7") {showImage("Images/GNM_Images/Games/Deck/7/S7.JPG");}
		else if(card == "s8") {showImage("Images/GNM_Images/Games/Deck/8/S8.JPG");}
		else if(card == "s9") {showImage("Images/GNM_Images/Games/Deck/9/S9.JPG");}
		else if(card == "s10") {showImage("Images/GNM_Images/Games/Deck/10/S10.JPG");}
		else if(card == "s11") {showImage("Images/GNM_Images/Games/Deck/11/S11.JPG");}
		else if(card == "s12") {showImage("Images/GNM_Images/Games/Deck/12/S12.JPG");}
		else if(card == "s13") {showImage("Images/GNM_Images/Games/Deck/13/S13.JPG");}
		else if(card == "c2") {showImage("Images/GNM_Images/Games/Deck/2/C2.JPG");}
		else if(card == "c3") {showImage("Images/GNM_Images/Games/Deck/3/C3.JPG");}
		else if(card == "c4") {showImage("Images/GNM_Images/Games/Deck/4/C4.JPG");}
		else if(card == "c5") {showImage("Images/GNM_Images/Games/Deck/5/C5.JPG");}
		else if(card == "c6") {showImage("Images/GNM_Images/Games/Deck/6/C6.JPG");}
		else if(card == "c7") {showImage("Images/GNM_Images/Games/Deck/7/C7.JPG");}
		else if(card == "c8") {showImage("Images/GNM_Images/Games/Deck/8/C8.JPG");}
		else if(card == "c9") {showImage("Images/GNM_Images/Games/Deck/9/C9.JPG");}
		else if(card == "c10") {showImage("Images/GNM_Images/Games/Deck/10/C10.JPG");}
		else if(card == "c11") {showImage("Images/GNM_Images/Games/Deck/11/C11.JPG");}
		else if(card == "c12") {showImage("Images/GNM_Images/Games/Deck/12/C12.JPG");}
		else if(card == "c13") {showImage("Images/GNM_Images/Games/Deck/13/C13.JPG");}
		else if(card == "s1") {showImage("Images/GNM_Images/Games/Deck/1/S1.JPG");}
		else if(card == "h1") {showImage("Images/GNM_Images/Games/Deck/1/H1.JPG");}
 		else if(card == "d1") {showImage("Images/GNM_Images/Games/Deck/1/D1.JPG");}
 		else if(card == "c1") {showImage("Images/GNM_Images/Games/Deck/1/C1.JPG");}
		else {}
}

//---------------------------------------------------------------------------------- Calculate hand value --------------------------------------------------------------------------------------

function bjDealerValue() {
	aceCount = 0;
	for (z = 0; z < dealerHand.length; z++) {
		if(dealerHand[z] == "h2") {dealerHandValue += 2;} 
		else if(dealerHand[z] == "h3") {dealerHandValue += 3;}
		else if(dealerHand[z] == "h4") {dealerHandValue += 4;}
		else if(dealerHand[z] == "h5") {dealerHandValue += 5;}
		else if(dealerHand[z] == "h6") {dealerHandValue += 6;}
		else if(dealerHand[z] == "h7") {dealerHandValue += 7;}
		else if(dealerHand[z] == "h8") {dealerHandValue += 8;}
		else if(dealerHand[z] == "h9") {dealerHandValue += 9;}
		else if(dealerHand[z] == "h10") {dealerHandValue += 10;}
		else if(dealerHand[z] == "h11") {dealerHandValue += 10;}
		else if(dealerHand[z] == "h12") {dealerHandValue += 10;}
		else if(dealerHand[z] == "h13") {dealerHandValue += 10;}
		else if(dealerHand[z] == "d2") {dealerHandValue += 2;}
		else if(dealerHand[z] == "d3") {dealerHandValue += 3;}
		else if(dealerHand[z] == "d4") {dealerHandValue += 4;}
		else if(dealerHand[z] == "d5") {dealerHandValue += 5;}
		else if(dealerHand[z] == "d6") {dealerHandValue += 6;}
		else if(dealerHand[z] == "d7") {dealerHandValue += 7;}
		else if(dealerHand[z] == "d8") {dealerHandValue += 8;}
		else if(dealerHand[z] == "d9") {dealerHandValue += 9;}
		else if(dealerHand[z] == "d10") {dealerHandValue += 10;}
		else if(dealerHand[z] == "d11") {dealerHandValue += 10;}
		else if(dealerHand[z] == "d12") {dealerHandValue += 10;}
		else if(dealerHand[z] == "d13") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s2") {dealerHandValue += 2;}
		else if(dealerHand[z] == "s3") {dealerHandValue += 3;}
		else if(dealerHand[z] == "s4") {dealerHandValue += 4;}
		else if(dealerHand[z] == "s5") {dealerHandValue += 5;}
		else if(dealerHand[z] == "s6") {dealerHandValue += 6;}
		else if(dealerHand[z] == "s7") {dealerHandValue += 7;}
		else if(dealerHand[z] == "s8") {dealerHandValue += 8;}
		else if(dealerHand[z] == "s9") {dealerHandValue += 9;}
		else if(dealerHand[z] == "s10") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s11") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s12") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s13") {dealerHandValue += 10;}
		else if(dealerHand[z] == "c2") {dealerHandValue += 2;}
		else if(dealerHand[z] == "c3") {dealerHandValue += 3;}
		else if(dealerHand[z] == "c4") {dealerHandValue += 4;}
		else if(dealerHand[z] == "c5") {dealerHandValue += 5;}
		else if(dealerHand[z] == "c6") {dealerHandValue += 6;}
		else if(dealerHand[z] == "c7") {dealerHandValue += 7;}
		else if(dealerHand[z] == "c8") {dealerHandValue += 8;}
		else if(dealerHand[z] == "c9") {dealerHandValue += 9;}
		else if(dealerHand[z] == "c10") {dealerHandValue += 10;}
		else if(dealerHand[z] == "c11") {dealerHandValue += 10;}
		else if(dealerHand[z] == "c12") {dealerHandValue += 10;}
		else if(dealerHand[z] == "c13") {dealerHandValue += 10;}
		else if(dealerHand[z] == "s1") {aceCount = aceCount + 1;}
		else if(dealerHand[z] == "h1") {aceCount = aceCount + 1;}
 		else if(dealerHand[z] == "d1") {aceCount = aceCount + 1;}
 		else if(dealerHand[z] == "c1") {aceCount = aceCount + 1;}
		else {}
	}
	//Ace Test.
	if (aceCount > 0) {
		while(aceCount > 0) {
			if (dealerHandValue + aceCount * 11 > 21) {
				dealerHandValue += 1;
				aceCount -= 1;
			} else {
				dealerHandValue += aceCount * 11;
				aceCount = 0;
			}
		}
	} else {}
}


function bjPlayerValue() {
	aceCount = 0;
	for (z = 0; z < playerHand.length; z++) {
		if(playerHand[z] == "h2") {playerHandValue += 2;} 
		else if(playerHand[z] == "h3") {playerHandValue += 3;}
		else if(playerHand[z] == "h4") {playerHandValue += 4;}
		else if(playerHand[z] == "h5") {playerHandValue += 5;}
		else if(playerHand[z] == "h6") {playerHandValue += 6;}
		else if(playerHand[z] == "h7") {playerHandValue += 7;}
		else if(playerHand[z] == "h8") {playerHandValue += 8;}
		else if(playerHand[z] == "h9") {playerHandValue += 9;}
		else if(playerHand[z] == "h10") {playerHandValue += 10;}
		else if(playerHand[z] == "h11") {playerHandValue += 10;}
		else if(playerHand[z] == "h12") {playerHandValue += 10;}
		else if(playerHand[z] == "h13") {playerHandValue += 10;}
		else if(playerHand[z] == "d2") {playerHandValue += 2;}
		else if(playerHand[z] == "d3") {playerHandValue += 3;}
		else if(playerHand[z] == "d4") {playerHandValue += 4;}
		else if(playerHand[z] == "d5") {playerHandValue += 5;}
		else if(playerHand[z] == "d6") {playerHandValue += 6;}
		else if(playerHand[z] == "d7") {playerHandValue += 7;}
		else if(playerHand[z] == "d8") {playerHandValue += 8;}
		else if(playerHand[z] == "d9") {playerHandValue += 9;}
		else if(playerHand[z] == "d10") {playerHandValue += 10;}
		else if(playerHand[z] == "d11") {playerHandValue += 10;}
		else if(playerHand[z] == "d12") {playerHandValue += 10;}
		else if(playerHand[z] == "d13") {playerHandValue += 10;}
		else if(playerHand[z] == "s2") {playerHandValue += 2;}
		else if(playerHand[z] == "s3") {playerHandValue += 3;}
		else if(playerHand[z] == "s4") {playerHandValue += 4;}
		else if(playerHand[z] == "s5") {playerHandValue += 5;}
		else if(playerHand[z] == "s6") {playerHandValue += 6;}
		else if(playerHand[z] == "s7") {playerHandValue += 7;}
		else if(playerHand[z] == "s8") {playerHandValue += 8;}
		else if(playerHand[z] == "s9") {playerHandValue += 9;}
		else if(playerHand[z] == "s10") {playerHandValue += 10;}
		else if(playerHand[z] == "s11") {playerHandValue += 10;}
		else if(playerHand[z] == "s12") {playerHandValue += 10;}
		else if(playerHand[z] == "s13") {playerHandValue += 10;}
		else if(playerHand[z] == "c2") {playerHandValue += 2;}
		else if(playerHand[z] == "c3") {playerHandValue += 3;}
		else if(playerHand[z] == "c4") {playerHandValue += 4;}
		else if(playerHand[z] == "c5") {playerHandValue += 5;}
		else if(playerHand[z] == "c6") {playerHandValue += 6;}
		else if(playerHand[z] == "c7") {playerHandValue += 7;}
		else if(playerHand[z] == "c8") {playerHandValue += 8;}
		else if(playerHand[z] == "c9") {playerHandValue += 9;}
		else if(playerHand[z] == "c10") {playerHandValue += 10;}
		else if(playerHand[z] == "c11") {playerHandValue += 10;}
		else if(playerHand[z] == "c12") {playerHandValue += 10;}
		else if(playerHand[z] == "c13") {playerHandValue += 10;}
		else if(playerHand[z] == "s1") {aceCount = aceCount + 1;}
		else if(playerHand[z] == "h1") {aceCount = aceCount + 1;}
 		else if(playerHand[z] == "d1") {aceCount = aceCount + 1;}
 		else if(playerHand[z] == "c1") {aceCount = aceCount + 1;}
		else {}
	}
	//Ace Test.
	if (aceCount > 0) {
		while(aceCount > 0) {
			if (playerHandValue + aceCount * 11 > 21) {
				playerHandValue += 1;
				aceCount -= 1;
			} else {
				playerHandValue += aceCount * 11;
				aceCount = 0;
			}
		}
	} else {}
}


function bjPlayerValueMin() {
	aceCount = 0;
	for (i = 1; i < playerHand.length; i++) {
		if(playerHand[z] == "h2") {playerHandValueMin += 2;} 
		else if(playerHand[z] == "h3") {playerHandValueMin += 3;}
		else if(playerHand[z] == "h4") {playerHandValueMin += 4;}
		else if(playerHand[z] == "h5") {playerHandValueMin += 5;}
		else if(playerHand[z] == "h6") {playerHandValueMin += 6;}
		else if(playerHand[z] == "h7") {playerHandValueMin += 7;}
		else if(playerHand[z] == "h8") {playerHandValueMin += 8;}
		else if(playerHand[z] == "h9") {playerHandValueMin += 9;}
		else if(playerHand[z] == "h10") {playerHandValueMin += 10;}
		else if(playerHand[z] == "h11") {playerHandValueMin += 10;}
		else if(playerHand[z] == "h12") {playerHandValueMin += 10;}
		else if(playerHand[z] == "h13") {playerHandValueMin += 10;}
		else if(playerHand[z] == "d2") {playerHandValueMin += 2;}
		else if(playerHand[z] == "d3") {playerHandValueMin += 3;}
		else if(playerHand[z] == "d4") {playerHandValueMin += 4;}
		else if(playerHand[z] == "d5") {playerHandValueMin += 5;}
		else if(playerHand[z] == "d6") {playerHandValueMin += 6;}
		else if(playerHand[z] == "d7") {playerHandValueMin += 7;}
		else if(playerHand[z] == "d8") {playerHandValueMin += 8;}
		else if(playerHand[z] == "d9") {playerHandValueMin += 9;}
		else if(playerHand[z] == "d10") {playerHandValueMin += 10;}
		else if(playerHand[z] == "d11") {playerHandValueMin += 10;}
		else if(playerHand[z] == "d12") {playerHandValueMin += 10;}
		else if(playerHand[z] == "d13") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s2") {playerHandValueMin += 2;}
		else if(playerHand[z] == "s3") {playerHandValueMin += 3;}
		else if(playerHand[z] == "s4") {playerHandValueMin += 4;}
		else if(playerHand[z] == "s5") {playerHandValueMin += 5;}
		else if(playerHand[z] == "s6") {playerHandValueMin += 6;}
		else if(playerHand[z] == "s7") {playerHandValueMin += 7;}
		else if(playerHand[z] == "s8") {playerHandValueMin += 8;}
		else if(playerHand[z] == "s9") {playerHandValueMin += 9;}
		else if(playerHand[z] == "s10") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s11") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s12") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s13") {playerHandValueMin += 10;}
		else if(playerHand[z] == "c2") {playerHandValueMin += 2;}
		else if(playerHand[z] == "c3") {playerHandValueMin += 3;}
		else if(playerHand[z] == "c4") {playerHandValueMin += 4;}
		else if(playerHand[z] == "c5") {playerHandValueMin += 5;}
		else if(playerHand[z] == "c6") {playerHandValueMin += 6;}
		else if(playerHand[z] == "c7") {playerHandValueMin += 7;}
		else if(playerHand[z] == "c8") {playerHandValueMin += 8;}
		else if(playerHand[z] == "c9") {playerHandValueMin += 9;}
		else if(playerHand[z] == "c10") {playerHandValueMin += 10;}
		else if(playerHand[z] == "c11") {playerHandValueMin += 10;}
		else if(playerHand[z] == "c12") {playerHandValueMin += 10;}
		else if(playerHand[z] == "c13") {playerHandValueMin += 10;}
		else if(playerHand[z] == "s1") {aceCount = aceCount + 1;}
		else if(playerHand[z] == "h1") {aceCount = aceCount + 1;}
 		else if(playerHand[z] == "d1") {aceCount = aceCount + 1;}
 		else if(playerHand[z] == "c1") {aceCount = aceCount + 1;}
		else {}
	}
	//Ace Test.
	if (aceCount > 0) {
		while(aceCount > 0) {
			if (playerHandValueMin + aceCount * 11 > 21) {
				playerHandValueMin += 1;
				aceCount -= 1;
			} else {
				playerHandValueMin += aceCount * 11;
				aceCount = 0;
			}
		}
	} else {}
}

//---------------------------------------------------------------------------------- INTRO --------------------------------------------------------------------------------------

function runBJIntro(x) {
	if(x === 0) {
		sendMessage("Then let me introduce you to the game",2);
		sendMessage("It's a relatively simple game");
		sendMessage("First I'm gonna deal you two cards");
		sendMessage("The first card I deal is face down meaning only you can see it");
		sendMessage("The second and possible third, fourth etc will be face up meaning we can both see them");
		sendMessage("Cards have a different value");
		sendMessage("The goal of the game is for you to reach 21 or as close as you dare");
		sendMessage("two's and all the way to ten's have the corresponding value");
		sendMessage("Jacks, queens and kings have the value 10");
		sendMessage("Ace's are special, because normally they have the value 11");
		sendMessage("Except if that means you lose then their value is reduced to 1");
		sendMessage("So say you have 2 jacks and a ace");
		sendMessage("Your hand value wouldn't be 31 = 10 + 10 + 11");
		sendMessage("It would actually be 21 = 10 + 10 + 1");
		sendMessage("If your hand value goes above 21 you automaticly lose");
		sendMessage("So you will be dealt 2 cards");
		sendMessage("Then you choose if you want to stay or have another card");
		sendMessage("Another card is pretty obvious");
		sendMessage("But if you choose to stay I will start dealing cards to myself until I'm happy");
		sendMessage("I cant go beyond 21 either");
		sendMessage("So lets pretend you have a hand with a value of 18");
		sendMessage("I would then start to deal to myself");
		sendMessage("I happen to also end with 18 before I choose that I'm happy");
		sendMessage("What would happen is that you would actually lose because the dealer wins on draws");
		sendMessage("And yes..");
		sendMessage("I am always the dealer *Grins*");
		sendMessage("Think I've explained the fundamentals");
		sendMessage("The easiest way to learn it is just by trying it out");
		sendMessage("Oh I almost forgot the most important thing Lol");
		sendMessage("You have 250 gold");
		sendMessage("Your goal is to reach 1000 within 20 rounds");
		sendMessage("Before a round you have to make a bet which can be anything from 1 to however much gold you have");
		sendMessage("If you win you earn the goal you've bet x2");
		sendMessage("If you lose you lose the gold");
		sendMessage("Do notice I'm using 4 decks in total, so you will see the same card multiple times");
		sendMessage("If there is less than 30 cards remaining, I will shuffle them all over again %emote_Grin%");
		sendMessage("Now we're ready to start!");
	} else {
		sendMessage("Just a super quick recap to make sure we agree on the rules");
		sendMessage("Or rather you understand MY rules %emote_Grin%");
		sendMessage("two's to ten's have their corresponding value");
		sendMessage("Jacks, queen's and king's have the value 10");
		sendMessage("Ace's are special, usually they have the value 11");
		sendMessage("unless that makes you lose, then their value is decreased to one");
		sendMessage("I always win on ties");
		sendMessage("The first card I deal you I cant see, so that is secret for you");
		sendMessage("The goal is to reach 21");
		sendMessage("Do notice I'm using 4 decks in total, so you will see the same card multiple times");
		sendMessage("If there is less than 30 cards remaining, I will shuffle them all over again %emote_Grin%");
		sendMessage("Now we're ready to start!");
	}
}
Best regards
Genome
Great!
Leaving my way to randomly distribute clamps here:
https://github.com/GodDragoner/Spicy-TA ... dyParts.js
https://github.com/GodDragoner/Spicy-TA ... /Clamps.js

(Can be improved btw.)
Post Reply

Who is online

Users browsing this forum: eatsl and 29 guests