麻雀のアガり判定
https://gyazo.com/7372f74fabe28f969d6039dd01b98bb7.png
Unicode文字を使うべきか🀇🀈🀉🀊🀋🀌🀍🀎🀏
七対子対応してたっけ?
code:haipai.js
images = [
]
function report(machi){
$('body').append($('<p>'))
if(machi == null){
$('body').append($('<span>').css('font-size','60pt').text("天和!"))
}
else {
total = 0
for(var i=0;i<9;i++){
nokori = 0
$('body').append($('<img>').attr('src',imagesi)) $('body').append('<span>' + " を切れば " + '</span>')
for(var j=0;j<machii.length;j++){ nokori += (4 - a[machiij]) $('body').append($('<img>').attr('src',images[machiij])) }
$('body').append($('<span>').text(" 待ち "))
$('body').append($('<span>').text(" (残り"+nokori+"枚)"))
$('body').append($('<p>'))
}
}
if(total == 0){
$('body').append($('<span>').text("何を切っても聴牌ならずorz"))
}
}
}
function haipai(){
$('body').children().remove()
var pieces = []
for(i=0;i<9;i++){
for(j=0;j<4;j++){
pieces.push(i)
}
}
for(i=0;i<36;i++){ // ランダムに並べかえ
j = Math.floor(Math.random() * (36-i)) + i
}
pieces = pieces.slice(0,14).sort(); // 14枚取得
$('body').children().remove()
for(i=0;i<14;i++){
$('body').append($('<img>').attr('src',images[piecesi])) }
return pieces
}
function display(event){ // クリックされると呼ばれる
if(event) event.preventDefault()
if(typeof(show_report) == 'undefined') show_report = false
if(show_report){ // 解析結果を追加表示
report(machi);
show_report = false
}
else { // ランダムな配牌を表示
pieces = haipai()
machi = check(pieces); // 牌nを切ったときの待ち牌がmachinに入る show_report = true
}
}
function chitoi(){
for(var i=0;i<9;i++){
if(ai != 0 && ai != 2) return false }
return true
}
function check(pieces){
for(var i=0;i<14;i++){
}
if(agari()){ // 既にアガっている
return null
}
else { // いずれかの牌を別のに取り替えたときアガりになるかをチェック
machi = []
for(var i=0;i<9;i++){
for(var j=0;j<9;j++){
if(agari()){
}
}
}
}
}
}
return machi
}
function agari(){
var total = 0
for(var i=0;i<9;i++) total += ai if(total != 14) return false
if(chitoi()) return true
for(var atama=0;atama<9;atama++){ // 頭をはずす
res = agari2()
if(res) return true
}
}
return false
}
function agari2(){
var i = 0
for(i=0;i<a.length;i++){
}
if(i == a.length) return true
res = agari2()
if(res) return true
}
if(i+2 <= 8 && ai > 0 && ai+1 > 0 && ai+2 > 0){ // 順子チェック res = agari2()
if(res) return true
}
return false
}
function setup(){
$(document).on('mousedown', display)
display()
}