
V~[^ MJSim

ڎ
́H
dl
݂̊J
s@
AI̍쐬@
\[Xɂ
zzt@C̓e
J
m̃oO
XV


́H
AIJAAIm玎킹\tgB
AÍAǂł邠ȂĂB
`̃OĉŁA̐lAIƏAvłB

C/C++B
̌iCꂩĂяoDLL쐬ł́jłł邩B

dl
E[͓1[Bz[y[W http://mj.giganet.net/
EDLLőΐ҂B
E݊̃OoivĐAv\̂߁jB

݂̊J
܂ʖڂȂƂ邪Â̂Ƃ͂łB
cĎ̂ĂAAオē_vZAŏIʌvZAvo͂ȂǁB

s@
킩Ȃꍇ́AJXbhǂ񂾂莿₵ĂB

------
@MJSim.exe쐬B
  MJSim.exẽvWFNgiR\[AvP[Vj쐬A
  MJSimtH_ׂ̂Ẵt@CǉB

ARpCB

BMJSimAI.DLL쐬BJXbhŌJĂDLL_E[hB
  MJSimAI.DLL̃vWFNgiDLLvWFNgj쐬A
  MJSimAItH_ׂ̂Ẵt@CǉB

CRpCB

DMJSimAI.DLLRs[4ɂB
  O15oCg܂ŁB
  MJSimAI.DLLAMJSimAI1.DLLAMJSimAI2.DLL`ȂǁB
EAI̓o^B
  MJSim.ini[AI]ZNVDLLLqB

---s---
FMJSim.exesB
  [sɕKvȃt@C]
  EMJSim.exe
  EMJSim.ini
  EDLLiAIj4iDLL𖼑OςăRs[4ɂĂǂj
  𓯈̃tH_ɒuƁB
  imɂ́AMJSim.exe̓tpXŋN΂ǂłA
  DLL4MJSim.ini͍ƃtH_ɑ݂Kvj

GsƁA
  1...
  2.....ƕ\B
  ͎Bu.vЂƂ1ǁB

HVtgL[ƏIB

IʂB
  MJSimScore.txtƂt@CBōĐłB
  vc[́AMJStatAFAłȂǁB

AI̍쐬@
킩Ȃꍇ́AJXbhǂ񂾂莿₵ĂB

DLL̃vWFNgāAMJSimAItH_̃TvR[hǉĂB
ڍׂ̓TvR[hAwb_t@CQƂĂB

ȒPȐ
@MJSim.hCN[hB
  #include "../MJSim/MJSim.h"

AAIInterfaceVersionAIAction֐B
  CꂩĂяo`ō쐬ĂB
  iRpC̃}jAŊmFĂj

C^[tF[X֐dl
  Eint AIInterfaceVersion()
  [߂l]
  ݂1ԂĂB

  Evoid AIAction(int Msg, int Index, MJTAKU *Taku)
  []
  Msg   ĂяoꂽRBMJMSG_???nB
  Index ǂɍĂ邩B0:NƁ`B
        ́AMJTAKU\̂́AǂPlayer\̂̎Ȃ̂m̂ɕKvB
  Taku  MJTAKU\̂ւ̃|C^B
        ̏񂪂ׂēĂB

Ep`
Q:AIv̂ĂAオAȂǂ̎ẃAǂ̂B
A:Taku->Player[Index].Action\̂Ŏw肷B

Q:Taku->Player[Index].ActionȊO̕Ă܂ȂB
A:OKB֐̖߂莞Ɍ̂ƂłKv͖B

Q:MJSim.exe̊֐ĂяoƂ͂łȂB
A:MJTAKU\̂̏găANV߂ĂB

Q:Ăяo鏇́H
A:̂悤ɌĂяoB
  @Jn MJMSG_GAMESTART
  AǊJn MJMSG_KYOKUSTART
  BvcƂ(V܂) MJMSG_TSUMO
  CNv̂ĂƂ MJMSG_REACTION
  @ǒ͇B`CJԂB
  @ȂΈꏇŁAc1AANV4񂪑B
  DMJMSG_KYOKUEND,
  @͇A`DJԂB
  EMJMSG_GAMEEND,
@  MJSim쒆͇@`EJԂB

Q:擾B
A:\ϐ͖̂ŁAʒuƋǐvZĂB

Q:ANVɁAƂ̍Ō̃ANV擾B
A:Taku->Player[Taku->Trun].Action.Type擾B
  uTaku->TrunṽCfNX̃vC[Ōɉ炩̃ANVvC[B

Q:`Ĵ́H
A:NJƂAANVbZ[WB̂ƂA
  @Taku->Player[Taku->Trun].Action.TypeŌ̃ANV擾āA
    MJACTION_KAKAN(J)A
  ATaku->Player[Taku->Trun].Action.HosokuɃJvĂ̂ŁA
    ꂪオvȂAłB

Q:ANVɁAƂ̍Ō̎̂Ĕv擾B
A:c؂Ŗꍇ́ATaku->Player[Taku->Trun].Action.SutehaiB
  0͂Ă鎞̓c؂ŁȀꍇ͉͂擾B
  ͂́Av̂ĂĂȂƂ낪0ɂȂĂ̂ŁA0̒O̔vŌ̔vB

[ӓ_]
EDLLvC[ɂȂB

EAI͂ނ̂͂܂B 
  ƂAI0`AI3܂ŁASDLLw肷ƁA4l̃bZ[WĂ܂B
  1̊ԂɃc4AANV16B 
  O[oϐLĂ܂B 
  [Ώ@]
  DLLRs[ĖOςB 
  MJSimAI1.dllAMJSimAI2.dllEEEƂB 

EDLLinit@ĆAƃtH_iJgfBNgjɂȂƂ߁B 
  VC̃fobKgƂƂA ݒōƃtH_AvWFNĝtH_ɂȂĂƁA 
  DLL͖߁iDLLdebugƂɂjAǂݍ߂ɗ̂ŒӁB 

EAIsȃANVw肵Ƃ̓
  BꍇɂĂ̓`{ɂȂAsȓɂȂB
  EcオA냍`{ɂȂ
  EĂȂv̂ĂAÃJc؂ɒ
  E[`Ac؂AAÃJȊOc؂ɒ
  E|A`[A떾JȂɒ
  EÃJAJÃANVׂĖ
  EĴƂ̃ȊOׂĖ
  E|A`[̎̂ĔvŃc؂w聨ԍ̔v؂

EAIInterfaceVersion֐ɂ
  VC^[tF[X`ꂽƂɁAȑÕC^[tF[XAI
  (\[X̏CăRpC)Ɏgpł悤ɂ邽߂̂́B
  Ⴆ΁An\(MJTAKU)ɐVϐǉꂽƂ̏ꍇA
  o[W2`Bo[W12AIőΐ\ɂB
  Aǂ炩sɂȂĂ܂ꍇȂǂ͑ΐłȂB  

\[Xɂ
ꕔ̃\[XÃ\tg痬pĂ܂B
---------------------------------------------------
p\[Xt@C
Def.hAHantei.hAHantei.cppAMahjong.hAMahjong.cpp

𔻒 Ver.033
ҁFNao
giga@mycom.ne.jp
http://isweb11.infoseek.co.jp/computer/giga/
---------------------------------------------------

LȊÕ\[XɂĂ͎RɂĂB
ӔC͕܂B

zzt@C̓e
[MJSim]tH_
EMJSim.ini   ݒt@CTv
EMJSim.cpp   MJSim{
EMJSim.h     AIpwb_
EStdAfx.cpp
EStdAfx.h
EDef.h       𔻒NX
EHantei.h
EHantei.cpp
EMahjong.h
EMahjong.cpp
[MJSimAI]tH_
EMJSimAI.cpp  AITvic؂̂݁j
EStdAfx.cpp
EStdAfx.h
[SampleAI]tH_
EMJSinAI_v0.0.4.cpp >>283얃AIB[`ďオB܂ɖB
                     MJSimAI.cppƎւĎgB

J
2˂ vOXbh
u܂ŋ̖vOĂ݂IIv
http://pc2.2ch.net/test/read.cgi/tech/1048299493/

m̃oO
ɂقǗDB
A(ً})

B()
E[`̑҂̕ςÃJĂ`{ɂȂȂB
Ecオ肵Ƃ̓_vZmłȂB
EΎq̎A25ɂȂĂȂ 
EVaAna̔肪Ȃ 
Eɍ킹ȂAv̖𖼂iAꕗAAAjɕق 

C(ۗ)

D()

XV
0.5.4
EANVɁAŌ̃ANVԈĂ邱ƂB

0.5.3
EÃJAJAvȂ邱Ƃ̂CB
E`Jł悤ɂB
Etecオ肷ƃ`{ɂȂ̂CB
E`{̎AOɃ`{̓eo悤ɂB
  E𖳂`{
  Ete`{(te)
  Em[e[``{(m[e[`)

0.5.2
EAIwANV𖳎邱Ƃ̂CB

0.5.1
Ete`{ɂȂȂ̂CB
Em[e[`ɗǂĂ`{ɂȂȂ̂CB
Eĥ݂łオĂ܂̂`{ɂȂ悤ɏCB
Eǎ̎Ύqƍm̃epC`FbN̂CBE͂ΒlŎĂȂƂ낪̂CB
E͂ΒlŎĂȂƂ낪̂CB

0.5.0
EAIInterfaceVersion֐Ăяo悤ɂB
  AIɊ֐̒ǉ肢܂B
  Ƃ肠֐Ă~܂Ȃ悤ɂĂ܂B
E2ڂɃ[`Ă_u[`ɂȂ̂CB
E^I肳ȂȂĂ̂CB

0.4.4
EWvc[ułvœǂ߂悤ɃOCB

0.4.3
Eh̔肪܂̂CB
EJAvĉOɕ\Ȃ̂CB
E[`Ac؂ȊOł̂CB
E`{̂Ƃɓ_Ȃ̂CB
EnCeCȂ̂CB
EJAcĂȂ̂CB
E_u[`Ȃ̂CB
EOŁAǊJñ[`_ԈĂ̂CB

0.4.2
Eh̔肪̂CB
Eh̖𖼂\Ȃ̂CB
Evʂ͒ǉĂ邪𖼂\Ȃ̂CB

0.4.1
E`[̌ÂĔv̂CB
E|A`[̎̂ĔvŃc؂̎wꂽꍇAԍ̔v؂悤ɂB
ÊĂꂽvgȂĂ`[ł̂CB

0.4.0
EMJTAKU\̂ύXB
@EYamaTsumop~
@EDoraRestTsumoNumǉ
@[]
@LϐgāAhƎcc擾Ăꍇ͏C肢܂B
@LϐgĂȂꍇłDLLRpCȂKv܂B
ETakuDisp͂Bgpꍇ͏CKvB
E[`ĂĂ`{ɂȂ̂CB
E>>283MJSinAI_v0.0.4.cpp𓯍ifobOɎgĂ̂ŁjB

0.3.2
EƏオƃ`{ɂȂ̂CB
Eh肳ĂȂ̂CB
EHf0ʂɂBHf݂̂ł͏オȂB
EO4ʂȂ̂O2+v2ɂB
EÃJƖʑOłȂȂ̂CB

0.3.1
EAIɗ]vȃf[^nȂ悤ɂB
  iȐAƂ̎v͎QƂĂӖ̖f[^j
EThfX悤ɂB
  i4ǈȍ~ł30000_𒴂vC[ȂƂ͑sj
EAł悤ɂB
  iALɂȂĂȂBQ[IȂ̂h߁B
  AĂقꍇCMJSim::Game()̃R[hLɂĂj
E𖼂CBtuAtu
Eu{сvuсvƕ\Ă̂CB 
EΎq܂肳Ȃ̂CB 
EÔƂvȂ̂CB

0.3.0
EMJGAME\̖̂OMJTAKUɕύXB
  iC[W\̂łƂƂ킩₷O̕A
  ǂƍl߁j
ETehaiz̑傫4647ɂB
  iTehai[46]ɂ͏0邱ƂŁAԕƂĎg悤ɂ邽߁j
EKawaz̑傫13724ɂB
  iӖȂ傫B24́A6v~4񕪁j
E>>302AI𓯍B

0.2.0
EAI̕sȓ͂悤ɂB
  cオA`{
  ĂȂv̂ĂAÃJc؂
  |A`[AJȂ
EANVłȂ̂CB
Em[eƂ悤ɂB
ER}hCɑ\
  iMJSim::Kyoku()̃R[hLɂꍇɕ\jB>>284
E>>294AI𓯍B
Ȇ낢CB

0.1.1
E[`OɏoĂȂ̂CB
Eʂ̓_vZԈĂ̂CB
EAI֓nMJGAME\̂ARs[Ăn悤ɂB
E>>283AI𓯍B

0.1.0
EAIDLLō쐬ł悤ɂB
