麻雀 Ver. 11.0 for FX-602P

 FX-602P用の麻雀です。もちろん通常の麻雀とは少しルールが違いますが、FX-602Pの性能を生かして作った、限界に迫る作品です!!よろしければ入力して遊んでみてください。(^^)

※本プログラムはFreewareです。動作に責任は持ちません。(^^;
※本プログラムは雑誌PiO(工学社) 1986年9月号に掲載された拙作「麻雀」Ver 9.1を大幅にバージョンアップしたものです。本バージョンはVer 11.0 (2001/02/09)です(→旧バージョンとの違いについてはこちら)。旧バージョンはこちら(Ver 10.9Ver 10.8Ver 10.7Ver 10.6)です。

(C) 1986-2001, K. Miyahara

概要

 FX-602Pと対戦する二人麻雀です。FX-602Pも一切インチキせず、それなりに賢く打ちます。バージョンアップで、FX-602Pも以前より遥かに強くなりましたので、どうぞご期待ください。それでは、役満を目指して頑張ってください。

おおまかなルール
  • 手牌は8枚で、1枚ツモって9枚で3面子の形にして和了します。
  • 牌の種類は1〜9で、同じ牌はいくつでもあります。
  • 役はピンフ、タンヤオ、イーペイコー、ドラ、イッツウ、チャンタ、トイトイ、New! 3レンコウ,テンホー、チンロウトウ(役満),イッショク(役満)の全部で11種類です。(役一覧)
    #役の追加ももう限界かも。(^^;
  • 以下はルールにありません
  • リーチ
  • チー、ポン、カン
  • 流局 (どちらかが和了するまで、その局が続きます。)
  • フリテン (さあ、高目を狙って、レッツチャレンジ!)
  • チョンボ (親切設計?)
  • 一翻縛り (役が無くたって、いいじゃない?)
  • ダブル役満
  • 遊び方

     統計記録をクリアするため、一番最初に実行するときだけ、RunモードでINV SACINV MACを押してください。また、実行の際は、必ずDEGGRAにしてください。RADにすると、FX-602Pの打ち方がおかしくなります。(^^; P0を押すと、しばらくしてあなたの配牌が表示されます。

     22333568

     次に、ドラと持ち点が表示されます。

      ■2■   0

     ここでは、2がドラであることを示しています(ドラは現物)。また、右側の00は持ち点0を表します。最初はFX-602Pが親なので、FX-602Pが1枚ツモります(※すみません、プログラムの都合により、現在のバージョンでは最初の親はあなたになります)。次局以降は最後に和了した方が親になります。運が悪いと、何もしないうちに和了されることもありますが、そうでなければ、10秒ほどしてFX-602Pの捨牌が表示されます。

            9

     もし、FX-602Pの捨牌で和了するならば、この時に0を入力してください(和了ではないのに0を押した場合は、単に無視されます)。和了でなければ、今度はあなたのツモ番です。ドラと点数の表示の後、次のように1枚ツモった状態の手牌が表示されます。

    223335678

     和了の場合は、0 EXEもしくはそのままEXEを押してください。そうでない場合には、捨牌を選びます。捨牌の数字を入れて、EXEを押してください。後は、これの繰り返しです。

     もし、どちらかが和了した場合には、

        Ron 8

    または

      Tsumo 8

    と表示され、和了した手牌が表示されます。あなたが和了した場合には、あなたの和了形が表示された後、FX-602Pが自分の手牌を見せてくれます。(^^;

     その後、
      Iipeiko

    などと役が表示された後、点数が表示されます。点数の計算は次のようになっています。

    点数=16×(基礎点)×(役係数)

    (基礎点)=50+10×(刻子の数)

    合計翻数と役係数
    合計翻数役係数
    11
    16
    22
    29
    37


    役の種類
    役の名前翻数説明
    ピンフすべて順子で、両面待ち
    タンヤオ1、9を含まない
    イーペイコー同じ面子(順子、刻子)がある
    ドラドラを1枚以上含む (2枚以上あっても翻数は増えない←インフレ防止のため)
    イッツウ123456789の形
    チャンタすべての面子に1か9を含む
    トイトイすべてが刻子
    3レンコウ3つ連続した刻子で構成される(※必ずトイトイと複合する) New!
    テンホー親が配牌で和了するか、親の第一捨牌で子が和了
    チンロウトウ(役満)1と9のみ (他の役も表示はされますが、複合しません) 
    イッショク(役満)同じ数字×9 (他の役も表示はされますが、複合しません)


    点数早見表
    合計翻数すべて順子1刻子2刻子3刻子
    8009601120(1280)
    160019202240(2560)
    3200384044805120
    5600672078408960
    8800105601232014080
    12800153601792020480
    17600211202464028160
    23200(27840)(32480)37120
    (29600)(35520)(41440)47360


     点数が表示された後は、しばらく次のように表示されます。

       800/1

    左の数字はトータルの点数、右の数字は局数です。また、しばらくすると、次のように表示が切り替わります。

     Ave 800

    これは、1局あたりの平均点数です。これがマイナスということは、FX-602Pに負けているということなので、プラスになるよう頑張ってください。(^^) 参考までに、私は100局打ってAve 460でしたが、うまい人ならもっといくでしょう。続けてもう一局打つ場合には、P0と入力してください。もし、統計内容をクリアしたいときには、INV SACと押してください。

    和了形について

     いわゆる111222333のような形は、順子にも刻子にもとれますが、常に刻子としてトイトイ・3レンコウの形で判断されます。これは,順子形では最高でピンフ・チャンタ・イイペイコウで同じ4翻になりますが,刻子の方が基礎点が高くなるためです。

     なお、役満を和了した方、和了されてしまった方(笑)は、ぜひメールでお知らせください。役満和了者の殿堂に入れさせていただきます。バグ報告、ゲームの感想などもこちらへどうぞ。

    プログラムリスト

    ※入力時の注意
    プログラム
    (ステップ数)
    内容
    P9
    (5 steps)
    Min1F RAN# MR1F GSBP9
    P8
    (11 steps)
    ÷ MRF 10^x = FRAC × 10 = INT
    P7
    (26 steps)
    Min06 AC Min00 Min1F LBL0 MR06 x=0 GOTO9 log INT 10^x M-06 log × MR00 ISZ 10^x M+1F = M+1F GOTO0 LBL9 " AR1F "
    P6
    (10 steps)
    1 Min12 RAN# × 9 = INT M+12 10^x
    P5
    (7 steps)
    MR02 GSBP8 ÷ 3 = FRAC
    P4
    (3 steps)
    GSBP9 ISZ
    P3
    (192 steps)
    x=F "Toitoi" x=F GSBP9 x=F 2 Min00 MRF X←→M06 x>=F GOTO6 "Chanta" GSBP4 ISZ LBL6 2 x>=F GOTO7 MR12 X←→MF x=F x=0 MR10 GSBP8 Min04 7 x=F x=0 2 M+F MR10 GSBP8 M+04 MR04 x=0 GOTO7 "Pinfu" GSBP4 LBL7 1 MinF MR15 x=F "Tenho" x=F GSBP4 x=F ISZ IND MR05 Min10 × 3 = RND2 log FRAC x=0 "3renko" x=0 GSBP4 x=0 ISZ MR10 GSBP8 Min04 8 M+F M-06 MR10 GSBP8 M+04 MR04 x=F GOTO5 x=0 "Tanyao" x=0 GSBP4 MR10 × 9 = RND8 log FRAC x=0 "Ittsu" x=0 GSBP4 x=0 ISZ MR18 MinF MR17 x=F MR19 x=F GOTO5 MR17 x=F x=0 MR19 x=F "Iipeiko" x=F GSBP4 MR14 MinF MR10 GSBP8 x=0 GOTO3 "Dora" GSBP4 GOTO3 LBL5 8 Min00 "*YAKUMAN*" GSBP9 LBL3
    P2
    (34 steps)
    4 Min1F MR19 ABS log INT M-1F 10^x Min00 M-19 M-19 M-19 MR19 x>=0 GOTO9 1 M+F M+1F MR00 M+10 M+00 × 1.89 = M+19 LBL9 MR1F ABS M-06 MR00
    P1
    (16 steps)
    IND MR05 Min19 AC MinF Min10 11 Min06 GSBP2 Min17 GSBP2 Min18 GSBP2 X←→M19
    P0
    (206 steps)
    AC Min01 Min02 Min13 Min15 8 Min00 LBL0 GSBP6 M+01 GSBP6 M+02 DSZ GOTO0 MR01 GSBP7 GSBP6 MR12 Min14 LBL0 1 MinF X←→M05 x=F M+05 MR13 IND M+05 MR05 1/x INT x=F MR13 x>=F " AR12 " x>=F PAUSE x>=F PAUSE x=0 GSBP1 x=0 "Ron□ AR12 " x=0 GOTO3 MR13 IND M-05 GSBP6 IND M+05 1 M+15 LBL7 "■ AR14 ■□ AR08" IND GOTO5 GSBP1 x=0 GOTO5 AC MinF 9 Min17 LBL8 GSBP5 Min18 2 M+18 M+F GSBP5 M+18 1 M-F GSBP5 x=0 GOTO9 × 6 = M-18 MR18 x=0 x=F 3 M+18 MRF - 5 = ABS sin M-18 MR17 M-18 MR18 x>=0 GOTO9 MR18 M+17 MRF Min04 LBL9 8 x>=F GOTO8 GOTO4 LBL1 MR01 GSBP7 HLT Min04 x=0 GSBP1 x=0 GOTO5 MR04 MinF MR01 GSBP8 x=0 GOTO7 LBL4 MR04 Min12 - 1 = 10^x IND M-05 Min13 GOTO0 LBL5 "Tsumo□ AR12 " LBL3 IND MR05 GSBP7 MR02 GSBP7 GSBP1 GSBP3 MR00 + x^2 + 2 = × 80 × MR06 × ( 3 X←→M05 M-05 - MR05 = XD "#" GSBP9 " AR08 / AR09 " GSBP9 GSBP9 x~ INT "Ave□#"
    total 510 steps


    変数表
    メモリ 用途
    MR00汎用、役の数
    MR01〜02手牌
    MR04汎用
    MR05手番プレイヤー(1=人間,2=FX-602P)
    MR06手札の選択(1〜4)
    MR07〜09スコアの統計用
    MR10順子形判定
    MR12ツモ牌、捨て牌
    MR13ツモ牌、捨て牌(指数表現)
    MR14ドラ
    MR15
    MR17〜19面子、コンピュータ思考用
    MRF比較用
    MR1Fxレジスタ保存用


    counter

    [ HomePage | FX-602Pのページ ]

    PED00725@nifty.ne.jp, ey5k-myhr@asahi-net.or.jp
    Last modified 2001/02/09