Apps Home
|
Create an App
blackjack_0
Author:
monstrosity66
Description
Source Code
Launch App
Current Users
Created by:
Monstrosity66
var player; var numTokensToStart = 2; var gameActive; cb.settings_choices = [ {name: 'bet', type: 'str', minLenth: 1, maxLength: 255, label: 'What do you want to bet:', defaultValue: 'A kiss'}, {name: 'numTokensToStart', type: 'int', minValue: 1, maxValue: 499, defaultValue: 20, label: "Number of tokens to play a hand:"}, ] var numTokensToStart = cb.settings.numTokensToStart; ///////////////////////////////////////// GAME FUNCTIONS var suits = ["Spades", "Hearts", "Diamonds", "Clubs"]; var values = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"]; var deck = new Array(); function createDeck() { //cb.log('Func createDeck'); deck = new Array(); for (var i = 0 ; i < values.length; i++) { for(var x = 0; x < suits.length; x++) { var weight = parseInt(values[i]); if (values[i] == "J" || values[i] == "Q" || values[i] == "K") weight = 10; if (values[i] == "A") weight = 11; var card = { Value: values[i], Suit: suits[x], Weight: weight }; deck.push(card); } } } function shuffle() { // for 1000 turns // switch the values of two random cards //cb.log('Func shuffle'); for (var i = 0; i < 1000; i++) { var location1 = Math.floor((Math.random() * deck.length)); var location2 = Math.floor((Math.random() * deck.length)); var tmp = deck[location1]; deck[location1] = deck[location2]; deck[location2] = tmp; } } var players = new Array(); function createPlayers(num) { //cb.log('Func createPlayers'); players = new Array(); //for(var i = 1; i <= num; i++) //{ //Model var hand1 = new Array(); var player1 = { Name: cb.room_slug, ID: 1, Points: 0, Hand: hand1 }; players.push(player1); //Player var hand2 = new Array(); var player2 = { Name: player, ID: 2, Points: 0, Hand: hand2 }; players.push(player2); //} } function dealHands() { // alternate handing cards to each player // 2 cards each //cb.log('Func dealHands'); //cb.log('palyers.length: ' + players.length); for(var i = 0; i < 2; i++) { for (var x = 0; x < players.length; x++) { //cb.log('Dealing card #' + i + ' to player: ' + players[x].Name); var card = deck.pop(); players[x].Hand.push(card); //renderCard(card, x); cb.sendNotice('Got a ' + card.Value + ' of ' + card.Suit, players[x].Name, "", "", "bold", ""); updatePoints(); } } updateDeck(); } function getPoints(player) { //cb.log('Func getPoints'); var points = 0; //cb.log(players[player].Name + ' Hand.length: ' + players[player].Hand.length ); for(var i = 0; i < players[player].Hand.length; i++) { points += players[player].Hand[i].Weight; } players[player].Points = points; return points; } function updatePoints() { //cb.log('Func updatePoints'); for (var i = 0 ; i < players.length; i++) { getPoints(i); //cb.log(players[i].Name + ' points ' + players[i].Points); //document.getElementById('points_' + i).innerHTML = players[i].Points; } } function hitMe() { // pop a card from the deck to the current player // check if current player new points are over 21 cb.log('Func hitMe'); var card = deck.pop(); players[currentPlayer].Hand.push(card); renderCard(card, currentPlayer); updatePoints(); updateDeck(); check(); } function stay() { // move on to next player, if any cb.log('Func stay'); if (currentPlayer != players.length-1) { document.getElementById('player_' + currentPlayer).classList.remove('active'); currentPlayer += 1; document.getElementById('player_' + currentPlayer).classList.add('active'); } else { end(); } } function end() { cb.log('Func end'); var winner = -1; var score = 0; for(var i = 0; i < players.length; i++) { if (players[i].Points > score && players[i].Points < 22) { winner = i; } score = players[i].Points; } //document.getElementById('status').innerHTML = 'Winner: Player ' + players[winner].ID; cb.sendNotice('The winner is: ' + players[winner].Name + '! Congrats!', "", "", "", "bold", ""); if(players[winner].Name == player) cb.sendNotice(players[winner].Name + ' just won ' + cb.settings.bet + '!', "", "", "", "bold", ""); else cb.sendNotice('Keep trying folks!', "", "", "", "bold", ""); } function check() { cb.log('Func check'); if (players[currentPlayer].Points > 21) { document.getElementById('status').innerHTML = 'Player: ' + players[currentPlayer].ID + ' LOST'; } } function updateDeck() { //document.getElementById('deckcount').innerHTML = deck.length; } function start() { // deal 2 cards to every player object //cb.log('Func start'); currentPlayer = 0; createDeck(); shuffle(); createPlayers(2); //createPlayersUI(); dealHands(); end(); //document.getElementById('player_' + currentPlayer).classList.add('active'); } ///////////////////////////////////////// cb.onTip(function(tip){ var tipAmount = parseInt(tip['amount']) cb.log('tipped ' + tipAmount ); if (tipAmount == numTokensToStart){ cb.log('start game!'); gameActive = true; player = tip['from_user']; cb.drawPanel(); cb.log('Player: ' + player + ' gameActive?:' + gameActive); start(); } }) cb.onDrawPanel(function(user){ return{ 'template': '3_rows_of_labels', row1_label: 'player', row1_value: player, row2_label: 'Total Tokens: ', row2_value: 30, row3_label: 'Playing?: ', row3_value: gameActive } })
© Copyright Chaturbate 2011- 2025. All Rights Reserved.