블랙잭/script.js: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
백괴게임>Riemann
잔글편집 요약 없음
백괴게임>Riemann
잔글편집 요약 없음
6번째 줄: 6번째 줄:
{{#vardefine:name|p21}}
{{#vardefine:name|p21}}
{{#vardefine:creat|Riemann}}
{{#vardefine:creat|Riemann}}
{{#vardefine:version|0.77.76}}
{{#vardefine:version|0.780}}
{{#vardefine:descript|블랙잭}}
{{#vardefine:descript|블랙잭}}
{{#vardefine:local|true}}
{{#vardefine:local|true}}
26번째 줄: 26번째 줄:
}
}
$("#deal").click(function(){
$("#deal").click(function(){
    console.log("init");
    console.log(guestD);
    console.log(score);
     $("#console").text("새 판을 엽니다.")
     $("#console").text("새 판을 엽니다.")
     $("#deal").css("display", "none");
     $("#deal").css("display", "none");
50번째 줄: 53번째 줄:
         $("#stand").css("display", "inline-flex");
         $("#stand").css("display", "inline-flex");
         $("#hit").click(function(){
         $("#hit").click(function(){
             $("#hit").css("display", "none");
             console.log("hit");
             $("#stand").css("display", "none");
             console.log(guestD);
            guestD.push(cardPop());
             hit(dealerD, guestD);
             var guestDeq = "";
            for (i = 0; i < guestD.length; i++) {
                guestDeq += hexToChar(guestD[i]);
            }
            $("#guestDeck").text(guestDeq);
            var guestScore = [];
            var score = 0;
            for (i = 0; i < guestD.length; i++) {
                guestScore.push(pointData[hexToStr(guestD[i])]);
                score += guestScore[i];
            }
            $("#guestS").text(score);
            if (score > 21) {
                bust();
            } else if (score == 21 || (score == 11 && guestScore.includes(1))) {
                $("#console").append("<br/>21점이므로 자동으로 스탠드를 외쳤습니다.")
                stand(dealerD,guestD);
            } else {
                $("#hit").css("display", "inline-flex");
                $("#stand").css("display", "inline-flex");
            }
         });
         });
         $("#stand").click(function(){
         $("#stand").click(function(){
            $("#hit").css("display", "none");
            $("#stand").css("display", "none");
             stand(dealerD, guestD);
             stand(dealerD, guestD);
         });
         });
     }
     }
     function bust() {
     function hit(dd, gd) {
        $("#console").append("<br/>버스트! 유감입니다.")
         $("#hit").css("display", "none");
         $("#hit").css("display", "none");
         $("#stand").css("display", "none");
         $("#stand").css("display", "none");
         lose()
         gd.push(cardPop());
        var guestDeq = "";
        for (i = 0; i < gd.length; i++) {
            guestDeq += hexToChar(gd[i]);
        }
        $("#guestDeck").text(guestDeq);
        var guestScore = [];
        var score = 0;
        for (i = 0; i < gd.length; i++) {
            guestScore.push(pointData[hexToStr(gd[i])]);
            score += guestScore[i];
        }
        $("#guestS").text(score);
        if (score == 21 || (score == 11 && guestScore.includes(1))) {
            $("#console").text("21점이므로 자동으로 스탠드를 외쳤습니다.")
            stand(dd,gd);
        } else if (score > 21) {
            bust();
        } else  {
            $("#hit").css("display", "inline-flex");
            $("#stand").css("display", "inline-flex");
        }
     }
     }
     function jack() {
     function stand(ddd, gdd) {
         $("#console").append("<br/>블랙잭 달성! 축하합니다.")
         $("#hit").css("display", "none");
         win()
         $("#stand").css("display", "none");
    }
    function stand(dealerD, guestD) {
         var dScore = 0;
         var dScore = 0;
         var dealerScore = []
         var dealerScore = []
         for (i = 0; i < dealerD.length; i++) {
         for (i = 0; i < ddd.length; i++) {
             dealerScore.push(pointData[hexToStr(dealerD[i])]);
             dealerScore.push(pointData[hexToStr(ddd[i])]);
             dScore += dealerScore[i];
             dScore += dealerScore[i];
         }
         }
         while (dScore < 17) {
         while (dScore < 17) {
             dealerD.push(cardPop());
             ddd.push(cardPop());
             $("#console").append("<br/>딜러가 카드를 뽑았습니다.")
             $("#console").text("br/>딜러가 카드를 뽑았습니다.")
            var dealerDeq = "";
             dealerScore = [];
             dealerScore = [];
             dScore = 0;
             dScore = 0;
             for (i = 0; i < dealerD.length; i++) {
             for (i = 0; i < ddd.length; i++) {
                 dealerScore.push(pointData[hexToStr(dealerD[i])]);
                 dealerScore.push(pointData[hexToStr(ddd[i])]);
                 dScore += dealerScore[i];
                 dScore += dealerScore[i];
                 dealerDeq += hexToChar(dealerD[i]);
                 dealerDeq += hexToChar(ddd[i]);
             }
             }
         }
         }
        var dealerDeq = "";
        for (i = 0; i < ddd.length; i++) {
                dealerDeq += hexToChar(ddd[i]);
            }
         $("#dealerS").text(dScore);
         $("#dealerS").text(dScore);
         $("#dealerDeck").text(dealerDeq);
         $("#dealerDeck").text(dealerDeq);
         guestScore = [];
         guestScore = [];
         score = 0;
         score = 0;
         for (i = 0; i < guestD.length; i++) {
         for (i = 0; i < gdd.length; i++) {
             guestScore.push(pointData[hexToStr(guestD[i])]);
             guestScore.push(pointData[hexToStr(gdd[i])]);
             score += guestScore[i];
             score += guestScore[i];
         }
         }
         $("#guestS").text(score);
         $("#guestS").text(score);
         if (dScore > 21) {
         console.log(score);
        if (score > 21) {
            bust()
        } else if (dScore > 21) {
             win()
             win()
        } else if (score > 21) {
            bust()
         } else {
         } else {
             compare(dealerD,guestD);
             compare(ddd,gdd);
         }
         }
     }
     }
     function compare(dealerD, guestD) {
     function compare(d, g) {
         var dealerScore = [];
         var dealerScore = [];
         var dScore = 0;
         var dScore = 0;
         for (i = 0; i < dealerD.length; i++) {
         for (i = 0; i < d.length; i++) {
             dealerScore.push(pointData[hexToStr(dealerD[i])]);
             dealerScore.push(pointData[hexToStr(d[i])]);
             dScore += dealerScore[i];
             dScore += dealerScore[i];
         }
         }
         var guestScore = [];
         var guestScore = [];
         var score = 0;
         var score = 0;
         for (i = 0; i < guestD.length; i++) {
         for (i = 0; i < g.length; i++) {
             guestScore.push(pointData[hexToStr(guestD[i])]);
             guestScore.push(pointData[hexToStr(g[i])]);
             score += guestScore[i];
             score += guestScore[i];
         }
         }
157번째 줄: 159번째 줄:
     }
     }
     function win() {
     function win() {
         $("#console").append("<br/>축하합니다! 이겼습니다.")
         $("#console").text("축하합니다! 이겼습니다.")
         $("#deal").css("display", "inline-flex");
         $("#deal").css("display", "inline-flex");
     }
     }
     function lose() {
     function lose() {
         $("#console").append("<br/>졌습니다...")
         $("#console").text("졌습니다...")
         $("#deal").css("display", "inline-flex");
         $("#deal").css("display", "inline-flex");
     }
     }
     function push() {
     function push() {
         $("#console").append("<br/>비겼습니다.")
         $("#console").text("비겼습니다.")
        $("#deal").css("display", "inline-flex");
    }
    function bust() {
        $("#console").text("버스트! 유감입니다. 졌습니다...")
        $("#hit").css("display", "none");
        $("#stand").css("display", "none");
        $("#deal").css("display", "inline-flex");
    }
    function jack() {
        $("#console").text("블랙잭 달성! 축하합니다. 이겼습니다!")
         $("#deal").css("display", "inline-flex");
         $("#deal").css("display", "inline-flex");
     }
     }
   
});
});
function cardPop() {
function cardPop() {

2018년 2월 5일 (월) 23:22 판

요령 => 아래 변수들의 첫번째 인자들을 내용에 맞게 자르고 붙여넣어주세요

!!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 윗부분은 만지지 마시오 절대로!!!!!!!!!!!!!!!!!






!!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!!

		 
const pcLst = [
0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAD,0xAE,
0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBD,0xBE,
0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCD,0xCE,
0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDD,0xDE];
const pointData = {a1:1,a2:2,a3:3,a4:4,a5:5,a6:6,a7:7,a8:8,a9:9,aa:10,ab:10,ad:10,ae:10,b1:1,b2:2,b3:3,b4:4,b5:5,b6:6,b7:7,b8:8,b9:9,ba:10,bb:10,bd:10,be:10,c1:1,c2:2,c3:3,c4:4,c5:5,c6:6,c7:7,c8:8,c9:9,ca:10,cb:10,cd:10,ce:10,d1:1,d2:2,d3:3,d4:4,d5:5,d6:6,d7:7,d8:8,d9:9,da:10,db:10,dd:10,de:10};
function hexToChar(x) {
    return String.fromCharCode(0xD83C) +String.fromCharCode(x + 0xDC00);
}
function hexToStr(x) {
    return x.toString(16);
}
$("#deal").click(function(){
    console.log("init");
    console.log(guestD);
    console.log(score);
    $("#console").text("새 판을 엽니다.")
    $("#deal").css("display", "none");
    $("#dealerDeck").text("");
    $("#guestDeck").text("");
    pcSet = pcLst;
    var dealerD = [];
    var guestD = [];
    dealerD.push(cardPop());
    guestD.push(cardPop());
    dealerD.push(cardPop());
    guestD.push(cardPop());
    $("#dealerDeck").text(hexToChar(dealerD[0]) + "\u{1F0A0}");
    $("#dealerS").text("?");
    $("#guestDeck").text(hexToChar(guestD[0]) + hexToChar(guestD[1]));
    var guestScore = [];
    var score = pointData[hexToStr(guestD[0])] + pointData[hexToStr(guestD[1])];
    $("#guestS").text(score);
    if ((pointData[hexToStr(guestD[0])] == 1 && pointData[hexToStr(guestD[1])] == 10) || (pointData[hexToStr(guestD[0])] == 10 && pointData[hexToStr(guestD[1])] == 1)) {
        $("#guestS").text(21);
        jack();
    } else {
        $("#hit").css("display", "inline-flex");
        $("#stand").css("display", "inline-flex");
        $("#hit").click(function(){
            console.log("hit");
            console.log(guestD);
            hit(dealerD, guestD);
        });
        $("#stand").click(function(){
            stand(dealerD, guestD);
        });
    }
    function hit(dd, gd) {
        $("#hit").css("display", "none");
        $("#stand").css("display", "none");
        gd.push(cardPop());
        var guestDeq = "";
        for (i = 0; i < gd.length; i++) {
            guestDeq += hexToChar(gd[i]);
        }
        $("#guestDeck").text(guestDeq);
        var guestScore = [];
        var score = 0;
        for (i = 0; i < gd.length; i++) {
            guestScore.push(pointData[hexToStr(gd[i])]);
            score += guestScore[i];
        }
        $("#guestS").text(score);
        if (score == 21 || (score == 11 && guestScore.includes(1))) {
            $("#console").text("21점이므로 자동으로 스탠드를 외쳤습니다.")
            stand(dd,gd);
        } else if (score > 21) {
            bust();
        } else  {
            $("#hit").css("display", "inline-flex");
            $("#stand").css("display", "inline-flex");
        }
    }
    function stand(ddd, gdd) {
        $("#hit").css("display", "none");
        $("#stand").css("display", "none");
        var dScore = 0;
        var dealerScore = []
        for (i = 0; i < ddd.length; i++) {
            dealerScore.push(pointData[hexToStr(ddd[i])]);
            dScore += dealerScore[i];
        }
        while (dScore < 17) {
            ddd.push(cardPop());
            $("#console").text("br/>딜러가 카드를 뽑았습니다.")
            dealerScore = [];
            dScore = 0;
            for (i = 0; i < ddd.length; i++) {
                dealerScore.push(pointData[hexToStr(ddd[i])]);
                dScore += dealerScore[i];
                dealerDeq += hexToChar(ddd[i]);
            }
        }
        var dealerDeq = "";
        for (i = 0; i < ddd.length; i++) {
                dealerDeq += hexToChar(ddd[i]);
            }
        $("#dealerS").text(dScore);
        $("#dealerDeck").text(dealerDeq);
        guestScore = [];
        score = 0;
        for (i = 0; i < gdd.length; i++) {
            guestScore.push(pointData[hexToStr(gdd[i])]);
            score += guestScore[i];
        }
        $("#guestS").text(score);
        console.log(score);
        if (score > 21) {
            bust()
        } else if (dScore > 21) {
            win()
        } else {
            compare(ddd,gdd);
        }
    }
    function compare(d, g) {
        var dealerScore = [];
        var dScore = 0;
        for (i = 0; i < d.length; i++) {
            dealerScore.push(pointData[hexToStr(d[i])]);
            dScore += dealerScore[i];
        }
        var guestScore = [];
        var score = 0;
        for (i = 0; i < g.length; i++) {
            guestScore.push(pointData[hexToStr(g[i])]);
            score += guestScore[i];
        }
        if (dScore < 12 && dealerScore.includes(1)) {
            dScore += 10
        }
        if (score < 12 && guestScore.includes(1)) {
            score += 10
        }
        $("#dealerS").text(dScore);
        $("#guestS").text(score);
        if (dScore > score) {
            lose()
        } else if (dScore == score) {
            push()
        } else {
            win()
        }
    }
    function win() {
        $("#console").text("축하합니다! 이겼습니다.")
        $("#deal").css("display", "inline-flex");
    }
    function lose() {
        $("#console").text("졌습니다...")
        $("#deal").css("display", "inline-flex");
    }
    function push() {
        $("#console").text("비겼습니다.")
        $("#deal").css("display", "inline-flex");
    }
    function bust() {
        $("#console").text("버스트! 유감입니다. 졌습니다...")
        $("#hit").css("display", "none");
        $("#stand").css("display", "none");
        $("#deal").css("display", "inline-flex");
    }
    function jack() {
        $("#console").text("블랙잭 달성! 축하합니다. 이겼습니다!")
        $("#deal").css("display", "inline-flex");
    }
});
function cardPop() {
    var j, ret;
    j = Math.floor(Math.random() * pcSet.length);
    ret = pcSet[j];
    pcSet.splice(j,1);
    return ret;
}