この麻雀の問題、あなたはプログラミングできますか?史上最大のコーディングスキル判定
1 :
ろう石(アラバマ州):
あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定
4月4日10時15分配信 ITmedia エンタープライズ
(途中略)
●あなたのコーディングスキルを丸裸に!
以上のような内容を背景に、今回、ITmediaでは、岡嶋氏に再度出題を依頼。後で紹介
している問題を提供いただきました。今回の問題は、ソフトウェアのことを知らない人
でも、何をする問題であるかは分かるような内容となっており、また、人材獲得作戦の
問題で指摘されていた、「事前の知識だけですべて決まる」という批判を交わすような
設問となっています。
制限時間は3時間、プログラム言語・OSは自由です。もしあなたがプログラマーやSEで
あれば、この問題にぜひ挑戦いただければと思います。回答に要する時間の計測は、読者
の方のモラルで行っていただきたいと思います。なお、問題のレベルについては、「人材
獲得作戦で用いたものより難しい」(岡嶋氏)とのことです。
問題挑戦の準備をしていただくため、問題は次ページで公開しています。回答の準備を
済ませてから先にお進みください。
●問題
麻雀の手牌が入力として与えられたとき、「待ち」を出力するプログラムを書いてください。
・字牌なし・萬子のみの想定、つまり、いわゆる「チンイツ」限定で結構です(プログラ
ミングの本質的にはこの限定でまったく問題ないため)
・1〜9の数字13個からなる文字列を受け取り、できている順子・刻子・アタマを()、待ち
の部分を[]でくくって出力してください
・面前かつ槓子は存在しない前提でOKです
・()[]の出力順は自由ですが、順序だけが違うものは同一視してください(例:111222を
刻子2つで構成するとき、(111)(222)が(222)(111)に入れ替わるだけのものは同一解答とします)
・多面待ちのときも含めすべての待ちを出力してください
・待ちがないときは何も出力しないでください
(以下ソース)
http://headlines.yahoo.co.jp/hl?a=20100404-00000003-zdn_ep-sci
2 :
浮子(愛媛県):2010/04/04(日) 14:01:10.90 ID:fDAMMas6
何言ってるのかぜんぜんわからないです
3 :
ろう石(茨城県):2010/04/04(日) 14:01:13.79 ID:0CA+1Kz7
茨城様に任せろ
4 :
ろう石(千葉県):2010/04/04(日) 14:01:25.21 ID:wlclw4Hb BE:16748922-PLT(12345)
そもそも麻雀が分からない
5 :
ろう石(東京都):2010/04/04(日) 14:01:31.32 ID:WmPgNZUG
プログラミングは分かるけど麻雀のルールと用語が分からん
6 :
ろう石(石川県):2010/04/04(日) 14:03:03.97 ID:vrzqj+o/
|:.:.:.:.:.:.:.:.:.__:.:.:.:.:.:.:.:.:.:.:.:.:.:.ヽ:.∧
ヽィ´ ̄ト{::( ̄ ̄`丶、:.:.:.::|:.:.:∧
(:{二斗、` ̄ > 、 ',:.:.:.:!:.:.:.:.∧
イ( ノヽ ゞ゙ノ 下芍ミ ヽ:.:|:.:.:.:.:.:.:l はぁぁああああいいい!!!
ヾ::Y r 、 ` ̄,イ ハ:|:.:.:.:./
`l ヾ≧x___ ____,.ミ:::ゝ彡イ:.:/ /
| }ー──| ̄ `ー孑ァ)´ /
、 トr'´ ̄ / , ̄/ /
r┐ '. L≧彡′ /{≦ィ /
r‐v' / 、___ イ ト彡'′ /
r‐「ヽ〉´ { /} / __」 -───- 、 _/
_ヽ」ノ 」、ィ/ / /.:/:::::::::::::::::::::: ̄ ̄_」
ヽ( /:::/∧ { -‐ァ'´:/:::::::::::::::::::::::::::´:::/ } /
\l {::::://:::::\__/:.:./::::::::::::::::::::::::::::::::/ // /
`Y≦/::::::::::::::__/__/:::::::::::::::::::::::::::::::/ >'′ ノ
/__/ー─‐〃 ̄`ヽ}:::::::::::::::::::::::::::::/ / /
{__フ:.:.:.:.:.:.:.{`ー=≦/::::::::::::::::::::::::::::/ / /
|:.|:.:.:.:.:.:.:.:./`ーイ::::::::::::::::::::::::::::::::| { /
7 :
ろう石(青森県):2010/04/04(日) 14:03:11.85 ID:eXF9N1Nu
ジャンラインを作った会社は許さない
8 :
焜炉(catv?):2010/04/04(日) 14:04:39.05 ID:/8XElUCP
できるんだろうけど、麻雀がわからない。
せめてトランプにしてくれ
9 :
羽根ペン(群馬県):2010/04/04(日) 14:04:45.39 ID:TmzF7fBC
麻雀がわからないようならプログラミングなんかできないって事?
ドンジャラで言い直してくれ
11 :
墨(東京都):2010/04/04(日) 14:07:31.57 ID:Qc4P4Rgm
チンイツ限定だと待ちが異常に増えるじゃん
どれがアタマになるかによって待ちも違うし
12 :
画板(東京都):2010/04/04(日) 14:10:25.91 ID:+xERXY2d
麻雀良く分からんから設問の意味が分からない。
「萬子」とか「槓子」とかこんな字知らないし。
13 :
レポート用紙(長屋):2010/04/04(日) 14:11:45.26 ID:rrfVPX5s
未だにチンイツになりそうだと「マジかよ・・・」って思考が止まる
14 :
鉤(石川県):2010/04/04(日) 14:12:13.75 ID:rlHixwM4
こうしてルール無用の麻雀ゲームが量産されるのであった。
問題出してる奴の頭が悪すぎて、話にならないw
これだからソフト屋はアレだって言われるんだよ
16 :
墨(東日本):2010/04/04(日) 14:13:04.42 ID:NDxNF2HH
>>1 なにこれ、仕様があやふやすぎる。
プログラムの目的もわかるようでわからない。
こんな奴と一緒に仕事したくない
18 :
ろう石(アラバマ州):2010/04/04(日) 14:14:25.72 ID:2KD3D51j BE:1168549373-PLT(12001)
せっかくだから解答出せた人に先着でポイント上げちゃおうかな
>>1 なにこれ、仕様があやふやすぎる。
プログラムの目的もわかるようでわからない。
こんな奴と一緒に仕事したくない
20 :
滑車(神奈川県):2010/04/04(日) 14:15:29.95 ID:TCfkdqpA
少なくとも、これを書いたやつは相当なアホ。
社会性に欠如した自称SE/PMにありがちなオナニーの塊。
21 :
墨(アラバマ州):2010/04/04(日) 14:16:18.76 ID:yLjHaLLI
三時間もあれば余裕だろ
とりあえず動くものレベルであれば
22 :
レポート用紙(群馬県):2010/04/04(日) 14:16:38.02 ID:GEyGtiZb
23 :
羽根ペン(関東・甲信越):2010/04/04(日) 14:18:05.62 ID:G4jWmkjV
もっと汎用性のある例題にしろよ
麻雀のルールから調べるのか
24 :
ざる(三重県):2010/04/04(日) 14:18:41.80 ID:5jCAtp3J
こんな問題考えたやつは相当アフォだろ。
もう少しましな例題つくれないの?
なんで麻雀なんだよ。
用語の意味やルール自体しらねーわ。
25 :
飯盒(福岡県):2010/04/04(日) 14:19:11.69 ID:jSnA81Jj
>>17 うるさい!クライアント様が望んでいるんだ
ウダウダ言ってるとまた特別室に閉じ込めるぞ!
26 :
烏口(関東・甲信越):2010/04/04(日) 14:19:37.95 ID:IjMYE64z
麻雀わからない奴のために書いてみた。
・トランプと違い、麻雀では全く同じ牌が4枚ずつある。
・今回の問題で使うのは1〜9の9種類×4枚で合計36の牌。
・14枚で4組の「メンツ」と1組の「アタマ」をつくる。
・「メンツ」は3枚1組、「アタマ」は2枚1組
・「メンツ」には同じ牌を3つ揃える「コーツ」と、トランプのストレートのように連番を並べる「シュンツ」がある。
・「シュンツ」について、9と1は連続しない。
・手持ちは13枚で、1枚貰っては1枚捨てる、を繰り返す。1枚貰うことを「ツモ」という。
・ツモで14枚になった時、綺麗に4つの「メンツ」と1つの「アタマ」があれば「アガリ」。
・あと1枚で「アガリ」ができる状態を「テンパイ」といい、最後の1枚を「待ち」という。
・例外的な「アガリ」として「チートイツ」がある。2枚×7組の組み合わせなので、必然的に待ちは1種類になる。
・「チートイツ」を作る際に、同じ組み合わせが2つ出来てはいけない。
例えば
1122334455661
と持っていて、「1」を「ツモ」しても「アガリ」にはならない。1の組み合わせが2組になるから。
27 :
インク(関東・甲信越):2010/04/04(日) 14:19:51.92 ID:5VqDyJ58
28 :
墨(東京都):2010/04/04(日) 14:20:02.14 ID:Qc4P4Rgm
だよな、麻雀のルールから知らない人が多くなってる時代にこれは無いよな。
牌がそれぞれ4枚ずつしかない、とかちゃんと書いとけよ。
29 :
ろう石(静岡県):2010/04/04(日) 14:20:39.91 ID:B3jpKEhk
最近天鳳始めてフリーとニュー速両方行ってるけどフリーの平均順位2.18、ニュー速は2.52、
何だかんだでニュー速レベル高いと思うわ。
30 :
コンニャク(富山県):2010/04/04(日) 14:21:08.30 ID:U/PUF2tL
お、また麻雀スレ立ったな
URL貼ってくれ
31 :
墨(アラバマ州):2010/04/04(日) 14:22:42.96 ID:yLjHaLLI
よく見たら仕様では七対子に関しては何も言及してないんだな
何この糞SE
32 :
ろう石(東京都):2010/04/04(日) 14:24:46.90 ID:BV1gOA1r
ずいぶんと回りくどい前置きしたわりには
麻雀知らないとどうにもならないってのは設問として片手落ちじゃないのか?
33 :
落とし蓋(アラバマ州):2010/04/04(日) 14:25:06.22 ID:Rbdssmuw
/i
/ i
/ i
/ i
. ,-‐' ` 、
/ 茨城 ヽ
キリッ ,' ___ ',
/ ィ=rュ ゝソ r:::..ヾi
/ ..:: / :rュ、/
ヽ, / / <ユニバーサルメルカトル図法
/i _..__/ 、 ,'ノ
/ i ゙、⌒゙^; /
/_ \  ̄ ./
/i.:::: `ー 、\ _.:::...._ / スゲエ! マジカヨ カッコヨスギ
__,-"/ /:::::... `ヽ`ー‐"ノヽ \ / \ / \ /
i / ̄ ヽ
ユニーバサルメルカトル速報
http://tsushima.2ch.net/news/
34 :
ろう石(東京都):2010/04/04(日) 14:26:08.94 ID:BV1gOA1r
こういう問題が通ると思ってる時点でダメな奴って判断になってしまうんだがw
35 :
烏口(関東・甲信越):2010/04/04(日) 14:27:41.35 ID:IjMYE64z
麻雀知らない奴のために。
たとえば1122334456789と持っていたら、
待ちは1,4,7の3種になる。
1を持ってきたら「11」「123」「234」「456」「789」で1つのアタマと4つのメンツができる。
4なら「11」「234」「234」「456」「789」
7なら「11」「234」「234」「567」「789」
ってな感じ。
36 :
偏光フィルター(青森県):2010/04/04(日) 14:28:19.18 ID:TwrGA/xk
まず何やればいいのかがわからない。
37 :
コンニャク(富山県):2010/04/04(日) 14:28:47.18 ID:U/PUF2tL
>麻雀を知らない人は、順子・刻子・アタマ・待ちといった
>用語の意味だけ調べてから解答に取りかかってください。
>これを調べる時間は計算外とします。
>なお、この問題は本記事の公開前に、3名の方に回答いただきました。
>それぞれ、中学生、高校生、大学生です。当初、設問のミスなどもあり、テストが通らなかったと
>いうアクシデントもありましたが、いずれも時間内に回答を終えています。
>また、最短の回答者は40分程度であったこともお伝えしておきます。
どんだけー
38 :
飯盒(福岡県):2010/04/04(日) 14:30:13.83 ID:jSnA81Jj
39 :
墨(東日本):2010/04/04(日) 14:30:18.84 ID:NDxNF2HH
>>1 >「九蓮宝燈」という役です。1〜9すべてが待ちになっています。これに正しく答えが出るのであれば、プログラムはほぼ正しいでしょう。
>・麻雀を知らない人は、順子・刻子・アタマ・待ちといった用語の意味だけ調べてから解答に取りかかってください。これを調べる時間は計算外とします。
>なお、この問題は本記事の公開前に、3名の方に回答いただきました。それぞれ、中学生、高校生、大学生です。
>当初、設問のミスなどもあり、テストが通らなかったというアクシデントもありましたが、いずれも時間内に回答を終えています。
>また、最短の回答者は40分程度であったこともお伝えしておきます。
まず麻雀の用語を調べるところから始めるのかw
それにしても結構短時間で作れるものなんだな
__
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことより麻雀しようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、 ニュー速部屋
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
http://tenhou.net/0/?33527612 ,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 / ニュー速サンマ部屋
/ / :::::::::::::::: ; '´ /´\ / r'\
http://tenhou.net/0/?36231746 . i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \ ν速 麻雀部 避難所 9
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
http://namidame.2ch.net/test/read.cgi/liveuranus/1269159467/
41 :
そろばん(長屋):2010/04/04(日) 14:30:59.03 ID:Tcyttupa
麻雀なんてしらねーよ
これならジャンラインが出来た理由も分かる。
43 :
ろう石(東京都):2010/04/04(日) 14:32:14.97 ID:+z5saJxV
あーこの人採用試験でまたこんなことしてるのか
この前は迷路探索の問題でネタになってた人だろ
中学生が正解ってどんな15歳だよ
・「待ち」というと普通は14待ちとか、369待ちとか、
「上がり牌」のことを言う。
しかしよくよく読んでみると出力すべきなのは上がり牌ではなく
受けとなるターツであるらしい
・「出来ている面子・あたま」の定義が不明
[23456]の受けの147待ちのとき、[234]は「出来ている面子」なのか?
・>(123)(123)(123)(555)[9]と(111)(222)(333)(555)[9]の2つあります。
待ちはひとつだが出力は2つしろということか?
待ちを出力するプログラムではないのか?
コメント以下を読めば出題者のやりたいことはうっすらわかるが
それをコメントとしてわんさか書かれて汲み取れってのは非常に困る
>>1の説明だけでコーディングを始めるのはリスクが大きいな
対面で仕様を確認するか、メールで2往復くらいやりとりしなきゃ
仕事にはとりかかれんぞこれは
47 :
ろう石(東京都):2010/04/04(日) 14:36:13.14 ID:BV1gOA1r
48 :
ろう石(千葉県):2010/04/04(日) 14:37:14.76 ID:wlclw4Hb BE:62807235-PLT(12345)
>>35 >
>>26 > 例外的な「アガリ」として「チートイツ」がある。2枚×7組の
これ考慮したら8もじゃないの?チンイツとか何いってんのかよく解らんけど
49 :
ろう石(東京都):2010/04/04(日) 14:37:45.73 ID:+z5saJxV
50 :
ろう石(北海道):2010/04/04(日) 14:38:58.03 ID:am7MZPMV
麻雀知らねーよ
if( $pai eq '1111222233334') {
print '(111)(222)(333)(123)[4]';
print '(111)(222)(333)(234)[1]';
} elsif($pai eq '11122233344') {
}
こんな感じで全部の組み合わせを出力していけば、楽勝だな
52 :
ろう石(東京都):2010/04/04(日) 14:39:12.65 ID:nIIr+fXY
んなもん上がり判定関数を書いてそれに手牌+数字牌1〜9で試行するだけで済むだろ
53 :
ろう石(神奈川県):2010/04/04(日) 14:39:38.54 ID:+SldnZ8h
問題が理解できない
54 :
墨(東日本):2010/04/04(日) 14:40:24.93 ID:NDxNF2HH
55 :
ろう石(東京都):2010/04/04(日) 14:41:05.50 ID:+z5saJxV
>「事前の知識だけですべて決まる」という批判を交わすような
>設問となっています。
いいえ
今回もきっちり事前の知識できまります
麻雀ゲーム作ったことあるエンジニアっているだろうに・・・
57 :
ろう石(東京都):2010/04/04(日) 14:41:41.92 ID:BV1gOA1r
>>46 そもそも、このレベルのものを発注する場合
ほぼフローまで網羅したレベルの仕様つけた発注書になってないと仕事請けられないよな
麻雀知らない奴に麻雀プログラム発注しておきながら
「麻雀の仕様はそちらで調べてください。それにかかった手間賃は払いません」って、
そんな発注したらどこも請けねえよwww
58 :
スプリッター(アラバマ州):2010/04/04(日) 14:42:21.40 ID:d4bq/zK6
なぜか嶺上開花だけで確実に上がり続けれたり
なぜか海底摸月を連打して勝ち続けるアルゴリズムはさすがに無理
問題としてはアレだけど現実のプログラマーの仕事ってこんなもんだろ。
曖昧な課題出されてクライアントと何度も質疑応答したりとか。
この問題の場合麻雀のルールさえググって調べりゃいいだけだから仕事だとしたら屁をするより楽な部類に入るだろ。
それだけの条件で組めなくは無いけど…
拡張させて行く事になったときに
とんでもない実装になりそうw
61 :
ろう石(東京都):2010/04/04(日) 14:43:58.37 ID:BV1gOA1r
ホントこういう奴は
俺の常識は世界の常識、って普通に思ってるから困るわwwwwwww
62 :
ろう石(東京都):2010/04/04(日) 14:44:05.98 ID:+z5saJxV
>>59 >曖昧な課題出されてクライアントと何度も質疑応答したりとか。
そこそこ時間掛けることを
>>1の例題作った人は数時間とかそのくらいでやれっていう
話だし今回もそういう趣旨で例題用意してきてるからな
63 :
ろう石(京都府):2010/04/04(日) 14:44:21.45 ID:URRCRbUN
マージャンはまともな人間のすることじゃないから覚える必要はない
64 :
ろう石(東京都):2010/04/04(日) 14:45:12.48 ID:BV1gOA1r
>>59 それを想定した場合、これで判定出来るのは
コーディングスキルじゃなくて質疑応答スキルなわけだがw
COBOLでやってみようかな
66 :
紙やすり(アラバマ州):2010/04/04(日) 14:46:19.86 ID:UHTEFLZn
麻雀を知ってるのが普通と言う考えのバカが多すぎる。
67 :
ろう石(東京都):2010/04/04(日) 14:46:33.24 ID:BV1gOA1r
>>62 問題を理解するってのと、問題の前提を理解するってのは
全く次元の違う事だと思うぞw
68 :
てこ(東京都):2010/04/04(日) 14:46:42.24 ID:Eum3Ptv1
チートイツとチューレンチェックしてアンコチェックしてジュンツチェックで残りが頭かどうかでいいのかなこれ
69 :
墨(東日本):2010/04/04(日) 14:46:49.48 ID:NDxNF2HH
>>60 字牌にも対応して!とか言われてあばばば・・・とかw
チンイツのすばやい理解の仕方を教えてくれ
>>62 麻雀について調べる時間は別にとっていいみたいだから
うるさく言う事でもないんじゃね?
72 :
チョーク(catv?):2010/04/04(日) 14:48:30.64 ID:tMGfHdh8
/ ̄\ _ -- - _
、 /___ l ,.:: ":::::::::::::::::::::::` 、
\ , -‐、/ ̄`Y  ̄ _/| / ::::::::::::::::::::::::::\,:::::\
. 'ノ .′ .:l" ̄ ̄ ゙r、|i:::::::::::/ :::::::::::::/ノ:ヽ::::::ヽ
\ | | | ◎ |::| | |::::::::/ ::::::::::::: ;/ 八从、:::::ハ
`、ヘ. | .| ◎ |::| | |::::::::{:::::/// /_゙V:::::ト、 ニュー速部屋は誰でもウェルカム
l l , -vー 、| ◎ |::|||:::::.::∨:::Z≠- イ"i 〉ハ::::| |!
http://tenhou.net/0/?33527612 | |l_j|_} ゝ=,-─ 、」 ヽ-、_::::∨'l,。 }` ゚-’ |:::::リ ' ニュー速サンマ部屋
. l `ー''ー一’ | ,_人ー" |:、 \::\`` _`, ,!:::/
http://tenhou.net/0/?36231746 ヽ /! ` Λi. ト、:::::ヽ '、_`ノ /::;ハ_
ヽ / \ / ! |` |\::::〉ー-イゝ、:::\` 、
\ { ` / / / | .l、:::\ー,ソヘ\ハ} \
. `ーヽ、_ ,. 彡/У / / \ハ}:::\ |:::/ | ` ,
\::::\__// / / \:::::`il//r-=ィ" /
`ー==-"::::::::::"::::::;/:::::.. `ーミy" |/ 丶/
`ー──''" ゙̄、\ ` 〔_] |" /
|:::i \ /\\! /
!:::i \ ' \\‐'
. 〉:i:、 .:ム 〉
/::/ヽ .::{ ∨
/{ノ /|
/:/::\`丶---- ‐ "/∧
ニュー速麻雀部ランキングページ
http://www.orbit-space.net/~mj/cgi-bin/ ν速 麻雀部 避難所 9
http://namidame.2ch.net/test/read.cgi/liveuranus/1269159467/
>>59 麻雀
・厳密なルール(仕様)が決まっている
・それを解説する書籍やWebサイトも、山のようにある
・手本となるサンプルプログラムも、山のようにある
・麻雀をネタにしたマンガや映画まである
業務プログラム
・仕様を明確に記したドキュメントなんてない
・やりたい事は顧客の頭の中にしかない
・解説本なんてないし、Webを検索してもその会社のHPがヒットするだけ
・似たようなプログラムは山のように作り散らかされているが、どれも微妙に違うので役に立たない
・「ブラック企業に勤めてるんだが、限界かもしれない」「軍曹が語るケータイ開発現場」というフィクションサイトがある
74 :
烏口(関東・甲信越):2010/04/04(日) 14:49:53.04 ID:IjMYE64z
>>48 チンイツに関しては気にしなくていいよ。
トランプで言うと一つのスートしか使わないってこと。ウノなら1つの色の1〜9を4枚ずつ使う感じ。
チートイツがあっても8は待ちにはならないよ。
例えば
1122334466778
これなら8を「ツモ」してきたときに「チートイツ」になり得る。
75 :
釣り針(アラバマ州):2010/04/04(日) 14:50:08.22 ID:nowDpCJT
ぐだぐだ言ってねーでプログラミングに興味ある奴はさっさと作れよ
麻雀ぐらい知ってんだろ
76 :
ろう石(東京都):2010/04/04(日) 14:50:22.30 ID:BV1gOA1r
>>71 「テスト」である以上、テストそのもの以外の労力を求めたら(≒認めたら)
有利不利が発生するよ。
77 :
カンナ(神奈川県):2010/04/04(日) 14:50:27.37 ID:zax1SSaq
開発の現場で実際によくあるレベルまで
わざわざ落として書いてあるんだよきっと
時間設定も、営業である社長から
「おい!サンプルとして使うからこの仕様で今日中に作れ!」という
命令の連絡がきた、と仮定すればいい
78 :
マイクロピペット(長屋):2010/04/04(日) 14:51:18.21 ID:F/f26/Ek
如何に短いコードで書くかとか、如何に少ないクロックで判定するかとかじゃなければ
別に普通に書けないか? 何が問題なんだ?
IT企業からの挑戦状 = 分からないので誰かタダで解いて;;
80 :
スターラー(東日本):2010/04/04(日) 14:52:04.82 ID:5iadLYYU
google様が教えてくれるよ
81 :
集気ビン(アラバマ州):2010/04/04(日) 14:52:05.19 ID:pJF69YPs
俺が大学時代に習ったけどわけわかめだったjavaを
記憶の奥底から呼び起こしてちょこっと
{public stutic void run
x=1 y=2
if(x+y)
(it is true=3)}
どや!
82 :
ろう石(長屋):2010/04/04(日) 14:52:24.82 ID:i353/POF
>>70 暗刻に着目する
↓
暗刻を抜いた残りの部分の待ちを確認
↓
暗刻部分と残りの部分の関係(パターンA〜D)から複合形の待ちを見抜く
(暗刻が複数あれば次の暗刻に着目)
↓
特殊な複合形(または唯一の例外)があればその待ちも見抜く
83 :
ろう石(東京都):2010/04/04(日) 14:52:26.89 ID:BV1gOA1r
>>77 だからー
さっきも書いたけど、それをなんとか出来るかどうかってのは
コーディング以外の素養が絡む部分のほうが遥かに大きいじゃないのさw
明らかに前置きに反してるってwwおかしいってwww
84 :
飯盒(福岡県):2010/04/04(日) 14:52:54.69 ID:jSnA81Jj
そして完成する「JANLINE」
86 :
平天(福岡県):2010/04/04(日) 14:53:38.11 ID:hTETdYlD
おちんちん
87 :
カンナ(神奈川県):2010/04/04(日) 14:54:38.32 ID:zax1SSaq
>>83 だからそこも含めての皮肉で書いたんだがw
出来るかどうかなんて言ってない
88 :
ろう石(長屋):2010/04/04(日) 14:54:42.49 ID:1GnVjYu3
咲スレかと思ったら真面目なプログラミングスレだった
ソートして、まずは、頭をきめて、
あとは残りを取ればいいだけ。
三人月ももらえばできる、
90 :
ろう石(長屋):2010/04/04(日) 14:55:16.39 ID:i353/POF
91 :
コンニャク(富山県):2010/04/04(日) 14:55:20.86 ID:U/PUF2tL
>>70 暗刻を暗刻と見るか雀頭と見るかがすぐに出来れば簡単
あとは面子ごとに牌を切り分けるだけ
1233456778899 みたいに順子と対子しかなかったら
123 789 3456789 で3-6-9-の雀頭待ちのノベタン系になる
1223345556789 みたいのでも
123 234 555 6789 で6-9のノベタン系にするか
123 55 789 23456 で1-4-7の純粋三面待ちになるかだけの違い これの場合は1-4-7、6-9の五面張だね
92 :
アルバム(関東):2010/04/04(日) 14:55:52.17 ID:BNQCH0Hk
最初にソートしないとな
93 :
ろう石(千葉県):2010/04/04(日) 14:55:52.00 ID:wlclw4Hb BE:133987384-PLT(12345)
>>74 なるほどー。
なんか思ったより結構難しそうだな、40分は無理っぽい・・・
94 :
釣り針(神奈川県):2010/04/04(日) 14:56:38.43 ID:3bFBD8P4
入力する牌の数の制限ぐらい書いておけよ
95 :
烏口(東日本):2010/04/04(日) 14:56:55.97 ID:671nety0
書けるが麻雀のルールを知らない
96 :
カンナ(神奈川県):2010/04/04(日) 14:57:02.24 ID:zax1SSaq
97 :
マイクロピペット(長屋):2010/04/04(日) 14:58:19.78 ID:F/f26/Ek
凄い人は問題読んだ瞬間にフローチャートイメージ出来て、後は指の回り次第で
3分位で書けたりするの?
98 :
豆腐(関西地方):2010/04/04(日) 14:58:32.26 ID:BRQG6CXi
出題者馬鹿なの?
だれかドンジャラで説明してくれ
99 :
ろう石(東京都):2010/04/04(日) 15:00:27.94 ID:+z5saJxV
>>97 麻雀ゲーム開発したことある人だと3分はわからんけど
得意とする言語なら簡単にかけるんじゃないか?
時間競うなら所詮は経験者優位なのは当たり前だしなあ
麻雀用語はぐぐる以前に嫌悪感がしてやる気無くなるw
清一色(チンイーソー、チンイツ)とは、麻雀における役のひとつ。
萬子、索子、筒子のいずれか一種の牌だけを使って和了った時に成立する。
清一色になる牌の組み合わせは(同種の牌を別に数えて)約4.5億通り
>>90>>91 重ね重ねありがとう
端から面子をみてたけど暗刻から考えたほうが確実に早そうだ
分かりやすいパターンから覚えてくるよ
優秀なやつはまず文句言う前に麻雀のルールを数十分で理解して
さらに数十分後にはプログラムが完成している
そして残りの時間をこの問題の批判に費やす
105 :
ろう石(東京都):2010/04/04(日) 15:07:46.60 ID:mu/xuH46
>>26の
>・「チートイツ」を作る際に、同じ組み合わせが2つ出来てはいけない。
>例えば
>1122334455661
>と持っていて、「1」を「ツモ」しても「アガリ」にはならない。1の組み合わせが2組になるから。
って、メンチンリャンペーで普通にツモアガれると思うんですけど
もうちょっと考えて例示しろよ
106 :
虫ピン(アラバマ州):2010/04/04(日) 15:10:39.97 ID:s6A8u3pu
__ ___, /!
. /-、} / 、∠. イ レ'| | いや… なるほど そりゃあ面白い
// // l !\ | \|. ! | !
l l// \ ヽ > __.」 1. ル' 辛気くさい話や 説教も
 ̄l'" / ̄`ー ゙ 「 レ' l/ あまり続くと……… 気が滅入ってくる…
. |. \ r │
. ! \ ヽ │ それより…
. !_.」 ,へ._/\」 ┘ そんな風に割り切って勝負に持ち込まれた方が…
|│ ./ かえって気が楽だ……!
. l.l /
イ`!`ー-' だからよ…… 本当に受けてやりたいんだが… ちょっとそれは無理だな…
. | |
|| オレにはもう麻雀が… よく分からんのよ…!
107 :
試験管立て(千葉県):2010/04/04(日) 15:10:43.75 ID:2z6l8Pyl
無能な雑魚マに限って問題に色々と難癖つけるよな
出来ないなら出来ないって正直に言えよw
108 :
烏口(関東・甲信越):2010/04/04(日) 15:12:10.70 ID:IjMYE64z
>>105 ワロタw
スマンスマン。
1122334455771
これなら大丈夫か。
思考ルーチン考えるとかならともかく
こんなの高校生でも出来るだろ
110 :
ろう石(東京都):2010/04/04(日) 15:12:27.76 ID:BV1gOA1r
>>105 そこに気付くには、その場でルールを検索して把握する以上のスキル
(というより麻雀経験値?)が必要になるわけで、
そういう穴が開くという事もこの問題がテストとして適切でない事を現しちゃってるね
麻雀知ってれば30分もあれば解けるだろ
>>109 麻雀興味ないのでできることならやりたくない
>>59 ほか
たしかにこの出題は、システム化の現場に潜む問題を端的に示していて
いろいろな示唆に富んで面白い。
示唆その1
問われているものは、コーディングに取り掛かる前に
必要とされるスキルの問題。
しかも、そのスキルこそがプログラマやSEにとって重要な資質。
コーディングスキルのコストパフォーマンスでは日本をはるかにしのぐ
中印へのオフショアが上手くいかない原因の本質がここにある。
示唆その2
麻雀を知らない人よりも、麻雀を知っている人の方が
この出題のあやふやさ、クライアントの表現の拙さに気づきやすい。
これは「麻雀の知識」ならぬ
現場での「クライアントの業務の知識」でも同じことが言える。
したがってSEには「コーディングスキル」よりも
「クライアント業種の経験」が問われることが大きい
114 :
ろう石(東京都):2010/04/04(日) 15:15:00.14 ID:BV1gOA1r
>>113 先生、テストの趣旨がどっかいっちゃってます!
テストなのにテストに文句言ってる時点で終了
社会で求められるのは、不条理なテストでもいい点が取れる人
「頭のいい人」が活躍出来る場は少ない
116 :
回折格子(関西地方):2010/04/04(日) 15:16:16.47 ID:lYieDneI
>>108 7が頭、345のシュンツと考えると、
1と2のシャボ待ちでロンできると思うのは俺が初心者だからか?
清一、一盃口
>>114 お前どうしようもないね
社会で何が求められるのかまるでわかってない
>>114 いやいってないだろ
>>113を加味するとだな
無謀な題材渡してもこなすスーパーマン欲しいってことだろし
実際この例題作った社長のブログみてるとそういう感じがする
119 :
鑿(北海道):2010/04/04(日) 15:17:02.35 ID:Gxz0P/J/
刻子>順子>頭
刻子>頭>順子
順子>刻子>頭
順子>頭>刻子
頭>刻子>順子
頭>順子>刻子
この6通りのオーダーで抽出すれば全部出るはず
120 :
フライパン(長屋):2010/04/04(日) 15:17:32.33 ID:OmBbO8cS
まず有効牌を残して、次にメンツ計算をして、頭を確定させて、
122 :
真空ポンプ(東京都):2010/04/04(日) 15:18:06.07 ID:Jc+Pk+Sv
123 :
フライパン(長屋):2010/04/04(日) 15:18:51.81 ID:OmBbO8cS
プログラムはできるけど「チンイツ」とか「まんこ?」のみの想定とか意味がわからん。なんかいやらしい。
125 :
烏口(関東・甲信越):2010/04/04(日) 15:19:58.76 ID:IjMYE64z
>>116 ?シャボ待ちってトイツ2つがあって、ツモった方がコーツ、もう一方が頭になる待ちだろ?
2と7のシャボだろ。1は既にコーツなんだから。
チンイツって竹みたいな棒のやつだけってことだっけ?
127 :
烏口(関東・甲信越):2010/04/04(日) 15:20:42.15 ID:IjMYE64z
ごめん5も
麻雀知らないとか甘えた事ぬかしてる奴は
>>72来いよ
俺が体で教えてやるよ
129 :
テンプレート(アラバマ州):2010/04/04(日) 15:21:06.68 ID:9tLrggcE
130 :
磁石(長屋):2010/04/04(日) 15:22:35.75 ID:DPgK8HHi
まず、文字列をソートして、それから全通り試す形かな
区切ってる最中に判定入れて、シュンツやアンコで無かったら即次
んで、最終結果をソートして、同一なものを省く
131 :
墨(東日本):2010/04/04(日) 15:22:45.54 ID:NDxNF2HH
132 :
エリ(アラバマ州):2010/04/04(日) 15:24:04.10 ID:taT+ydPR
プログラマが麻雀知ってること前提で話進めたら駄目だろ。
糞SEの見本みたいなやつだな
133 :
時計皿(東京都):2010/04/04(日) 15:24:19.29 ID:PE7TISso
麻雀の前提知識があるかないかで難易度大幅に違うじゃねーかw
何も知らないならかなりの理解力がいるな
えっ
効率は悪いかもしれんけど一牌ずつ全パターンとっていけばいいだけじゃねえの
136 :
ペンチ(東京都):2010/04/04(日) 15:25:37.95 ID:Y5QQCHbR
中学生がこれ解いたって本当かよ?
ソフ開持ってるけど、ソフ開の午後2アルゴリズム問題よりずっと難しくないか?
ソフ開持ちの中学生なんてそうそういないだろうし。
んーこんな特殊能力の持ち主を選抜するような事やって意味あんのかな?
コンテストみたいな一発イベントなら分かるけどさ。
今ある麻雀ゲームのルーチンだって、凡人が設計したものを繰り返しテストしたり、
バグだしの結果出来上がったものであって、
こういう出題に短時間で回答できるような論理パズル脳の持ち主が編み出したものじゃないと思うんだけど。
>>125 ごめん、勘違いした。
ちゃんとした例題になってるわ
>>113 続き
示唆その3
出題者(発注者)は「あとはコーディングだけをやればよい」
と言っているが、実はコーディングの前にやるべき仕事が残っている。
この例ではただの与太話だが実例では金銭が絡む契約の問題となる。
設計・製造の各工程で責任を持つ会社が異なることが多いが
その際の責任範囲を明確に線引きする方法をしらない。
その顕著な例が
>>59や
>>77が皮肉にもマジレスにも取れるところにある。
実際には政治的な力により線引きは収束するわけだが
その代償として現場と客先との感情のしこりとか、
現場と営業との間の感情のしこりが残り、
そんな経験があるからこそ、道理で今日は休肝日のはずなのに昼間から酒が進むわけだ
141 :
真空ポンプ(東京都):2010/04/04(日) 15:28:49.05 ID:Jc+Pk+Sv
>>124 「まんこ」がなんのことか一瞬理解できなかった
確かに萬子をマンズ、ワンズとは読めない罠
マージャンを知っていれば簡単だよな。
降順に並び替えて
頭候補を抽出、
役満やチートイを判断、
なければ1から順に、刻子と順子抽出のグラフを作ればいいだけだろ。
>126
以下三種類のうち1種類だけで上がること
┌──┐
│ .一. │
│ │
│ .萬. │
└──┘
┌──┐┌──┐
│ ││ .ノノノ│
│. ◎ .││(゚。゚).│
│ ││( ミ│
└──┘└┴┴┘
>>143 マンズ、ピンズ、ソウズだっけ?
まあパターン検索というかそういうのだよな
145 :
ペーパーナイフ(catv?):2010/04/04(日) 15:34:54.98 ID:TaieSkgE
左上のがまんこで左下のがアナル?右下はなに?
148 :
ろう石(京都府):2010/04/04(日) 15:37:14.36 ID:hNUZiJuO
なかなかいいタイトルしてるな
こういうのってプライドをくすぐられるよね
149 :
ろう石(神奈川県):2010/04/04(日) 15:37:28.50 ID:vLb8n3mj
プログラム言語はbrainfuckしか読めないからbrainfuckで答え書いてくれない?
150 :
ろう石(大阪府):2010/04/04(日) 15:43:24.20 ID:ML/7O7WC
ローカル役で大車輪というものがあってだな、
さすがに文系プログラマーにこの問題は無理
154 :
土鍋(catv?):2010/04/04(日) 15:47:05.11 ID:ErcNwkjU
ネット麻雀って偏りがあるような気がするけど気のせいなのかな?
赤信号に捕まったときのほうが印象に残るからついつい「この交差点はいつも捕まるなあ」という考えになってしまうように
157 :
ろう石(長屋):2010/04/04(日) 15:54:16.23 ID:xciPN9L4
>「事前の知識だけですべて決まる」という批判を交わすような設問となっています。
何いってんだコイツ
158 :
錐(愛知県):2010/04/04(日) 15:56:54.29 ID:k1k8oGTw
マジでわからん
今年から情報科学部だけど不安になってきた
>>158 麻雀のルールを知らない人はまずそこからはじめないといけない
プログラマは麻雀知ってないとダメなのかよw
質問作ったやつは池沼なんだろうか
ルールよくわからんのだよな・・・
>>150 もうちょっと色合いを何とか出来んのか?w
順子と刻子を切り分けるプログラムを書きなさい。
とかなら単純で良さそうな気がする。
167 :
ペーパーナイフ(catv?):2010/04/04(日) 16:07:28.77 ID:TaieSkgE
>>156 天鳳なんか偏りっつーかなんかもうひどいぞ
169 :
鏡(東日本):2010/04/04(日) 16:16:48.18 ID:7IZ1znwW
>>168 これ使って打たないだろう
コレクション用じゃないのか
>>160 ルール知らないとタンヤオだのフリテンだの関係ないところまで読まなきゃいけないし、キリないよね。
171 :
ろう石(千葉県):2010/04/04(日) 16:38:54.52 ID:wlclw4Hb BE:25123032-PLT(12345)
できたっぽいけど最後に確認させてくれ
アタマは 12 23 みたいのはダメで 11 22 みたいなののみでOKだよな?
172 :
蛸壺(長屋):2010/04/04(日) 16:39:18.63 ID:og5cX7Ok
>>171 あまり詳しくは無いが
ストレートでパターン組む場合は3つが基本(123とか234とか)
同じ番号なら2個、3個、4個OK
174 :
鏡(東日本):2010/04/04(日) 16:41:54.29 ID:7IZ1znwW
組めるんだろうけど麻雀が分かりません
176 :
ろう石(千葉県):2010/04/04(日) 16:48:31.31 ID:wlclw4Hb BE:37684433-PLT(12345)
177 :
ろう石(神奈川県):2010/04/04(日) 16:49:46.54 ID:1CUPnIcs
とりあえず地獄モード天国モードってのが無いように配牌プログラミングしろ
一回ダメになるとずーっとダメとかやる気無くす
さて、そうした場合どういう確率を使えばいいだろうか?
>>176 細かいルールを端折れば同じ数字が2個の組み合わせと3つの連続する数字
でパターンさえできれば一応麻雀になるよ
同じ数字が4つあればカンできるし
とまあ俺も適当にゲームやっただけのルールしかわかってないので
ほんとは適当組み合わせするといろいろあるみたいだけどね
181 :
魚群探知機(長屋):2010/04/04(日) 16:58:09.21 ID:pxmtcTFR
オモシロそうな問題だな
184 :
リービッヒ冷却器(青森県):2010/04/04(日) 17:03:31.72 ID:UrJDERbQ
そいや、初めて積算ソフト作ったときもワケワカメだったな。
185 :
ろう石(静岡県):2010/04/04(日) 17:03:39.02 ID:SRCoHcsw
>>180 これは4ソウと8ソウのシャンポン待ち?
チンイツ手って待ちが全然わかんないわ
186 :
ろう石(神奈川県):2010/04/04(日) 17:04:38.50 ID:1CUPnIcs
あああ・・・すまんリロードが途中だった
>>183 俺これだったら初手9s切ってリーチしてるわ
190 :
コンニャク(富山県):2010/04/04(日) 17:12:05.03 ID:U/PUF2tL
9s切りなら4-7、5-8、6の変則五面張か
一気通貫が狙える分6s切りの方がいいかもしれんがな
191 :
ろう石(dion軍):2010/04/04(日) 17:13:27.46 ID:SFHlcYGH
192 :
ろう石(千葉県):2010/04/04(日) 17:14:59.43 ID:wlclw4Hb BE:25123223-PLT(12345)
あー、致命的なバグがあった。あと重複するけどまぁいいか面倒くさい
193 :
画用紙(アラバマ州):2010/04/04(日) 17:15:37.47 ID://QOYqBO
第一志望の重役面接で爆死した
死にたい
194 :
浮子(茨城県):2010/04/04(日) 17:17:40.55 ID:9a1lzrCi
手牌とか待ちとか用語が分からないと無理だろ。
プログラムももちろん書けないけどさ。
まあトランプのポーカーでストレートとかペアを作るようなイメージだよ
手持ちの枚数多いけどw
196 :
コンニャク(富山県):2010/04/04(日) 17:21:27.15 ID:U/PUF2tL
197 :
ろう石(千葉県):2010/04/04(日) 17:23:15.33 ID:wlclw4Hb BE:226104269-PLT(12345)
>>194 >>26くらい噛み砕いた説明あれば、とりあえず取り掛かることは出来る
解けるかどうかは微妙だけど
>>114 だからそこも含めての皮肉で書いたんだがw
出来るかどうかなんて言ってない
麻雀のルールわかるけど
>>1の問題の意味がわからん
というか何をいいたいかよくわからん
自分は
>>17から結構
>>1の出題にケチ付けてるけど
(暇な奴はIDで抽出してくれ)
俺みたく
>>1の問題を解くためのアルゴリズムを
考えるのを面倒臭がって、リスク回避の方法をひたすら考えるのは
文型脳の文型SEの典型ってことになるんだろうな。
でもって、一方で嬉々としてアルゴリズム考えたがるのは
理系脳の自称ギークwPGなんだろうな。あー気味わりぃw
自分はたまたまSIの業種に身をおく羽目になったけど
プログラミング系のスレを見るたびに、理系と文系の断絶を感じるんだよ
たとえばFizzBuzz問題とかでも、問題の本質そっちのけで、
少ない行数でFizzBuzzを解くのに夢中になる奴らとかいるだろ。キショ過ぎる。
本当に図抜けた奴らが掛け替えのない貴重な才能であることは確かだけどさ
ギークを気取った奴らもいっぱいいるわけで。
どっちの方が金儲けるのが上手いのか?
金を儲けるのが上手いはずの欧米に理系と文系の断絶が無いのはなぜか?
知りたくてもやもやしてる。もやもや病。
>>195 無能な雑魚マに限って問題に色々と難癖つけるよな
出来ないなら出来ないって正直に言えよw
204 :
コンニャク(富山県):2010/04/04(日) 17:40:33.47 ID:U/PUF2tL
揃わねー 脱衣麻雀やって大三元天和あがってくる
205 :
ろう石(千葉県):2010/04/04(日) 17:42:23.38 ID:wlclw4Hb BE:50245834-PLT(12345)
206 :
オートクレーブ(長野県):2010/04/04(日) 17:42:46.30 ID:i8SCt6LG
同一タイトルソフトでも
セガサターンとプレイステーションでは
アルコリズムが全然違うな。
セガサターンはヘンタイプログラムが多かった。
207 :
ろう石(京都府):2010/04/04(日) 17:44:10.71 ID:hNUZiJuO
>>139 なに?SEになったらこんな難しい文章書けるようになるの?
あれ?人格否定できるほど優秀な方のコード晒しはまだ?
スレたってずいぶん時間たってるよね?
あれれ?
おい
32bitアプリから64bitアプリのハンドル扱う方法教えろカス
今作ってるんだが意外と面倒
ランダム配牌とソートのアルゴリズムも余計に作らないといけない
211 :
ろう石(dion軍):2010/04/04(日) 17:55:10.95 ID:SFHlcYGH
>>210 配牌はキーボードで入力するんじゃない?
>>210 これランダムに配牌作るような問題なのか?
213 :
飯盒(福岡県):2010/04/04(日) 17:58:28.84 ID:jSnA81Jj
>>210 普通に麻雀ゲーム作ろうとしてるのかw
出来たら後悔してくれw
>>211 えっ、普通拡張性を考えて作らないか?ランダム配牌は簡単だけどさ
まずマージャンがわからない。
>>214 拡張性って言うか関係ないところまで広げすぎちゃうか?
今回のお題ってチェック関数くらいの規模だろ?w
217 :
ろう石(dion軍):2010/04/04(日) 18:01:04.70 ID:SFHlcYGH
>>214 そうじゃなくて、問題がこれだろ
>●問題
>麻雀の手牌が入力として与えられたとき、「待ち」を出力するプログラムを書いてください。
萬子だけだったら待ちのパターンから逆に構成できないのかな
入力だから乱数でも良いだろ?一々入力するよりデバッグ楽だし
220 :
羽根ペン(関東・甲信越):2010/04/04(日) 18:03:30.07 ID:Esxlm1/s
いや麻雀が分かんないんだけど
221 :
便箋(catv?):2010/04/04(日) 18:05:33.70 ID:y5i7Mz7J
僕の考えただいたいのアルゴリズム
・二次元配列(9×4)に手牌を展開
・上記二次元配列から生成可能な順子、刻子を生成し、一次元配列に格納
・上記一次元配列から4通りの組み合わせの総当りをし、手牌とマッチングさせ生成可能な組み合わせか確認
・残り牌から待ちを求める
・上記一次元配列から3通りの組み合わせの総当りをし、手牌とマッチングさせ生成可能な組み合わせか確認
・残り牌からアタマと待ちを求める
結構面倒だな・・・40分でできるか??
222 :
ろう石(dion軍):2010/04/04(日) 18:06:57.49 ID:SFHlcYGH
勉強のためにやってみようと思うんだけど、例えば配牌が与えられたときにコーツを抽出するのってどうすればいいの?
223 :
スプリッター(アラバマ州):2010/04/04(日) 18:09:54.75 ID:d4bq/zK6
>>220 麻雀のルール本渡されて作れって言われるのがエロゲ業界だったw
牌だけ違う同じような組み合わせはとりあえず同じにして
出てる牌をもとに最適な組み合わせを毎回計算するぐらいはいまのPCなら余裕
ここから他のやつがなにをやろうとしてるか予測させようとするととたんに死ぬ
224 :
ろう石(埼玉県):2010/04/04(日) 18:12:00.02 ID:EE6LtZ4V
>麻雀の手牌が入力として与えられたとき、「待ち」を出力するプログラムを書いてください。
上がれる状態に並べ替えろってこと?
225 :
ろう石(千葉県):2010/04/04(日) 18:14:27.80 ID:wlclw4Hb BE:167484285-PLT(12345)
解いたのに全く相手にされないでござる
ひょっとして、何か凄い間違い犯してる?心配になるから指摘してくれ・・・
これ組むの簡単だけど
効率化とかデバッグを真面目にやったら五時間くらいかかるな
なんか出題者が気に入らないから6809のアッセンブラで組んで送りつけてやろうかw
>>225 ごめん
rbってruby?
だったらおおよその流れくらいしかわからんw
押し入れの中のびゅう太が電源入ったから
日本語BASICでくんで送るわw
つか、40分が気になる。
40分でデバッグも含めキッチリやるなら、相当スッキリしたアルゴリズムになると思うんだけど・・・・
結構複雑になっちゃいそうなんだけどな。
230 :
ろう石(千葉県):2010/04/04(日) 18:24:47.19 ID:wlclw4Hb BE:75368063-PLT(12345)
231 :
画板(東京都):2010/04/04(日) 18:25:14.85 ID:+NJB8tF2
1から9まで入れてそれで成立するかどうか見るのが手っ取り早いんじゃねえの
233 :
手錠(西日本):2010/04/04(日) 18:27:02.28 ID:EzqQyFAf
麻雀のルール知識は社会的常識(キリッ
234 :
ろう石(千葉県):2010/04/04(日) 18:31:07.28 ID:wlclw4Hb BE:50245834-PLT(12345)
>>232 C#ならともかく、C/C++でこの問題を1時間で解けたらかなり凄いと思う
メモリ管理ダルすぎて
235 :
便箋(catv?):2010/04/04(日) 18:32:41.33 ID:y5i7Mz7J
作りたい人はJavaScriptでやればいいのに。
そうすりゃみんな見れる。
rubyじゃ・・・
236 :
ろう石(新潟県):2010/04/04(日) 18:33:29.58 ID:jcjO/IAL
>>1 出来たと思ったら七対子を忘れていたでござる
とかって話なんだろ。俺は騙されねえぜ。
>>234 C++はstd::string使えばほぼC#と同じようにかけるしCでもなんとかなるでしょ
牌を統一ってのが救い出し
238 :
ろう石(大阪府):2010/04/04(日) 18:36:13.97 ID:ML/7O7WC
単騎か。てことは頭の処理は一番最後だな
マージャンなんてしらねえよ
240 :
泡立て器(長屋):2010/04/04(日) 18:39:11.71 ID:TUioGEtF
c
schemeでやってくれ。
242 :
泡立て器(長屋):2010/04/04(日) 18:41:24.11 ID:TUioGEtF
>>234 この問題解くのにメモリ管理(解放)って必要あるの?
最初に配列で確保しておけばいいと思うんだけど。
vbaでならできそう
244 :
蛸壺(長屋):2010/04/04(日) 18:44:58.22 ID:og5cX7Ok
245 :
ろう石(千葉県):2010/04/04(日) 18:46:46.65 ID:wlclw4Hb BE:33497524-PLT(12345)
>>242 俺は計算途中でメモリをガンガン使う方法で解いたからワカラン
そういう解もみたいから是非解いてみてぽ
246 :
蛸壺(長屋):2010/04/04(日) 18:47:07.75 ID:og5cX7Ok
いや、慣れてないだけだけど
247 :
朱肉(東京都):2010/04/04(日) 18:48:54.18 ID:kjW+VZnp
248 :
すりこぎ(アラバマ州):2010/04/04(日) 18:49:17.74 ID:YGx2R/hl
249 :
すりこぎ(アラバマ州):2010/04/04(日) 18:49:53.58 ID:YGx2R/hl
マージャンのルールしらんから無理だわ
251 :
泡立て器(長屋):2010/04/04(日) 18:54:20.92 ID:TUioGEtF
やるおがブラック派遣会社でPGやるまとめがあったけど、この出題者はそういう会社が日本ではかなり多いって現実が分からないんだろうな。
一般卓で打ってると必ず一人が回線落ちして戻ってこないんだけどわざとやってるの?
そういうヤツの名前は殆どがNoNameなんだけど
亜空カンを行えるようにプログラムを書き換えなさい
ところでチンイツって何
255 :
泡立て器(長屋):2010/04/04(日) 18:59:06.10 ID:TUioGEtF
>>245 自分は組み込みとかやっていたから、メモリをじゃぶじゃぶ使うってのが不思議に思っただけだよ。
ファミコンとかってメインRAMが2KBしかないんだよね。
まあ、プログラム作るのにエライ時間かかるけどね。
256 :
カッター(アラバマ州):2010/04/04(日) 19:10:39.79 ID:gAxwXJFi
麻雀を知らないからプログラミングできない
プログラマーって喫煙率高いし、パチンコやるやつも多いし、ITmediaで麻雀の話題かよ・・・
IT土方なんて言われても仕方ないと思えるわ
別にプログラマーじゃないけど多分書けるな
でも3時間は無理だな
20年以上プログラマやってるけど、
>>1に書いてある仕様の意味がまるで理解できない
259 :
ろう石(dion軍):2010/04/04(日) 19:24:42.09 ID:EC+nC/Y9
11122333444ってなってる配列を
12341234134みたいにソートするにはどうしたらいいのですか?
261 :
蛸壺(長屋):2010/04/04(日) 19:29:46.48 ID:og5cX7Ok
>>259 ソートする必要なく根?
やるとしたら
普通に小さいほうから隣り合わせの肺があるか調べてあったら並び替えればいいじゃん
3つ見つけるor見つけられなかったら2つ上の肺でサーチ
262 :
蛸壺(長屋):2010/04/04(日) 19:31:01.65 ID:og5cX7Ok
あー隣り合わせっつーかその隣までな
>>259 1)連想配列にヒストグラムとして格納する。キーはパイ値。バリューは個数。
2)連想配列のキーを全部取り出して、ソート。ソート結果を結果として保持する
3)2)で取り出したパイ値のバリューを、−1する。バリューが0になったら、そのキーとバリューを連想配列から消す
4) 2)と3)を、連想配列が空になるまで続ける
Perlを念頭において考えてみた
264 :
ろう石(千葉県):2010/04/04(日) 20:23:58.47 ID:wlclw4Hb BE:37684433-PLT(12345)
265 :
ろう石(新潟県):2010/04/04(日) 20:29:02.41 ID:jcjO/IAL
難しいこと考えずに9種4枚なんだから9×4の配列か構造体作って頭から順に入れて、
1が順子のとき・・・、1が刻子のとき・・・って感じで順に面子作って、その時々の余った牌の待ちを書き連ねればいいんじゃね。
槓子は考慮しないでいいみたいだし、あとはチートイツの検索を入れればおkでしょ。
まず麻雀のルールがわかr
267 :
チョーク(長屋):2010/04/04(日) 20:52:34.04 ID:zMaKOcMm
diffの経路探索アルゴリズムっぽい解法でいける気がする
誰か考えろ
268 :
マスキングテープ(神奈川県):2010/04/04(日) 20:57:21.11 ID:ZfhlvJ5H
ようわからんが
四連刻単騎
1112223334445
大車輪
2233445566778
九連9面
1112345678999
あたりで駄目なのはすぐボロが出そうだな
269 :
顕微鏡(東京都):2010/04/04(日) 21:00:46.71 ID:Lxhu1bW7 BE:1506438959-DIA(146000)
270 :
墨(東日本):2010/04/04(日) 21:02:20.88 ID:NDxNF2HH
>>264 良く出来てるなー、ちゃんと九蓮宝燈も9面待ちになってるし
271 :
墨(東日本):2010/04/04(日) 21:08:08.06 ID:NDxNF2HH
>>269 おー、こっちもいいなぁ
もどる でトップに戻るけどトップにリンクが無いぞw
チンイツの見逃しチョンボ指摘するとふて腐れるかリアルファイトに発展するよね
俺悪くないし
>>268 ./  ̄/  ̄ / _|__ ___|_
―/ / |/ /|
_/ _/ | _/|
/\___/ヽ
(.`ヽ(`> 、 /'''''' ''''''::::::\
`'<`ゝr'フ\ + |(●), 、(●)、.:| +
⊂コ二Lフ^´ ノ, /⌒) | ,,,ノ(、_, )ヽ、,, .::::|
⊂l二L7_ / -ゝ-')´ + | `-=ニ=- ' .:::::::| +
\_ 、__,.イ\ + \ `ニニ´ .:::/ +
(T__ノ Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./|
ヽ¬. / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ
\l__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、
___________________________ __
│二│三│四│二│三│四│二│三│四│◎│◎│◎│伍│|伍|
│萬│萬│萬│萬│萬│萬│萬│萬│萬│◎│◎│◎│萬│|萬|
まあ、
>>1をみるとこれも含めるらしいが。
274 :
ビュレット(catv?):2010/04/04(日) 21:13:50.84 ID:ZyQejllr
なんか面白そうと思って問題みたが
最初から意味わからんかった
麻雀のルール知らん買った
275 :
グラフ用紙(秋田県):2010/04/04(日) 21:54:50.01 ID:ksdRiYDQ
276 :
飯盒(福岡県):2010/04/04(日) 21:58:52.41 ID:jSnA81Jj
貴重な休日無駄にした
こういうのを吹っかけられて嬉々として取り組める人がプログラマに向いてるってことなのかな。
オレはダメだ、全然やる気が起きない。
UIの仕様とか考えるのは好きなんだがなぁ。
なんだこれ
これでいいのか
入力 1112345678999
出力
(99)(123)(456)(789)[11]
(99)(111)(456)(789)[23]
(111)(999)(345)(678)[2]
(11)(999)(123)(678)[45]
(99)(111)(234)(789)[56]
(111)(999)(234)(678)[5]
(11)(999)(123)(456)[78]
(99)(111)(234)(567)[89]
(111)(999)(234)(567)[8]
(11)(123)(456)(789)[99]
所要時間 約2時間, C で 90行
280 :
ろう石(千葉県):2010/04/04(日) 22:55:05.53 ID:wlclw4Hb BE:50246126-PLT(12346)
>>279 Cだと重複除去の処理がダルそう
90行ってことはロジック的に重複が起きないように書いたのかな?
参考にしたいからうpって欲しいです
これあれだな、13枚で考えると複雑になりすぎるから
1枚を加えた14枚が上がり形になってるかどうかを調べればいいんだ。
加える牌は1から9まであるから9回のループ。
それから頭の2枚を取り除く。これも1から9までの9回のループ。
9*9のループの中で次を行う。
A:
手牌の一番左に同一牌が3枚以上あったら
3枚を取り除き、A:に戻って再帰処理を行う。
3枚以上なかったら
順子が取れるかどうか調べ、取れるなら
順子を取り除き、A:に戻って再帰処理を行う。
取り除けないなら上がり形になっていないという事なので処理を終了する。
14枚の手牌を全部取り除ければ上がり形になっているという事。
あとは最初に1枚加えたどこから取り除くかを網羅する作業。
頭から取る場合、刻子から取る場合、順子から取る場合、それぞれを調べる。
282 :
顕微鏡(東京都):2010/04/04(日) 23:13:53.59 ID:Lxhu1bW7 BE:2109013597-DIA(146000)
>>281 頭の処理忘れてるし、
3枚以上あっても刻子として使わない場合もあるよ、頭+順子とか。
そのアルゴリズムだと例えば11123556677999とかは上がり形になってないって判定されるんじゃね?
283 :
ろう石(アラバマ州):2010/04/04(日) 23:17:25.34 ID:2imjeVm0
口先ばっかりのお前ら涙目
284 :
巾着(福岡県):2010/04/04(日) 23:24:56.44 ID:iB6PGWvm
>>259 その時点で三暗刻(2翻)完成してるし奇跡の四暗刻も夢じゃない
285 :
がんもどき(東京都):2010/04/04(日) 23:24:56.56 ID:O8EiuqLD
茨城早くきてくれーーーーー
287 :
ろう石(千葉県):2010/04/04(日) 23:33:45.39 ID:wlclw4Hb BE:113051693-PLT(13333)
ノーテンでぐぐっても他の麻雀用語で説明されてて全く分からんワロタ
pc98の天仙娘々で流し満貫をやったら満貫罰符取られた事は一生忘れない
289 :
真空ポンプ(東京都):2010/04/04(日) 23:35:09.29 ID:Jc+Pk+Sv
同じ牌は4枚しかない
>>286 麻雀知らずに作ったのか。偉いな。
ノーテンは「待ち無し」と同じ意味
「1111444666888」は「待ち無し」が正解。
理由は同じ数字は最大4つまでしか使えない(同じ牌は四つしかない)から。
>>290 「槓子は存在しない」の意味次第だな
カンしてなければただの四枚の牌ってことならそうだな。
>>293 いや、それはここでは関係ないよ。
カンしていた上で13牌だったとしたら、そもそもションパイでしょ。
295 :
ろう石(千葉県):2010/04/04(日) 23:56:42.78 ID:wlclw4Hb BE:104678055-PLT(13333)
>>290 あぁー、そうか。問題文にも書いてあったのに完全に忘れてた、、、
直してくる
296 :
ろう石(千葉県):2010/04/04(日) 23:58:00.53 ID:wlclw4Hb BE:339155699-PLT(13333)
こんな物に三時間って…
初級者の演習レベルじゃん。
今の日本ってこんななの?
>>295 同じ牌が4枚しかない旨は問題文には書いてないし、
いいよ、直さなくて。
299 :
烏口(関東・甲信越):2010/04/05(月) 00:07:54.45 ID:ZSeAeEZj
こんな簡単な問題で、何を選別するつもりだ?
300 :
木炭(千葉県):2010/04/05(月) 00:08:59.42 ID:JeOQd1ub BE:113051693-PLT(13333)
カッコ悪い方法だけどなおった。エンバグしてなきゃいいけど
301 :
木炭(北海道):2010/04/05(月) 00:12:22.37 ID:jt17EKjB
>>298 それだと、全部同じ牌の場合まで考慮しなくては…
302 :
アスピレーター(東京都):2010/04/05(月) 00:15:19.29 ID:jUASxpdX
まあ手配とツモで同じ牌が5枚以上有ったら弾くだけだしな
できた
#include <stdio.h>
#define TRUE 1
#define FALSE 0
FILE *fi;
void cat ()
{
int c;
while((c=fgetc(fi))!=EOF){
putchar(c);
}
fclose(fi);
}
int main (int argc, char *argv[])
{
while (--argc > 0) {
if((fi=fopen(*++argv,"r"))==NULL){
printf("%sがオープンできません\n", *argv);
return(1);
}
cat();
}
return(0);
}
プログラミングスレとか普段絶対見ないのでなかなか面白い
オンゲーじゃない麻雀ゲーム(二人打ちとかも)の山ってどうなってんの?
305 :
木炭(dion軍):2010/04/05(月) 01:07:50.69 ID:VrI8b4OK
306 :
木炭(千葉県):2010/04/05(月) 01:20:22.94 ID:JeOQd1ub BE:75369029-PLT(13333)
>>292 読んだ。コンビネーションで手を取ってくから重複起こらないのかー
あと枚数でとってく方法が参考になった。こっちのほうが確実ですなあ
勉強りました。ryanmenってのはよく分からなかったけど
307 :
木炭(千葉県):2010/04/05(月) 01:21:48.69 ID:JeOQd1ub BE:41871252-PLT(13333)
s/勉強りました/勉強になりました/
カン!かん!カン!カン!ロン!
フリテンでした
309 :
釣り竿(東京都):2010/04/05(月) 01:29:19.23 ID:1V3tB9oE
310 :
アルコールランプ(チリ):2010/04/05(月) 01:37:12.20 ID:Qzcghsqc
>>1 これ何が痛いかって、麻雀が世界基準みたいな前提で問題作っちゃってるのが痛い
311 :
製図ペン(関東・甲信越):2010/04/05(月) 01:37:20.26 ID:8KGEyHs6 BE:195831124-PLT(12680)
あ
312 :
木炭(東京都):2010/04/05(月) 01:43:04.46 ID:5W1tCMMn
>>59 その辺はSEとかPMがどうするか考えるだろ。
そんな毎回プロトタイプ作ってたら時間ねーよwまぁその結果が雀ラインだけどな。
昔取った杵柄でやってみた。C++で160行。
楽勝かと思ったら「全部のアガり型を被らせずに出力」が結構めんどいな。
手牌
1112345678999
アガリ形
(123)(456)(789)(99)[11]
(111)(456)(789)(99)[23]
(111)(999)(345)(678)[2]
(999)(345)(678)(11)[12]
(999)(123)(678)(11)[45]
(111)(234)(789)(99)[56]
(111)(999)(234)(678)[5]
(999)(123)(456)(11)[78]
(111)(234)(567)(99)[89]
(111)(999)(234)(567)[8]
(123)(456)(789)(11)[99]
麻雀ゲームならアガリ判定と点数計算用の型判定は関数分けようYO
315 :
木炭(大阪府):2010/04/05(月) 02:05:33.12 ID:Pg/kCv+L
再帰にすると評価高そう。
316 :
レーザーポインター(アラバマ州):2010/04/05(月) 02:21:16.11 ID:jTmTm1p9
こんなスキル何の役にも立たん。
麻雀なんて日本人と中国人しかやらんしな。
世界170カ国で2カ国。意味無し。
318 :
木炭(京都府):2010/04/05(月) 02:34:56.01 ID:6n2zGtUR
319 :
木炭(catv?):2010/04/05(月) 02:36:23.50 ID:T5KD/P3q
All Green
320 :
金槌(長屋):2010/04/05(月) 02:37:49.42 ID:Lg3rnhQa
謎の宇宙麻雀ルールができたでござる
>>314 被らせずに出力なんて正規化してsortしてuniq相当だろ?
何がめんどかったか後学のために教えてくれ
322 :
蒸し器(東京都):2010/04/05(月) 02:49:05.48 ID:XjKy3Y/Q
めんどくさいと思ったけど久々にSTL使ってみてもいいかもしれないと思った
朝気づいたら今日これで暇つぶししたのに残念もう月曜日だ
323 :
ゆで卵(福岡県):2010/04/05(月) 03:01:39.68 ID:8ryuT9r9
いーすーちー
りゃんうーはー
324 :
下敷き(関西):2010/04/05(月) 03:02:49.96 ID:kyrtMP7I
麻雀は分からんけどプログラミングが分からん
そもそも入力できない上にHello, world!しか出力しない
326 :
木炭(北海道):2010/04/05(月) 08:11:17.80 ID:jt17EKjB
>>318 アメリカから輸入している役もあるが、アメリカ式ではない。
日本のは日本式。
327 :
木炭(北海道):2010/04/05(月) 08:21:36.85 ID:jt17EKjB
328 :
木炭(北海道):2010/04/05(月) 08:55:49.09 ID:jt17EKjB
>>1 考えてみたら、早ければ40分で解けると思っている問題を掲げて「史上最大の」とか銘打ってる時点で、釣り確定だった…
もとの募集でさえ42人しか受けてないとは
>>312
329 :
巻き簀(長屋):2010/04/05(月) 09:28:18.78 ID:RW7HRr1T
>>321 たとえばチューレンで7をアガり牌として、9を頭にして1から9まで順番に
コーツ→シュンツの順番で面子を作ると
(99)(111)(234)(567)(789)がアガり型になるけど、
アタリ牌が2種類の面子で使われることもあるのを失念していたんだ。
(567)を処理した時点で(789)をスルーしてしまった。
気づけばなんてことないんだろうけど。
多分>279も最初そう組んだと思う。
結局、全部の最終型を取得したあと、
それらに対するすべての待ちを取得する関数を作った。
331 :
クレヨン(千葉県):2010/04/05(月) 10:24:12.02 ID:VurwwrEJ
ソースクレクレ
332 :
木炭(不明なsoftbank):2010/04/05(月) 10:37:39.28 ID:5MPzS1K7
void Reset_Panel(u_int-leel, u_int number)
{
if(level <MAX_LEYER)
{if(number < ONE_LEYEL)
{
Panel_num = gLAIN_Cyl[level][number]mOTcunt;
coord_init(&object2[PANEL+panel_num]};
if(gLAIN_Cyl[level][numver]mIndex == -1}
load_model((u_long )&box9_tmd, &object2[PANEL+Panel_num]};
else
load_model(set_panel_tmd_tbl{gLAIN_Cyl[leel][number]mSelectOk},
}
}
}
void init_layer(void)
{
u_int i,ii;
333 :
製図ペン(関東・甲信越):2010/04/05(月) 10:50:09.18 ID:Roe77YcO
昔VBで役や符、点数計算までするプログラム作った事あるのに
今この問題やろうとしてるけどすげー難しいな
使ってないと脳みそって衰えるな・・・
335 :
しらたき(富山県):2010/04/05(月) 17:25:17.50 ID:OQXQB/f7
まあとりあえず打つか
336 :
木炭(新潟県):2010/04/05(月) 17:58:21.76 ID:Bb8p0Kku
せっかく作ってみようと思ったのに、麻雀が全然解らん。
チェスとかバックギャモンとかでやってくれればいいのに。
337 :
木炭(dion軍):2010/04/05(月) 17:59:14.06 ID:VrI8b4OK
このスレ見てJavaScriptやってみたが
殆どCだしブラウザで手軽に実行できるしいいな
Cで簡単なプログラムでも中々一発でエラー0にならない俺には
バグ取りが凄い手間だけど
ロジックとしてはたいしたことないけど、
麻雀しらなっきゃ全くできないじゃん、コレ?
だいたいこんな中学生くらいが書けそうなロジックできたって
うちじゃ採用しねーぞ?
339 :
木炭(dion軍):2010/04/05(月) 18:34:35.00 ID:VrI8b4OK
340 :
木炭(茨城県):2010/04/05(月) 18:36:46.22 ID:Xvb3a22t
大体できたけどどうすればいいの?
341 :
ドラフト(栃木県):2010/04/05(月) 18:38:13.28 ID:U3nMVZeH
五分でできたけど麻雀のルールなんて知らないよ
342 :
木炭(dion軍):2010/04/05(月) 18:38:23.11 ID:ch6y7w6F
343 :
木炭(東京都):2010/04/05(月) 18:39:17.58 ID:5W1tCMMn
>>339 こういうのは作ったこと無いけどさ
1~136というより
マンズは01〜09
ピンズは11〜19
ソウズは21〜29
とかコードを決めればいいんじゃね?
数字は16進数ね
344 :
木炭(dion軍):2010/04/05(月) 18:46:26.05 ID:VrI8b4OK
>>343 数字の振り方はどうでもいいんだけどシャッフルし易かったし
数値の並びに対応した画像を表示させる方法が分からん
345 :
木炭(東京都):2010/04/05(月) 18:49:17.78 ID:5W1tCMMn
>>344 c#読める?
jsは経験ないからすぐには作れん
346 :
木炭(北海道):2010/04/05(月) 18:49:31.80 ID:x5dSsA/D
それは画像の一部を表示する方法がわからないってことか
それとも番号に対応する座標の求め方がわからないってことか
347 :
サインペン(関東・甲信越):2010/04/05(月) 18:52:13.02 ID:jZO8wKmK
NullPointerException
348 :
木炭(dion軍):2010/04/05(月) 18:54:52.66 ID:VrI8b4OK
>>345 Cしか出来ない
>>346 画像を表示させるプログラムなんてやった事ないから何も分からない
openGLは授業でやったけどこれとは全く関係ないだろうし
349 :
接着剤(長屋):2010/04/05(月) 18:55:34.42 ID:imC45SJc
5枚目の待ちはアリなの。
350 :
木炭(dion軍):2010/04/05(月) 18:56:29.95 ID:ch6y7w6F
>>349 出題者が麻雀って言ってるんだから無しにしてあげようよ
351 :
木炭(東京都):2010/04/05(月) 18:56:47.46 ID:5W1tCMMn
>>348 インデックスで対応させればいいだけだよ
画像切るの面倒だなw
352 :
接着剤(長屋):2010/04/05(月) 18:58:34.56 ID:imC45SJc
>>350 無しだとまた無駄な冗長処理が増えるじゃない。
>>337 Safari のデバッガは巨力で便利だよ。
それだけのためにでも入れる価値あるぞ。
354 :
木炭(dion軍):2010/04/05(月) 19:04:58.32 ID:VrI8b4OK
>>351 よく分からないから簡単な例でお願いします
画像って一つのファイルのままこの部分からこの部分まで表示みたいな事は出来ないの?
てか画像の表示ってググった感じメンドくさそうだな
355 :
木炭(東京都):2010/04/05(月) 19:10:02.88 ID:5W1tCMMn
>>354 お前の要求は全部設計しろっていってるのと変わらん
356 :
接着剤(長屋):2010/04/05(月) 19:12:26.52 ID:imC45SJc
頭の中で妄想してみると、アルゴリズムの問題なら使用メモリの制限が
必要だと思うな。
ネストしまくれば簡潔に書けると思うけど使用メモリが酷い事になりそう。
357 :
木炭(dion軍):2010/04/05(月) 19:12:31.26 ID:VrI8b4OK
>>355 え?インデックスに対応ってどういう意味?
358 :
木炭(長屋):2010/04/05(月) 19:13:30.06 ID:djmt1oEV
>>352 無しにしないと、1が13枚でもいいってことになっちゃう
359 :
木炭(北海道):2010/04/05(月) 19:13:37.28 ID:x5dSsA/D
>>354 cでやるよりhspっていう言語をゼロから始めた方が早い
360 :
木炭(dion軍):2010/04/05(月) 19:14:57.36 ID:VrI8b4OK
361 :
接着剤(長屋):2010/04/05(月) 19:15:19.73 ID:imC45SJc
>>358 待ちの話、上がり捨てたテンパイなら5枚目待つ形になる事もあるだろうし。
362 :
木炭(長屋):2010/04/05(月) 19:19:11.68 ID:djmt1oEV
>>361 それはわかってる
まあ、出力してもいいと思うけどね
待ちは待ちだから
363 :
木炭(東京都):2010/04/05(月) 19:26:38.66 ID:5W1tCMMn
全部の牌を連番管理するのにあわせてみたけどさ
1〜136じゃなく0〜135ね
http://ideone.com/mTAFg 下のような対応テーブルを用意すればいいだけ
00 01 02 03 04 05 06 07 08 00 01 02 03 04 05 06 07 08 00 01 02 03 04 05 06 07 08 00 01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16 17 09 10 11 12 13 14 15 16 17 09 10 11 12 13 14 15 16 17 09 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26 18 19 20 21 22 23 24 25 26 18 19 20 21 22 23 24 25 26 18 19 20 21 22 23 24 25 26
27 28 29 30 31 32 33 27 28 29 30 31 32 33 27 28 29 30 31 32 33 27 28 29 30 31 32 33
364 :
木炭(東京都):2010/04/05(月) 19:28:39.88 ID:5W1tCMMn
こうしたほうが早いか
画像はダブる必要がないのでこういう対応テーブルでやる
00 01 02 03 04 05 06 07 08
00 01 02 03 04 05 06 07 08
00 01 02 03 04 05 06 07 08
00 01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16 17
09 10 11 12 13 14 15 16 17
09 10 11 12 13 14 15 16 17
09 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26
18 19 20 21 22 23 24 25 26
18 19 20 21 22 23 24 25 26
18 19 20 21 22 23 24 25 26
27 28 29 30 31 32 33
27 28 29 30 31 32 33
27 28 29 30 31 32 33
27 28 29 30 31 32 33
365 :
木炭(dion軍):2010/04/05(月) 19:34:21.11 ID:VrI8b4OK
>>363 >>364 丁寧にありがとう
雰囲気は分かった
何故か手元にC#の本があるのでこれから解読します
倍プッシュだ
367 :
接着剤(長屋):2010/04/05(月) 19:39:51.79 ID:imC45SJc
>>364 実際にやる場合は16進で00〜08、10〜18〜とかで扱うべきじゃないかな。
368 :
木炭(東京都):2010/04/05(月) 19:46:23.88 ID:5W1tCMMn
>>367 全部の牌を連番で管理したいっていうからさ・・・
369 :
接着剤(長屋):2010/04/05(月) 19:48:34.79 ID:imC45SJc
書いた後に遡って
>>143読んで吊るかと思った。すまんかった。
370 :
白金耳(アラバマ州):2010/04/05(月) 19:49:50.98 ID:qJvAGmQd
麻雀知らない奴って間違いなくぼっちだよねw
371 :
木炭(東京都):2010/04/05(月) 20:05:12.39 ID:5W1tCMMn
372 :
木炭(長屋):2010/04/05(月) 20:07:21.99 ID:2yqB6wZd
プログラミングスレ見つけてわくわくして開いたら麻雀問題かよ。
麻雀のルールがそもそも分からないわい。
373 :
木炭(dion軍):2010/04/05(月) 20:08:31.19 ID:VrI8b4OK
374 :
.:2010/04/05(月) 20:13:48.00 ID:FGwJbEav
375 :
ヌッチェ(空):2010/04/05(月) 20:19:09.30 ID:UEQi1DDT
そもそも麻雀が分からない。
376 :
鑿(神奈川県):2010/04/05(月) 21:02:30.58 ID:azKAHwbo
サンマを友達と徹夜でやったらチンイツやら国司でまくって後半糞つまらなく感じた
377 :
木炭(千葉県):2010/04/05(月) 21:34:14.08 ID:JeOQd1ub BE:33497142-PLT(13333)
>>374 乙
みんな枚数から削ってく方法で解いてるなあ。俺のやりかたバカっぽすぎて泣いた
378 :
指錠(千葉県):2010/04/05(月) 21:46:39.98 ID:ZbCowdiU
>>377 放送しないの?
どんな放送か興味あるんだけど
379 :
蛸壺(大阪府):2010/04/05(月) 21:50:40.96 ID:Y3ZHPR8w
>>51 ある仕事でこんな住所の振り分けプログラム、
作られたw
速攻直してやったわ。
380 :
はさみ(長屋):2010/04/05(月) 21:51:36.87 ID:k/X55Pce
面白そうだけど、実際の麻雀で清一色になると待ちがわからなくなる俺には無理だ
381 :
木炭(千葉県):2010/04/05(月) 21:53:49.65 ID:JeOQd1ub BE:113052839-PLT(13333)
>>378 したいんだけど、面白くてかつ気軽に出来る企画が思いつかないんだよね、、
無計画に雑談してもグダるだけだし
前にニュー速コミュで、色んなプログラミング言語を習得するって放送やったんだけど、
これは結構いい感じだったからその路線でやっていこうとは思ってる
>>380 あんまり実際の麻雀の知識は関係ないと思う
人のようにPCは考えられないし
PC麻雀なんて、乱数振って、天和、地和出して、ぶっ飛びGame Overでええやん。
ほ
385 :
インク(東日本):2010/04/06(火) 18:51:38.81 ID:mOLIn+Du
そういえばネットで本格的なドンジャラって見ないね
386 :
インク(香川県):2010/04/06(火) 18:55:31.62 ID:5J5YQze4 BE:798631027-2BP(1)
ドンジャラって麻雀となにがちがうの?
387 :
消しゴム(アラバマ州):2010/04/06(火) 19:00:00.97 ID:fkwJg20b
囲碁や将棋やチェスは思考ルーチンの強さを競う大会やったり
人間と比べて強いとか弱いとか真剣に取り組まれてるけど
麻雀でそういうのって全然聞かないよな。何でだろう?
>>387 麻雀は局?が終わったら混ぜて積みなおしするからねえ
ランダム要素が入るからじゃないの?
>>387 運の要素が入ってくるし、ゲーム木が大きすぎて話にならないんじゃね?
390 :
プリズム(東日本):2010/04/06(火) 19:09:58.59 ID:fssaSq59
ついに天鳳雑魚狩りできなくなったな
391 :
インク(東日本):2010/04/06(火) 19:12:57.98 ID:mOLIn+Du
392 :
ちくわ(富山県):2010/04/06(火) 19:18:24.29 ID:FgXvuX8v
すぐに対々和作りたがる奴はドンジャラの方が向いてる
いただきじゃんがりあん
ドンジャラ 3枚のトイツを3組作る
あと1枚で上がれるときは必ずリーチ 鳴いててもリーチ
あとなんだっけか
395 :
オシロスコープ(東京都):2010/04/06(火) 20:50:21.40 ID:ghT0Q7lO
396 :
ばね(長屋):2010/04/06(火) 20:57:03.21 ID:6nt0aNje
397 :
ろうと台(神奈川県):2010/04/06(火) 23:59:11.81 ID:ptX4X8Tw
398 :
コイル(茨城県):2010/04/07(水) 00:12:10.65 ID:4pjnqM1y
399 :
烏口(dion軍):2010/04/07(水) 00:28:02.13 ID:o5TYdzep
正規表現で「同じ数字3つ」と「数字3連続」を消してって
最後に待ち状態が残ったらOK! …っていうのを思いついたんだけど、
「223344」を「(234)(234)」にできないので死んだ('A`)
でも実際に数字が連続してる必要はないのかな?
i, j ,kを連続した数字だと仮定したら、「i(\d*)j\(d*)k」に引っかかればOKかな。
お、イケそうな気がしてきた どうかな?
細かい仕様はこっちで決めればいいんでしょ。
言わないほうが悪い。
401 :
まな板(アラバマ州):2010/04/07(水) 01:11:05.91 ID:jIr41eco
天鳳理不尽過ぎる
403 :
374 :2010/04/07(水) 01:59:58.64 ID:JZmyFExF
正規表現で「同じ数字3つ」と「数字3連続」を消してって
最後に待ち状態が残ったらOK! …っていうのを思いついたんだけど、
「223344」を「(234)(234)」にできないので死んだ('A`)
でも実際に数字が連続してる必要はないのかな?
i, j ,kを連続した数字だと仮定したら、「i(\d*)j\(d*)k」に引っかかればOKかな。
お、イケそうな気がしてきた どうかな?
404 :
泡立て器(アラバマ州):2010/04/07(水) 03:28:37.57 ID:d9Xep0Wk
こ か / `丶´ ̄ ̄ '' ‐- - - - ァ
か \ヾ / /ア| ,, -‐ '' /
い っ / >::/\/ /' |∧ヾ `丶 /
て \/::_/ ', ミ /
よ ┌ゝ / \ / i ::l / ニュー速部屋は誰でもウェルカム
./\l/:: :::} f:(_)ヽ .r(_)、l :::l ',
http://tenhou.net/0/?C33527612 /\/ /| ..::ノ {O:c::j {::c::::}| :::| ヽ ※新人でも打てるようになりました!
/ | :/:::{ `ー´.._, 、__ ー ´| :::| ;;\ゞ
{´ヽ、|/レ小、. { _ノ ノ :/|/ヾ、l
ゝ ヽ..、_r-ヾ¨ TE_ァ ヾ´V |/
/`¨_} } ∨ \|l / ,,/ヽ
{ゝ、Y´__ノ--´/ ヾ/´ \
{ ○ |/ ヾ
. /`7ー⌒ヾーT ヾ ヽ /}
└/t--/,,_|_.|/´ヽ_ノ三ノ
ヽ::::::', ヽ::::::',
405 :
蛍光ペン(関東・甲信越):2010/04/07(水) 03:34:10.85 ID:BesbrS8k
いつの間にか般卓に四段R1800↑は入れなくなったんだな
たまにタブ切り替え忘れて誤爆しちまうことがあったから有り難いわ
ラス親の3巡目リーチ見飽きた
407 :
泡立て器(アラバマ州):2010/04/07(水) 03:53:50.02 ID:d9Xep0Wk
1級が上卓に入れるようになったのにはどんな意味があるんだろう
408 :
ペン(東京都):2010/04/07(水) 04:18:17.99 ID:c+QHeFZW
問題麻雀じゃなくてトランプとかにして欲しかった
409 :
フードプロセッサー(兵庫県):2010/04/07(水) 04:20:49.45 ID:bkYxi+wE
そもそも麻雀のルールがよく分からない件について。
これな10数年前の高校在学中に麻雀はやった際に点数計算用にプログラム作りかけたことあるな
あの頃符はねの計算さっとできんかったから、組んだら今後簡単じゃねぇと思いQCで組み始めて途中で挫折したあの遠い日
たぶん今でもどっかに残骸ソースのこってるかもしれん(´_ゝ`)
学校の中型汎用のリールのどっかに埋もれてるんだろうな・・・。
411 :
泡立て器(アラバマ州):2010/04/07(水) 04:47:57.27 ID:d9Xep0Wk
誰か来いよ
412 :
ダーマトグラフ(アラバマ州):2010/04/07(水) 08:13:34.87 ID:XxqXWoWG
面白そうかと思ったが麻雀分からないし、仕様が足りない。
414 :
鉛筆(熊本県):2010/04/07(水) 10:07:57.33 ID:zY5K+lid
415 :
上皿天秤(アラバマ州):2010/04/07(水) 10:13:00.56 ID:GHwiRr2k
頭の悪そうな問題だ
416 :
漁網(東京都):2010/04/07(水) 10:19:22.24 ID:7OelEqtM
さっきちょっと考えたんだけど12枚を昇順にソートしたのを一個ずつローテートしながら12周回して、
毎回先頭からシュンツ・コーツ・頭を作っていって、12枚処理したタイミングで待ちが2つ以上残ってたらNG、みたいなアルゴリズムってだめかな
418 :
ダーマトグラフ(アラバマ州):2010/04/07(水) 12:45:30.82 ID:XxqXWoWG
>>416 1111222233335
みたいなので 123のシュンツを考慮しないといけないケースがある
419 :
泡立て器(アラバマ州):2010/04/07(水) 15:11:22.72 ID:d9Xep0Wk
よるまでほすたのむ
420 :
厚揚げ(富山県):2010/04/07(水) 15:25:37.58 ID:JVe1EKRs
チャンタは面前3翻食い下がり2翻、純チャンは面前4翻食い下がり3翻にしろ
421 :
エリ(大阪府):2010/04/07(水) 15:43:04.13 ID:iiytJz9A
>>143 ┌──┐┌──┐
│ ││ │ . ノノノ
│. ◎ .││ │ (゚。゚)
│ ││ │ ( ミ
└──┘└──┘ ┴┴
解答すでに出た?
423 :
すりこぎ(アラバマ州):2010/04/07(水) 16:04:50.14 ID:iFg7nTNO
>>388-389 運の要素はあるけど数打てば強さ比較は充分出来ると思うんだ。
プログラム同士の対戦ならそれこそ何百回何千回と打たせたっていいわけだし。
あと麻雀はそこそこの強さの思考ルーチン作るのはおそらくそんなに難しくない。
極端な話、チートイやトイトイを狙うだけのプログラムでも上手い人間相手にしても1割ぐらいはトップ取れると思う。
もっと工夫すれば工夫しただけ勝率は上がってくだろうし。
将棋や囲碁の思考ルーチンプログラミングに比べたらかなり敷居は低いんじゃないかな。
424 :
セラミック金網(沖縄県):2010/04/07(水) 17:05:54.99 ID:etvHoevc
>>423 どうかな?
「自分の手」だけを見てあがりだけを目指す思考ルーチンなら簡単に作れるだろうし、既にあるだろう
でもそれじゃ独りよがりの麻雀になるし、強さに限界が来る
ハイ効率を最適化するだけでも、初心者にとっては強い思考ルーチンだろうけどね
でもひたすら突っ込んでくる相手ってのは慣れれば簡単にいなせるし、相手としてはつまらない
だから話題にならないんじゃないかな
それ以上の強さにするためには、河や点数、オーラスとかの状況も評価基準にいれなきゃならん
盤面の評価関数が極端に難しそう
いわゆる、二人零和有限確定完全情報ゲームじゃないからオセロや将棋なんかの思考ルーチンに使われるαβ法が使い物にならないだろうし
でも作ろうとしてるやつはいっぱいいるんじゃねーの?話題にならないだけで
どういうアルゴリズム使ってんだろ
俺できたわ
何これ?どこのサイトに報告すればいいの?
まぁする気ないけどさ
426 :
画鋲(愛知県):2010/04/07(水) 17:12:05.37 ID:GmF+qq4T
麻雀もできない奴にコーディングする資格ねーよカスってことか
427 :
銛(dion軍):2010/04/07(水) 17:15:41.24 ID:7lAT8uH2
428 :
手枷(東京都):2010/04/07(水) 17:30:13.75 ID:NPAXN+xB
>>427 わらたー!
上のが面白い。
こういうのもっと見たいわ
429 :
修正液(千葉県):2010/04/07(水) 17:35:14.91 ID:4eIi4frD BE:50246126-PLT(13333)
430 :
のり(三重県):2010/04/07(水) 17:59:12.37 ID:Efj640TE
431 :
ペン(東京都):2010/04/07(水) 18:33:42.63 ID:c+QHeFZW
これって
同じ数があったらキープ
3つあったら()に入れる
2つなら[]に入れる
隣り合う数があったらキープ
3つあったら()に入れる
()()()[]
になるところで終了
じゃダメなん?
なんか複雑なやり取りがあるのかな
おすすめのC言語の定跡集教えて
433 :
修正液(千葉県):2010/04/07(水) 18:47:40.31 ID:4eIi4frD BE:58619472-PLT(13333)
定石?挙げていこうぜ
#define ASSERT(ASSERTION) if(!(ASSERTION)) *((int*)0)=0
標準のassertはabortするからデバッグしずらい
434 :
修正液(dion軍):2010/04/07(水) 20:04:00.26 ID:6glHlKqT
435 :
ガスクロマトグラフィー(東京都):2010/04/07(水) 20:25:23.68 ID:GyDHMXRx
スレ違いにも程があるでゲソ
436 :
ダーマトグラフ(アラバマ州):2010/04/07(水) 20:46:48.38 ID:XxqXWoWG
437 :
付箋(dion軍):2010/04/07(水) 20:50:42.38 ID:5E00N9io
特技がメンチンの待ち一発当てな麻雀漫画の主人公がいたろ
メンチンとか自分でも気付かない場合があるのに・・・
俺には無理だな
全然ルールが分からないんですが・・・
高校の時にポケコンでポーカーを作って居たが、役の判定とジョーカーの処理で悩んだのを思い出した。
この問題は少し考えてみたい。
BEASICしかできないけど。
まず、14枚でアガリの形を全て検出するプログラムを作り、次に13枚に対して9枚を総当たりで検索したら良いんだろう。
つまり14枚のアガリ形を検出するのがほぼ全てだな。
14枚での判定。
ステップ1
同じ牌が2枚あれば、それをアタマとして固定する。
ステップ2
(固定されていない)ある牌は暗子になるか?ならないなら順子になるか?
どちらもならなければアガリ無し。
暗子になる場合、それを暗子として固定して、他の牌に対してステップ2。
暗子にならず、順子になる場合。
その牌が一種類の順子にしかならないなら、その順子で固定して他の牌に対してステップ2
二種類以上の順子になるならば、一つずつ固定しながらステップ2
このステップを4回こなせればアガリ形。
「固定する」とは、他の牌が暗子や順子になるか調べるとき、固定した牌はその候補に入れない事を指す。
11112345678999の時。
11をタアマにしたら123を順子にした時点で1が浮いてアガリ無し判定。
続く
99をアタマにしたら111がトイツ判定をクリアして後は順子判定をクリア。
11123455678999の時。11をアタマにしたら123の順子が固定され、456が固定され、もう一つの5が順子にならな
い時点でアガリ無し判定。99でも同じようなもの、当然55ならクリア。
11122233355577
の場合。
111のトイチ判定の後で123の順子も判定する。
理論に穴がなければ、ベーシックでなら組めそうに思えるけど…。
そもそも乱文な上、携帯からだから益々イミフな文章だろうからスルー推奨w
やはり携帯からの長文カキコはしんどかったまともに推敲できんし、コピペも細切れだからやばい、暗子がトイチと書いてたり、アタマがタマア?になってたりイミフ…。
しかし理論はあってる気はする…。
そもそもトイチじゃなくてトイツだろ、本格的に脳がヤバく思えてきた…w
1〜9の枚数の配列つくる
1〜9でループ
2枚以上あったら頭にして、枚数-2して
残りもさらにループして待ちの組み合わせを作る。
待ちは起点+2までの
頭と待ちの組み合わせ(もしくは頭単騎)を先に決めてから
残りの12枚(or9枚)で刻子順子の組み合わせ作っていった。
448 :
374:2010/04/08(木) 01:19:00.02 ID:vclJ3/AF
>>403で書いた正規表現版を実装してみた。javascriptで3時間ぐらい。
http://www1.axfc.net/uploader/Sc/so/101156.txt 例:1122233344555
⇒1で暗刻は作れない
⇒123が作れる (123)1223344555
⇒123が作れる (123)(123)2344555
⇒234が作れる (123)(123)(234)4555
⇒5の暗刻か対子 (123)(123)(234)(55)[45]
(123)(123)(234)(555)[4]
⇒234をスルー 345を作る (123)(123)(345)2455
⇒55が雀頭 (123)(123)(345)(55)[24]
…以下略
こんな感じでうまくできたよー 重複判定がダサいけど!
449 :
振り子(東日本):2010/04/08(木) 01:58:22.82 ID:4ICX/PWK
1233344557779
1123555677889
これがうざい
俺には無理だ(´・ω・`)
これくらい仕様が固まってるならできる自信はありますが麻雀言語がさっぱりです
451 :
修正テープ(千葉県):2010/04/08(木) 04:26:01.09 ID:oj3TN657 BE:104678055-PLT(13333)
>>448 ななついし?っていうのは
/^(?:(.)\1)*(.)(?:(.)\3)$/ (待ちは$2)だけでマッチ出来そう
452 :
修正テープ(千葉県):2010/04/08(木) 04:27:01.01 ID:oj3TN657 BE:83742645-PLT(13333)
間違えた
/^(?:(.)\1)*(.)(?:(.)\3)*$/
453 :
修正テープ(東京都):2010/04/08(木) 04:31:17.23 ID:mDA8X4Vf
ななついし・・・ちーといつ・・・
>>448 1112223334455
の入力で
(111)(222)(333)(55)[44]
(123)(123)(123)(55)[44]
(123)(22)(345)(345)[11]
(123)(234)(234)(55)[11]
が抜けてると思うよ
なんか短時間でできる代物じゃないな
ルール知らなければどういうパターンがOKなのか
判断しようがないな
というかこのスレよくもってるなw
4/4に立ててそのままかよw
456 :
拘束衣(仏):2010/04/08(木) 08:02:11.61 ID:Mx0p0ie8
飛行機内で暇そうだからやってみるか。
麻雀は知らないけど、大貧民の階段と複数枚だしみたいなもんだろ。
大貧民領域ならカバーできるはず。
力業でも出来なくはないね。
13牌に、(使い切っていなければ)1-9までの一つを追加して14牌に。
コレであがりの形なら、追加したのが待ち。
あがりかどうかの判定:
{順子を一つ抜く、刻子を一つ抜く、まだ抜いてなければ雀頭を一つ抜く}をツリー状に全探索
残り牌が0になってるリーフを出力
1.手牌から可能な順子、刻子の組み合わせを列挙する
2.手牌から1で作った順子や刻子3個を引く(引けなければその組み合わせはないので次を検索)
3.2を通過したら、残り4枚になり上がりがあるか探索する
3.具体的には1〜9のうち1個足して、対子1個、面子1個になるか調べる
4.3の対子は雀頭となるが、3で追加した牌が対子に含まれていれば単騎マチとして扱う
どうせ3枚単位なんだから3個ずつ抜けばいい
考えてみれば1を省略して、123,234,345,456,567,678,789と
111,222,333,444,555,666,777,888,999を引いて行けば楽だな
459 :
ロープ(関西・北陸):2010/04/08(木) 12:22:03.09 ID:fcy8if8q
募集中
460 :
修正テープ(東京都):2010/04/08(木) 16:05:51.05 ID:rrnGR2cg
あげ
あげ
462 :
修正テープ(東京都):2010/04/08(木) 16:19:34.56 ID:rrnGR2cg
あげ
463 :
綴じ紐(関東):2010/04/08(木) 16:50:18.41 ID:D68IPKUW
>>458 1122445577888
とかだと3組引けない
464 :
綴じ紐(関東):2010/04/08(木) 16:51:49.76 ID:EWC9DTvu
Scheme使いだから、まっさきに再帰(引数をとれるgotoジャンプ)を使ったアルゴリズムが頭に浮かんだ
「待ちの形」とは、「手牌の中の2牌であって、あと1枚牌を追加すれば順子or刻子になるもの」か
「手牌の中の1枚であって、あと一枚の牌の追加でアタマになるもの」とする
以下の4つの引数をとるチェック関数を再帰的に呼び出す
引数a:待ちの形を既に固定したか否かのフラグ
引数b:アタマを既に固定したか否か
引数c[]:残りの手牌
引数d[]:待ちの形
(プログラム実行開始時は、F(偽, 偽,13枚の手牌,空リスト)を呼び出す)
呼び出されたFは、常に引数c[]内の数字が最小の牌 K に注目する
もしも(a, b, C[]) == (偽, 偽, 空でない)なら
C[]内でKが[]KK'の形の順子待ちの形をとれるかチェックする
もしもとれるなら
C[]からKとK'を取り除いたC'[]を作成し、F(真, b, C'[], KK')を呼び出す
この調子で「待ちを決めるか、順子刻子を決めるか、アタマを決めるか」をやって
できないなら返る、できるなら再帰的にFを(引数を変えて)呼び出す
Fが呼び出された時に手牌がなくなっていて、待ちもアタマもあるならそれを記録する
後は記録の中の重複(かなりある)を整理して出力
465 :
裏漉し器(アラバマ州):2010/04/08(木) 16:53:19.17 ID:TY48zX5/
>>457 力技っつーか、まずは14牌で考える方がエレガントな解法っつーか正攻法な気がするな。
>>465 まあそうだよな
13牌で判定する仕組みがいるのはリーチかけるときに
リーチしていいかの安全機能を実装するときくらいだよな
467 :
綴じ紐(関東):2010/04/08(木) 17:00:53.66 ID:D68IPKUW
>>457 14牌でツリーを作るなら
13牌でツリーを作って
残り牌が1か2の葉で待ちを特定すればいいと思う
14牌のツリーを1-9で作って
待ちを特定する処理も必要だし
>>466 そうそう。あとは流局時のノーテン罰符と、安全機能を実装してない場合のノーテンリーチ判定くらい。
34種に拡張すると国士無双と南北戦争の判定が必要になるんだな。
十三不搭の扱いはどうなるんだろう。
472 :
綴じ紐(関東):2010/04/08(木) 17:49:23.26 ID:D68IPKUW
>>469 ノーテンは待ち無しを出力しないといけない仕様
>>472 >・待ちがないときは何も出力しないでください
474 :
漁網(長屋):2010/04/08(木) 19:50:45.20 ID:E/Z5UHa8
プログラマとしては凡人だと自覚しているが
麻雀ゲーム作ってるからできて当たり前でスキル判定に参加出来ない
475 :
首輪(東京都):2010/04/08(木) 19:57:38.59 ID:xxWjoLeK
>>474 業界標準のアルゴリズムあるならどんなのか聞きたい
・数字を13個入力し、1萬〜9萬の個数を設定
・1萬2萬3萬の個数がそれぞれ1個以上なら1個ずつ減らす
・減らした場合、もっかい1萬2萬3萬から、減ってない場合2萬3萬4萬で取捨を調
べる(以下7萬8萬9萬までループ)
・↑で順子を下から3組とれた場合のみ、残り4枚の数字を頭+ターツか面子+
単騎かで聴牌を判断
・同様に下から順子、順子、刻子をとり、4枚判断
・同様に下から順子、刻子、順子を(ry
こんな感じで下から3面子抜けばいいんじゃね?
それか、あらかじめ全ての配牌に対し答えを入力しておけばw
477 :
修正テープ(千葉県):2010/04/08(木) 20:09:34.10 ID:oj3TN657 BE:58619472-PLT(13333)
>>464 俺はそれで解いたよ
でもこのスレ見る限り、全牌の枚数をリストでもって、そっから引いていく方法が一番カッコイイな
478 :
漁網(長屋):
>>475 標準かどうかしらんけどこんな感じで穴はないはず・・・?
1 とりあえず一萬から順に1枚足して14枚にする
2 9個の配列作ってそれぞれの牌が何枚あるか入れておく
3 一萬から順に2枚あるかどうかチェックしてあったら配列から2を引く(1つ見つかったら次へ)
4 一萬から順に3枚あるかどうかチェックしてあったら配列から3を引く
5 一萬から順に時順子のチェックして配列から各1枚引く
6 無事雀頭と4面子見つかったら和了り。1で足した牌を待ち牌として出力
7 2〜6を順子>刻子の順にチェックするパターン、順子を987からチェックするパターンの4通り調べる
8 七対子かどうかは別にチェックする(34枚なら国士も)
9 1に戻って足す牌を変えて繰り返す
点数計算とか省いたらこんなもん?