Advertisement
SuperMonkey

BlackJack

Jul 13th, 2014
707
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Haxe 2.60 KB | None | 0 0
  1. //# haxe -main BlackJack.hx -swf blackjack.swf
  2.  
  3. import flash.text.TextField;
  4. import flash.events.*;
  5.  
  6. class BlackJack extends TextField{
  7.     var cartes_tirees:List<String>;
  8.     var pts :TextField;
  9.     public var scroll:Int;
  10.  
  11.     public function new() {
  12.         super();
  13.         pts = new TextField();
  14.         cartes_tirees = new List<String>();
  15.  
  16.         text = "Cliquez sur moi pour tirer une carte";
  17.         width = 300;
  18.         flash.Lib.current.addChild(this);
  19.  
  20.         scroll = 30;
  21.  
  22.         pts.x = 200;
  23.         flash.Lib.current.addChild(pts);
  24.     }
  25.  
  26.     public function write(txt:String) {
  27.         var tf = new TextField();
  28.         tf.text = txt;
  29.         tf.y = scroll;
  30.         tf.width = 1000;
  31.         flash.Lib.current.addChild(tf);
  32.         scroll += 10;
  33.     }
  34.  
  35.     public function rand_carte() {
  36.         var carte:String;
  37.         var val = Std.random(13)+1;
  38.         switch (val) {
  39.             case 11 : carte = "Valet";
  40.             case 12 : carte = "Dame";
  41.             case 13 : carte = "Roi";
  42.             default : carte = ""+val;
  43.         }
  44.  
  45.         var couls:Array<String> = ["Trefle", "Carreau", "Coeur", "Pique"];
  46.         var out = carte + " de " + couls[Std.int(Std.random(couls.length))];
  47.  
  48.         if(Lambda.indexOf(cartes_tirees, out) == -1) {
  49.             cartes_tirees.push(out);
  50.             return out;
  51.         }
  52.  
  53.         return rand_carte();
  54.     }
  55.  
  56.     public function rand_jeu() {
  57.         var persons = ["Yannick", "Aymeric", "Guillaume", "Ben#1", "Ben#2", "Matthieu", "Aurélie"];
  58.         var p = persons[Std.random(7)];
  59.         var jeu = new List<String>();
  60.         do {
  61.             jeu.push(rand_carte());
  62.         } while(eval_game(jeu) <= 15);
  63.         write(p + Std.string(jeu) + " ("+eval_game(jeu)+ " pts)");
  64.         return eval_game(jeu);
  65.     }
  66.  
  67.     public static function carte_val(str) {
  68.         var val = Std.parseInt(str);
  69.         if(val != null) return val;
  70.         return 11;
  71.     }
  72.  
  73.     public function setPts(_pts:Int) {
  74.         pts.text = "Pts : "+_pts;
  75.     }
  76.  
  77.     public static function eval_game(cartes:List<String>) {
  78.         var asc = 0, val = 0, v:Int;
  79.         for(carte in cartes) {
  80.             v = carte_val(carte);
  81.             if(v == 1) {
  82.                 asc++;
  83.             }
  84.             val += v;
  85.         }
  86.  
  87.         if(val > 21) return val;
  88.         if(asc > 0) {
  89.             if(val +10 <= 21) {
  90.                 val += 10;
  91.             }
  92.         }
  93.  
  94.         return val;
  95.     }
  96.  
  97.     public static function main() {
  98.         var bj = new BlackJack();
  99.         var jeu = new List<String>();
  100.         var pts = 0;
  101.  
  102.         var scores = new List<Int>();
  103.         for(i in 0...3) {
  104.             scores.push(bj.rand_jeu());
  105.         }
  106.  
  107.         bj.scroll += 10;
  108.  
  109.         bj.addEventListener(MouseEvent.CLICK, function(e) {
  110.             var carte = bj.rand_carte();
  111.             jeu.push(carte);
  112.             pts = eval_game(jeu);
  113.             bj.write(carte);
  114.             bj.setPts(pts);
  115.  
  116.             if(pts > 21) {
  117.                 bj.write("Perdu!");
  118.             } else {
  119.                 for(i in scores) {
  120.                     if(pts < i && i <= 21) {
  121.                         return;
  122.                     }
  123.                 }
  124.                 bj.write("Gagné!");
  125.             }
  126.         });
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement