Blackjack Unfinished

By AlexRapso on Sep 07, 2010

I started making blackjack but couldn't be bothered to finish it.

Feel free to try and make it work lol

on *:text:!unset*:#: {
  if ($address($nick, 2) == %owner) {
    /remove bj.ini
    unset %bet %1player %bjtop %splitp %hand
    msg $chan Unset!
  }
}
on *:text:!bjchan*:#: {
  if ($address($nick, 2) == %owner) {
    set %bjchan $2
  }
}
on *:text:!play*:%bjchan: {
  if (%bj != on) {
    msg $chan Blackjack is now on!
    set %bj on
  }
}
on *:text:!join*:%bjchan: {
  if (%bj != on) { msg $chan The game isn't on | halt }
  if (%1player == on || %bjgame == on) { msg $chan There is already a game in progress | halt }
  if (!%bjtop) { set %bjtop 0 }
  if (%bjtop < 6) {
    var %bjcount = 1
    while (%bjcount <= %bjtop) {
      if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
        var %playing = on
      }
      %bjcount = $calc(%bjcount + 1)
    }
    if (%playing != on) {
      set %bjtop $calc(%bjtop + 1)
      writeini bj.ini players player $+ %bjtop $nick
      writeini bj.ini money player $+ %bjtop 100000
      msg $chan $nick has joined the game
    }
    else { msg $chan You are already in the game }
  }
  else { msg $chan 6 people have already joined }
}
on *:text:!bet*:%bjchan: {
  var %bjcount = 1
  while (%bjcount <= %bjtop) {
    if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
      var %playing = on
    }
    %bjcount = $calc(%bjcount + 1)
  }
  if (%playing != on) { msg $chan $nick your not playing | halt }
  if (%bet == on) { msg $chan $nick you have already bet | halt }
  if (%bj != on) { msg $chan The game isn't on | halt }
  if (%bjtop == 1) { /1player | set %1player on | set %bet on }
  else { /bjgame | set %bjgame on | set %bet on }
}
alias 1player { 
  var %d1 = $rand(1,13)
  var %d2 = $rand(1,13)
  if (%d1 == 1) { writeini bj.ini dealer card1 A } 
  if (%d1 == 11) { writeini bj.ini dealer card1 J } 
  if (%d1 == 12) { writeini bj.ini dealer card1 Q } 
  if (%d1 == 13) { writeini bj.ini dealer card1 K }
  if (%d1 >= 2 && %d1 <= 10) { writeini bj.ini dealer card1 %d1 } 
  if (%d2 == 1) { writeini bj.ini dealer card2 A } 
  if (%d2 == 11) { writeini bj.ini dealer card2 J } 
  if (%d2 == 12) { writeini bj.ini dealer card2 Q } 
  if (%d2 == 13) { writeini bj.ini dealer card2 K }
  if (%d2 >= 2 && %d2 <= 10) { writeini bj.ini dealer card2 %d2 }
  var %d1 = $readini(bj.ini, dealer, card1)
  var %d2 = $readini(bj.ini, dealer, card2)
  if (%d1 == A && %d2 != A ) && (%d2 == K || %d2 == Q || %d2 == J || %d2 == 10) { 
    msg $chan Dealer got Blackjack :( 
    unset %bet 
    unset %1player
    /remini bj.ini player1
    /remini bj.ini dealer 
  }
  else if (%d1 != A && %d2 == A ) && (%d1 == K || %d1 == Q || %d1 == J || %d1 == 10) { 
    msg $chan Dealer got Blackjack :( 
    unset %bet 
    unset %1player
    /remini bj.ini player1
    /remini bj.ini dealer 
  }
  else { /cplayer1 }
}
alias cplayer1 {
  var %c1 = $rand(1,13)
  var %c2 = $rand(1,13)
  if (%c1 == %c2) { set %splitting on }
  set %double on 
  writeini bj.ini player1 cards 2
  if (%c1 == 1) { writeini bj.ini player1 card1 A } 
  if (%c1 == 11) { writeini bj.ini player1 card1 J } 
  if (%c1 == 12) { writeini bj.ini player1 card1 Q } 
  if (%c1 == 13) { writeini bj.ini player1 card1 K }
  if (%c1 >= 2 && %c1 <= 10) { writeini bj.ini player1 card1 %c1 }
  if (%c2 == 1) { writeini bj.ini player1 card2 A } 
  if (%c2 == 11) { writeini bj.ini player1 card2 J } 
  if (%c2 == 12) { writeini bj.ini player1 card2 Q } 
  if (%c2 == 13) { writeini bj.ini player1 card2 K }
  if (%c2 >= 2 && %c2 <= 10) { writeini bj.ini player1 card2 %c2 } 
  var %c1 = $readini(bj.ini, player1, card1)
  var %c2 = $readini(bj.ini, player1, card2)
  if (%c1 == A && %c2 == A ) { msg $chan $nick has: A+A = 2/12 - I sugest splitting | writeini bj.ini player1 total 12 }
  else if (%c1 == A && %c2 != A ) && (%c2 == K || %c2 == Q || %c2 == J || %c2 == 10) { 
    msg $chan Blackjack! 
    unset %bet 
    unset %1player
    /remini bj.ini player1
    /remini bj.ini dealer 
  }
  else if (%c1 != A && %c2 == A ) && (%c1 == K || %c1 == Q || %c1 == J || %c1 == 10) { 
    msg $chan Blackjack! 
    unset %bet 
    unset %1player
    /remini bj.ini player1
    /remini bj.ini dealer 

  }
  else if (%c1 != A && %c2 == A ) { msg $chan $nick has: %c1 $+ +A = $calc(1 + %c1) / $calc(11 + %c1) | writeini bj.ini player1 total $calc(11 + %c1) }
  else if (%c1 == A && %c2 != A ) { msg $chan $nick has: %c2 $+ +A = $calc(1 + %c2) / $calc(11 + %c2) | writeini bj.ini player1 total $calc(11 + %c2) }
  else if (%c1 != A && %c1 != Q && %c1 != K && %c1 != J) && (%c2 == K || %c2 == Q || %c2 == J) { msg $chan $nick has: %c1 $+ + $+ %c2 = $calc(%c1 + 10) | writeini bj.ini player1 total $calc(%c1 + 10) }
  else if (%c2 != A && %c2 != Q && %c2 != K && %c2 != J) && (%c1 == K || %c1 == Q || %c1 == J) { msg $chan $nick has: %c1 $+ + $+ %c2 = $calc(%c2 + 10) | writeini bj.ini player1 total $calc(%c2 + 10) }
  else if (%c2 == Q || %c2 == K || %c2 == J) && (%c1 == K || %c1 == Q || %c1 == J) { msg $chan $nick has: %c1 $+ + $+ %c2 = 20 | writeini bj.ini player1 total 20 }
  else { msg $chan $nick has: %c1 $+ + $+ %c2 = $calc(%c2 + %c1) | writeini bj.ini player1 total $calc(%c2 + %c1) }

  if (%bet == on) { 
    var %d1 = $readini(bj.ini, dealer, card1)
    msg $chan Dealer has: %d1 $+ +?  
  }
  if (%splitting == on) { msg $chan $nick you can split }
}
on *:text:!hit*:%bjchan: {
  var %bjcount = 1
  while (%bjcount <= %bjtop) {
    if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
      var %playing = on
    }
    %bjcount = $calc(%bjcount + 1)
  }
  if (%playing != on) { msg $chan $nick your not playing | halt }
  if (%bet != on) { msg $chan $nick you havn't made your bet yet | halt }
  if (%bj != on) { msg $chan The game isn't on | halt }
  if (%splitp == on) { 
    if (%hand == 1) { unset %double | /hand1 }
    else { unset %double | /hand2 }
  }
  else if (%1player == on) { /phit }
}
alias phit {
  unset %splitting 
  unset %double
  var %cunter = 1
  while (%cunter <= $readini(bj.ini, player1, cards)) {
    var %ptot = $readini(bj.ini, player1, card $+ %cunter)
    if (%ptot == A) { var %a = $calc(%a + 1) }
    if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
    var %ctotal = $calc(%ctotal + %ptot)
    %cunter = $calc(%cunter + 1)
  }
  if (%a) {
    if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
    else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
    else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
    else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
    else { %ctotal = $calc((%a * 1) + %ctotal) }
  }
  var %ncard = $rand(1,13)
  if (%ncard == 1) { %ptot = 11 }
  if (%ncard == 13 || %ncard == 12 || %ncard == 11) { %ptot = 10 }
  if (%ncard == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
  if (%ncard >= 2 && %ncard <= 10) { %ptot = %ncard } 
  %ctotal = $calc(%ptot + %ctotal)
  if (%ctotal <= 21) {
    writeini bj.ini player1 cards $calc($readini(bj.ini, player1, cards) + 1)
    if (%ncard == 1) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) A } 
    if (%ncard == 11) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) J } 
    if (%ncard == 12) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) Q } 
    if (%ncard == 13) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) K }
    if (%ncard >= 2 && %ncard <= 10) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) %ncard }
    /write -c temp.txt $readini(bj.ini, player1, card1) 
    %cunter = 2
    while (%cunter <= $readini(bj.ini, player1, cards)) {
      /write -al1 temp.txt + $+ $readini(bj.ini, player1, card $+ %cunter) 
      %cunter = $calc(%cunter + 1)
    }
    var %cards = $read(temp.txt, 1)
    /remove temp.txt
    msg $chan $nick has: %cards = %ctotal
    msg $chan Dealer has: $readini(bj.ini, dealer, card1) + ?
    writeini bj.ini player1 total %ctotal
  }
  else { msg $chan Sorry you went bust with %ctotal
    /remini bj.ini player1
    /remini bj.ini dealer 
    unset %bet %1player
  }
}
on *:text:!stand*:%bjchan: {
  var %bjcount = 1
  while (%bjcount <= %bjtop) {
    if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
      var %playing = on
    }
    %bjcount = $calc(%bjcount + 1)
  }
  if (%playing != on) { msg $chan $nick your not playing | halt }
  if (%bet != on) { msg $chan $nick you havn't made your bet yet | halt }
  if (%bj != on) { msg $chan The game isn't on | halt }
  if (%splitp == on) { 
    if (%hand == 1) { set %hand 2 | msg $chan Continue to hand 2, type !hit or !double }
    else { /stand }
  }
  else if (%1player == on) { /standp }
}
alias standp {
  unset %splitting 
  unset %double
  var %pcards = $readini(bj.ini, player1, total))
  var %cunter = 1
  var %ncards = 2
  while (%cunter <= %ncards) {
    var %ptot = $readini(bj.ini, dealer, card $+ %cunter)
    if (%ptot == A) { var %a = $calc(%a + 1) }
    if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
    var %ctotal = $calc(%ctotal + %ptot)
    %cunter = $calc(%cunter + 1)
  }
  if (%a) {
    if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
    else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
    else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
    else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
    else { %ctotal = $calc((%a * 1) + %ctotal) }
  }
  if (%ctotal = 17) { 
    :equal
    if (%pcards == 17) {
      msg $chan It's a draw, $readini(bj.ini, players, player1) gets their money back.
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
    else if (%pcards < 17) {
      msg $chan Dealer stands at 17 and wins
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
    else {
      msg $chan Dealer stands at 17 
      msg $chan $readini(bj.ini, players, player1) wins with %pcards
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
  }
  else if (%ctotal < 17) { 
    while (%ctotal <= 17) {
      var %new = $rand(1,13)
      if (%new == 1) { %ptot = 11 }
      if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
      if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
      if (%new >= 2 && %new <= 10) { %ptot = %new } 
      %ctotal = $calc(%ctotal + %ptot)
    }
    if (%ctotal != 17) && (%ctotal < %pcards || %ctotal != %pcards) {
      while (%ctotal <= %pcards) {
        var %new = $rand(1,13)
        if (%new == 1) { %ptot = 11 }
        if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
        if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
        if (%new >= 2 && %new <= 10) { %ptot = %new } 
        %ctotal = $calc(%ctotal + %ptot)
      }
    }
    if (%ctotal > 21) {
      msg $chan Dealer busts
      msg $chan $readini(bj.ini, players, player1) wins with %pcards
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
    else if (%ctotal == 17 && %ctotal > %pcards) {
      msg $chan Dealer stands and wins with %ctotal
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
    else if (%ctotal > %pcards && %ctotal <= 21) { 
      msg $chan Dealer wins with %ctotal
      /remini bj.ini player1
      /remini bj.ini dealer
      unset %bet %1player 
    }
  }
  else if (%ctotal < %pcards) {
    while (%ctotal <= 17) {
      var %new = $rand(1,13)
      if (%new == 1) { %ptot = 11 }
      if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
      if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
      if (%new >= 2 && %new <= 10) { %ptot = %new } 
      %ctotal = $calc(%ctotal + %ptot)
    }
    if (%ctotal != 17) && (%ctotal < %pcards || %ctotal != %pcards) {
      while (%ctotal <= %pcards) {
        var %new = $rand(1,13)
        if (%new == 1) { %ptot = 11 }
        if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
        if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
        if (%new >= 2 && %new <= 10) { %ptot = %new } 
        %ctotal = $calc(%ctotal + %ptot)
      }
    }
    if (%ctotal > 21) {
      msg $chan Dealer busts
      msg $chan $readini(bj.ini, players, player1) wins with %pcards
      /remini bj.ini player1
      /remini bj.ini dealer
      unset %bet %1player
    }
    else if (%ctotal == 17 && %ctotal > %pcards) {
      msg $chan Dealer stands and wins with %ctotal
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
    else if (%ctotal == 17 && %ctotal < %pcards) {
      msg $chan Dealer stands with 17 
      msg $chan $readini(bj.ini, players, player1) wins with %pcards
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
    else if (%ctotal > %pcards && %ctotal <= 21) { 
      msg $chan Dealer wins with %ctotal
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
    else {
      msg $chan It's a draw, $readini(bj.ini, players, player1) gets their money back.
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player
    }
  }
  else {
    msg $chan Dealer stands and wins with %ctotal
    /remini bj.ini player1
    /remini bj.ini dealer 
    unset %bet %1player
  }
}
on *:text:!double*:%bjchan: {
  var %bjcount = 1
  while (%bjcount <= %bjtop) {
    if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
      var %playing = on
    }
    %bjcount = $calc(%bjcount + 1)
  }
  if (%playing != on) { msg $chan $nick your not playing | halt }
  if (%bet != on) { msg $chan $nick you havn't made your bet yet | halt }
  if (%bj != on) { msg $chan The game isn't on | halt }
  if (%double != on) { msg $chan You can't double now | halt }
  if (%splitp == on) { 
    if (%hand == 1) { /hand1 }
    else { /hand2 }
  }
  else if (%1player == on) { /doublep }
}
alias doublep {
  unset %splitting
  var %cunter = 1
  while (%cunter <= $readini(bj.ini, player1, cards)) {
    var %ptot = $readini(bj.ini, player1, card $+ %cunter)
    if (%ptot == A) { var %a = $calc(%a + 1) }
    if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
    var %ctotal = $calc(%ctotal + %ptot)
    %cunter = $calc(%cunter + 1)
  }
  if (%a) {
    if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
    else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
    else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
    else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
    else { %ctotal = $calc((%a * 1) + %ctotal) }
  }
  var %ncard = $rand(1,13)
  if (%ncard == 1) { %ptot = 11 }
  if (%ncard == 13 || %ncard == 12 || %ncard == 11) { %ptot = 10 }
  if (%ncard == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
  if (%ncard >= 2 && %ncard <= 10) { %ptot = %ncard } 
  %ctotal = $calc(%ptot + %ctotal)
  if (%ctotal <= 21) {
    writeini bj.ini player1 cards $calc($readini(bj.ini, player1, cards) + 1)
    if (%ncard == 1) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) A } 
    if (%ncard == 11) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) J } 
    if (%ncard == 12) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) Q } 
    if (%ncard == 13) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) K }
    if (%ncard >= 2 && %ncard <= 10) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) %ncard }
    /write -c temp.txt $readini(bj.ini, player1, card1) 
    %cunter = 2
    while (%cunter <= $readini(bj.ini, player1, cards)) {
      /write -al1 temp.txt + $+ $readini(bj.ini, player1, card $+ %cunter) 
      %cunter = $calc(%cunter + 1)
    }
    var %cards = $read(temp.txt, 1)
    /remove temp.txt
    msg $chan $nick has: %cards = %ctotal
    writeini bj.ini player1 total %ctotal
    /standp
  }
  else { msg $chan Sorry you went bust 
    /remini bj.ini player1
    /remini bj.ini dealer 
    unset %bet %1player
  }
}
on *:text:!split*:%bjchan: {
  var %bjcount = 1
  while (%bjcount <= %bjtop) {
    if ($readini(bj.ini, players, player $+ %bjcount) == $nick) {
      var %playing = on
    }
    %bjcount = $calc(%bjcount + 1)
  }
  if (%playing != on) { msg $chan $nick your not playing | halt }
  if (%bet != on) { msg $chan $nick you havn't made your bet yet | halt }
  if (%bj != on) { msg $chan The game isn't on | halt }
  if (%splitting != on) { msg $chan $nick you can't split | halt } 
  if (%1player == on) { /splitp }
}
alias splitp {
  unset %splitting
  set %splitp on
  set %hand 1
  writeini bj.ini player1 cards 4
  var %c1 = $readini(bj.ini, player1, card1)
  var %c2 = $readini(bj.ini, player1, card2)
  var %c3 = $rand(1,13)
  if (%c3 == 1) { writeini bj.ini player1 card3 A } 
  if (%c3 == 11) { writeini bj.ini player1 card3 J } 
  if (%c3 == 12) { writeini bj.ini player1 card3 Q } 
  if (%c3 == 13) { writeini bj.ini player1 card3 K }
  if (%c3 >= 2 && %c3 <= 10) { writeini bj.ini player1 card3 %c3 }
  var %c4 = $rand(1,13)
  if (%c4 == 1) { writeini bj.ini player1 card4 A } 
  if (%c4 == 11) { writeini bj.ini player1 card4 J } 
  if (%c4 == 12) { writeini bj.ini player1 card4 Q } 
  if (%c4 == 13) { writeini bj.ini player1 card4 K }
  if (%c4 >= 2 && %c4 <= 10) { writeini bj.ini player1 card4 %c4 }
  var %c3 = $readini(bj.ini, player1, card3)
  var %c4 = $readini(bj.ini, player1, card4)
  if (%c1 == A && %c3 == A ) { msg $chan $nick has: A+A = 2/12 - I sugest splitting | writeini bj.ini player1 total1 12 }
  else if (%c1 == A && %c3 != A ) && (%c3 == K || %c3 == Q || %c3 == J || %c3 == 10) { 
    msg $chan Blackjack! 
    writeini bj.ini player1 total1 21
    set %hand 2
  }
  else if (%c1 != A && %c3 == A ) && (%c1 == K || %c1 == Q || %c1 == J || %c1 == 10) { 
    msg $chan Blackjack! 
    writeini bj.ini player1 total1 21
    set %hand 2
  }
  else if (%c1 != A && %c3 == A ) { msg $chan $nick has: %c1 $+ +A = $calc(1 + %c1) / $calc(11 + %c1) | writeini bj.ini player1 total1 $calc(11 + %c1) }
  else if (%c1 == A && %c3 != A ) { msg $chan $nick has: %c3 $+ +A = $calc(1 + %c3) / $calc(11 + %c3) | writeini bj.ini player1 total1 $calc(11 + %c3) }
  else if (%c1 != A && %c1 != Q && %c1 != K && %c1 != J) && (%c3 == K || %c3 == Q || %c3 == J) { msg $chan $nick has: %c1 $+ + $+ %c3 = $calc(%c1 + 10) | writeini bj.ini player1 total1 $calc(%c1 + 10) }
  else if (%c3 != A && %c3 != Q && %c3 != K && %c3 != J) && (%c1 == K || %c1 == Q || %c1 == J) { msg $chan $nick has: %c1 $+ + $+ %c3 = $calc(%c3 + 10) | writeini bj.ini player1 total1 $calc(%c3 + 10) }
  else if (%c3 == Q || %c3 == K || %c3 == J) && (%c1 == K || %c1 == Q || %c1 == J) { msg $chan $nick has: %c1 $+ + $+ %c3 = 20 | writeini bj.ini player1 total1 20 }
  else { msg $chan $nick has: %c1 $+ + $+ %c3 = $calc(%c3 + %c1) | writeini bj.ini player1 total1 $calc(%c3 + %c1) }
  if (%c2 == A && %c4 == A ) { msg $chan $nick has: A+A = 2/12 - I sugest splitting | writeini bj.ini player1 total2 12 }
  else if (%c2 == A && %c4 != A ) && (%c4 == K || %c4 == Q || %c4 == J || %c4 == 10) { 
    msg $chan Blackjack! 
    writeini bj.ini player1 total2 21
    if (%hand == 2) { set %hand 3 }
  }
  else if (%c2 != A && %c4 == A ) && (%c2 == K || %c2 == Q || %c2 == J || %c2 == 10) { 
    msg $chan Blackjack! 
    writeini bj.ini player1 total2 21
    if (%hand == 2) { set %hand 3 }
  }
  else if (%c2 != A && %c4 == A ) { msg $chan $nick has: %c2 $+ +A = $calc(1 + %c2) / $calc(11 + %c2) | writeini bj.ini player1 total2 $calc(11 + %c2) }
  else if (%c2 == A && %c4 != A ) { msg $chan $nick has: %c4 $+ +A = $calc(1 + %c4) / $calc(11 + %c4) | writeini bj.ini player1 total2 $calc(11 + %c4) }
  else if (%c2 != A && %c2 != Q && %c2 != K && %c2 != J) && (%c4 == K || %c4 == Q || %c4 == J) { msg $chan $nick has: %c2 $+ + $+ %c4 = $calc(%c2 + 10) | writeini bj.ini player1 total2 $calc(%c2 + 10) }
  else if (%c4 != A && %c4 != Q && %c4 != K && %c4 != J) && (%c2 == K || %c2 == Q || %c2 == J) { msg $chan $nick has: %c2 $+ + $+ %c4 = $calc(%c4 + 10) | writeini bj.ini player1 total2 $calc(%c4 + 10) }
  else if (%c4 == Q || %c4 == K || %c4 == J) && (%c2 == K || %c2 == Q || %c2 == J) { msg $chan $nick has: %c2 $+ + $+ %c4 = 20 | writeini bj.ini player1 total2 20 }
  else { msg $chan $nick has: %c2 $+ + $+ %c4 = $calc(%c4 + %c2) | writeini bj.ini player1 total2 $calc(%c4 + %c2) }
  if (%hand == 3) { 
    msg $chan you got Blackjack on both hands
    /remini bj.ini player1
    /remini bj.ini dealer 
    unset %bet %1player %hand %double %splitp
  }
  else {
    var %d1 = $readini(bj.ini, dealer, card1)
    msg $chan Dealer has: %d1 $+ +?  
  }
}
alias hand1 {
  unset %splitting 
  var %cunter = 1
  while (%cunter <= $readini(bj.ini, player1, cards)) {
    var %ptot = $readini(bj.ini, player1, card $+ %cunter)
    if (%ptot == A) { var %a = $calc(%a + 1) }
    if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
    var %ctotal = $calc(%ctotal + %ptot)
    %cunter = $calc(%cunter + 1)
    if (%cunter == 2 || %cunter == 4) { %cunter = $calc(%cunter + 1) } 
  }
  if (%a) {
    if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
    else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
    else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
    else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
    else { %ctotal = $calc((%a * 1) + %ctotal) }
  }
  var %ncard = $rand(1,13)
  if (%ncard == 1) { %ptot = 11 }
  if (%ncard == 13 || %ncard == 12 || %ncard == 11) { %ptot = 10 }
  if (%ncard == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
  if (%ncard >= 2 && %ncard <= 10) { %ptot = %ncard } 
  %ctotal = $calc(%ptot + %ctotal)
  writeini bj.ini player1 cards $calc($readini(bj.ini, player1, cards) + 1)
  writeini bj.ini player1 hand1cards $readini(bj.ini, player1, cards)
  if (%ncard == 1) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) A } 
  if (%ncard == 11) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) J } 
  if (%ncard == 12) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) Q } 
  if (%ncard == 13) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) K }
  if (%ncard >= 2 && %ncard <= 10) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) %ncard }
  if (%ctotal <= 21) {
    /write -c temp.txt $readini(bj.ini, player1, card1) 
    %cunter = 3
    while (%cunter <= $readini(bj.ini, player1, cards)) {
      /write -al1 temp.txt + $+ $readini(bj.ini, player1, card $+ %cunter) 
      %cunter = $calc(%cunter + 1)
      if (%cunter == 4) { %cunter = $calc(%cunter + 1) } 
    }
    var %cards = $read(temp.txt, 1)
    /remove temp.txt
    msg $chan Hand 1 - $nick has: %cards = %ctotal
    writeini bj.ini player1 total1 %ctotal
    if (%double == on) { 
      set %hand 2 
      msg $chan Continue to hand 2, type !hit or !double 
    }
  }
  else { msg $chan Sorry you went bust with hand 1: %ctotal
    msg $chan Continue to hand 2, type !hit or !double
    writeini bj.ini player1 total1 %ctotal
    set %hand 2
    set %double on
  }
}
alias hand2 {
  var %cunter = 2
  while (%cunter <= $readini(bj.ini, player1, cards)) {
    var %ptot = $readini(bj.ini, player1, card $+ %cunter)
    if (%ptot == A) { var %a = $calc(%a + 1) }
    if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
    var %ctotal = $calc(%ctotal + %ptot)
    %cunter = $calc(%cunter + 1)
    if (%cunter == 3) { %cunter = $calc(%cunter + 1) } 
    if (%cunter > 4 && %cunter == $readini(bj.ini, player1, hand1cards)) { %cunter = $calc($readini(bj.ini, player1, hand1cards) + 1) } 
  }
  if (%a) {
    if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
    else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
    else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
    else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
    else { %ctotal = $calc((%a * 1) + %ctotal) }
  }
  var %ncard = $rand(1,13)
  if (%ncard == 1) { %ptot = 11 }
  if (%ncard == 13 || %ncard == 12 || %ncard == 11) { %ptot = 10 }
  if (%ncard == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
  if (%ncard >= 2 && %ncard <= 10) { %ptot = %ncard } 
  %ctotal = $calc(%ptot + %ctotal)
  writeini bj.ini player1 cards $calc($readini(bj.ini, player1, cards) + 1)
  if (%ncard == 1) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) A } 
  if (%ncard == 11) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) J } 
  if (%ncard == 12) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) Q } 
  if (%ncard == 13) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) K }
  if (%ncard >= 2 && %ncard <= 10) { writeini bj.ini player1 card $+ $readini(bj.ini, player1, cards) %ncard }
  if (%ctotal <= 21) {
    /write -c temp.txt $readini(bj.ini, player1, card2) 
    %cunter = 4
    while (%cunter <= $readini(bj.ini, player1, cards)) {
      /write -al1 temp.txt + $+ $readini(bj.ini, player1, card $+ %cunter) 
      %cunter = $calc(%cunter + 1)
      if (%cunter > 4 && %cunter == $readini(bj.ini, player1, hand1cards)) { %cunter = $calc($readini(bj.ini, player1, hand1cards) + 1) }
    }
    var %cards = $read(temp.txt, 1)
    /remove temp.txt
    msg $chan Hand 2 - $nick has: %cards = %ctotal
    writeini bj.ini player1 total2 %ctotal
    if (%double == on) { 
      /stand 
    }
  }
  else { msg $chan Sorry you went bust with hand 2: %ctotal
    writeini bj.ini player1 total2 %ctotal
    /stand 
  }
}
alias stand {
  unset %splitting 
  unset %double
  var %hand1 = $readini(bj.ini, player1, total1)
  var %hand2 = $readini(bj.ini, player1, total2)
  if (%hand1 > 21 && %hand2 > 21) {
    msg $chan $readini(bj.ini, players, player1) bust with both hands so dealer wins!
    /remini bj.ini player1
    /remini bj.ini dealer 
    unset %bet %1player %hand %splitp
  }
  else {
    if (%hand1 >= %hand2 && %hand1 <= 21) { var %pcards = %hand1 }
    else { var %pcards = %hand2 } 
    var %cunter = 1
    var %ncards = 2
    while (%cunter <= %ncards) {
      var %ptot = $readini(bj.ini, dealer, card $+ %cunter)
      if (%ptot == A) { var %a = $calc(%a + 1) }
      if (%ptot == K || %ptot == Q || %ptot == J) { %ptot = 10 }
      var %ctotal = $calc(%ctotal + %ptot)
      %cunter = $calc(%cunter + 1)
    }
    if (%a) {
      if (%a = 1 && %ctotal <= 10) { %ctotal = $calc(%total + 11) }
      else if (%a > 1 && %a < 3 && %ctotal == 0) { %ctotal = 12 }
      else if (%a > 1 && %a < 3 && %ctotal <= 9) { %ctotal = $calc(%total + 12) }
      else if (%a > 2) && ($calc(11 + (%a - 1) * 1)) + %ctotal) <= 21) { %ctotal = $calc(11 + (%a - 1) * 1)) + %ctotal) }
      else { %ctotal = $calc((%a * 1) + %ctotal) }
    }
    if (%ctotal = 17) { 
      if (%pcards == 17) {
        if (%hand1 == %hand2) {
          msg $chan It's a draw on both hands, $readini(bj.ini, players, player1) gets their money back.
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
        else { 
          msg $chan $readini(bj.ini, players, player1) it's a draw on 1 hand but a loss on the other, hand1: %hand1 , hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
      }
      else if (%pcards < 17) {
        msg $chan Dealer stands at 17 and wins on both hands
        /remini bj.ini player1
        /remini bj.ini dealer 
        unset %bet %1player %splitp
      }
      else if (%ctotal < %ptotal) {
        if (%hand1 > %ctotal && %hand1 <= 21 && %hand2 > %ctotal && %hand2 <= 21) {
          msg $chan Dealer stands at 17 
          msg $chan $readini(bj.ini, players, player1) wins on both hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
        else {
          msg $chan Dealer stands at 17 
          msg $chan $readini(bj.ini, players, player1) wins with one hand but not the other hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
      }
    }
    else if (%ctotal < 17) && (%hand1 < 22 || %hand2 < 22) { 
      while (%ctotal <= 17) {
        var %new = $rand(1,13)
        if (%new == 1) { %ptot = 11 }
        if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
        if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
        if (%new >= 2 && %new <= 10) { %ptot = %new } 
        %ctotal = $calc(%ctotal + %ptot)
      }
      if (%ctotal != 17) && (%ctotal < %pcards || %ctotal != %pcards) {
        while (%ctotal <= %pcards) {
          var %new = $rand(1,13)
          if (%new == 1) { %ptot = 11 }
          if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
          if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
          if (%new >= 2 && %new <= 10) { %ptot = %new } 
          %ctotal = $calc(%ctotal + %ptot)
        }
      }
      if (%ctotal > 21) {
        if (%hand1 < 22 && %hand2 < 22) {
          msg $chan Dealer busts
          msg $chan $readini(bj.ini, players, player1) wins with both hands - hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
        else {
          msg $chan Dealer busts
          msg $chan $readini(bj.ini, players, player1) wins with one hand and loses with the other - hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
      }
      else if (%ctotal == 17 && %ctotal > %pcards) {
        msg $chan Dealer stands and wins over both hands with %ctotal
        /remini bj.ini player1
        /remini bj.ini dealer 
        unset %bet %1player %splitp
      }
      else if (%ctotal == 17 && %ctotal < %pcards) {
        if (%hand1 > %ctotal && %hand1 < 22 && %hand2 > %ctotal && %hand2 < 22) {
          msg $chan Dealer stands at 17 
          msg $chan $readini(bj.ini, players, player1) wins hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
        else {
          msg $chan Dealer stands at 17 
          msg $chan $readini(bj.ini, players, player1) wins with one hand but not the other hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
      }
      else if (%ctotal > %pcards && %ctotal <= 21) { 
        msg $chan Dealer wins over both hands with %ctotal
        /remini bj.ini player1
        /remini bj.ini dealer
        unset %bet %1player %splitp
      }
    }
    else if (%ctotal < %pcards) {
      while (%ctotal <= 17) {
        var %new = $rand(1,13)
        if (%new == 1) { %ptot = 11 }
        if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
        if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
        if (%new >= 2 && %new <= 10) { %ptot = %new } 
        %ctotal = $calc(%ctotal + %ptot)
      }
      if (%ctotal != 17) && (%ctotal < %pcards || %ctotal != %pcards) {
        while (%ctotal <= %pcards) {
          var %new = $rand(1,13)
          if (%new == 1) { %ptot = 11 }
          if (%new == 13 || %new == 12 || %new == 11) { %ptot = 10 }
          if (%new == 1 && $calc(%ptot + %ctotal) > 21) { %ptot = 1 }
          if (%new >= 2 && %new <= 10) { %ptot = %new } 
          %ctotal = $calc(%ctotal + %ptot)
        }
      }
      if (%ctotal > 21) {
        if (%hand1 < 22 && %hand2 < 22) {
          msg $chan Dealer busts
          msg $chan $readini(bj.ini, players, player1) wins with both hands - hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
        else {
          msg $chan Dealer busts
          msg $chan $readini(bj.ini, players, player1) wins with one hand and loses with the other - hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
      }
      else if (%ctotal == 17 && %ctotal > %pcards) {
        msg $chan Dealer stands and wins over both hands with %ctotal
        /remini bj.ini player1
        /remini bj.ini dealer 
        unset %bet %1player %splitp
      }
      else if (%ctotal == 17 && %ctotal < %pcards) {
        if (%hand1 > %ctotal && %hand1 < 22 && %hand2 > %ctotal && %hand2 < 22) {
          msg $chan Dealer stands at 17 
          msg $chan $readini(bj.ini, players, player1) wins with both hands - hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
        else {
          msg $chan Dealer stands at 17 
          msg $chan $readini(bj.ini, players, player1) wins with one hand but not the other hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
      }
      else if (%ctotal > %pcards && %ctotal <= 21) { 
        msg $chan Dealer wins over both hands with %ctotal
        /remini bj.ini player1
        /remini bj.ini dealer 
        unset %bet %1player %splitp
      }
      else {
        if (%hand1 == %ctotal && %hand2 == %ctotal) {
          msg $chan Dealer stands at %ctotal
          msg $chan It's a draw, $readini(bj.ini, players, player1) gets their money back. on both hands!
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
        else {
          msg $chan Dealer stands at %ctotal
          msg $chan It's a draw on one hand but a loss on the other, hand1: %hand1 hand2: %hand2
          /remini bj.ini player1
          /remini bj.ini dealer 
          unset %bet %1player %splitp
        }
      }
    }
    else {
      msg $chan Dealer stands and wins over both hands with %ctotal
      /remini bj.ini player1
      /remini bj.ini dealer 
      unset %bet %1player %splitp
    }
  }
  unset %hand 
}

Comments

Sign in to comment.
Jonesy44   -  Sep 08, 2010

"%cunter" that made me laugh :| oops shouldnt have missed that "o" ;)

 Respond  
AlexRapso   -  Sep 08, 2010

Have you tried it? it does work, just not finished! :)

 Respond  
Grant-   -  Sep 07, 2010

Your snippet will be deleted if you break any of the following rules:

* Snippet needs to be tested and functional.
* Introduction must describe what the snippet does and how it is used.
* At least 25% of the code must be written by you.
* If you used somebody else's snippet you must include a URL to the original.
* You may not post an updated snippet separately, you need to edit your first post. 

o.. dats what you see before posting a snippet

 Respond  
AlexRapso   -  Sep 07, 2010

"(not myself, I have my own project)"

I had better things to do aswell reason for giving up. There is a lot of source code to work with so shouldn't be too hard to finish it.

 Respond  
Lucius   -  Sep 07, 2010

I give it a 2 because it's incomplete, but I like it overall. the option to double up is one thing that few people can be bothered to script in... yourself included through giving up. LOL
but the double up option is something that really should be in all blackjack scripts, I'll look forward to seeing someone complete this one (not myself, I have my own project)

win for the attempt.
fail for the quit.

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.