ひろゆき杯プログラミングコンテストを開きましょう。
たたき台を書いておきますので、みんなでいろいろとアイデアを出し合って
実現に向けてがんばりましょう。
プログラムテーマ
大富豪4人勝負
試合進行方式
麻雀の大会に順ずる
使用言語
Java
実行方法
ソースを提出してもらって俺様マシンで実行(Atom 1.6GHz)
ふぅ、Javaかぁ
他の言語ではダメなの
4人は人間それとも人工X能
>麻雀の大会に順ずる
こんな横着な説明で参加する奴がいるわけがない
4 :
デフォルトの名無しさん:2009/10/13(火) 17:22:17
>>2 > ふぅ、Javaかぁ
> 他の言語ではダメなの
どんな言語がいいですか?
> 4人は人間それとも人工X能
4人ともコンピュータです。
>>3 > こんな横着な説明で参加する奴がいるわけがない
『咲-Saki-』みたいにしましょう。4人対戦で上位2人が勝ち抜け
>どんな言語がいいですか?
VB.NETやらC#やらC++CLIやら
>4人対戦で・・・・
作ったプログラム同士をどうやって対戦させるんだ?
>>5 プログラムのビット列をライフゲームに食わせて最後まで生き残ったバイナリが優勝。
フロントエンドというか司会役のプログラム(カード受け渡しや状況情報のインターフェイス等
を決めて)を誰かが作って、プレイヤーをみんなで作って誰が強いかを競い合う?
プログラム同士の戦いなら、差が開くまでエンドレスに試合を続けるのが常識だろ。
運の要素なんか入れたら人工知能の意味が無い。
ランキングは近い順位のプログラム同士で競い合い、1位に+2pt,2位+1,3位-1pt,4位-2pt
それを永遠と繰り返す。
主催するならサーバープログラムとAPIを公開しそれに準拠するように挑戦者がプログラムを組む。
もちろんサンプル挑戦者プログラム込み。
そこまで用意しても果たして参加者が何人出るか微妙だろう。
まぁ期限なしでずっと公開続ければ、そこそこ面白いとは思うけど。
主催者はその程度は覚悟してるのか?
>>1 コンパニオンプログラム組んでくれよ。
個人的にはC/C++かJavascriptしかできないが。
10 :
デフォルトの名無しさん:2009/10/13(火) 18:57:34
運も実力のうち
なんで唇杯なんだよ
>>10 確率で変動する誤差を吸収しないプログラミングコンテストに参加するプログラマって
相当な馬鹿だろ、だれがそんなもんに参加するんだ?
しばらくは様子見るけど流れがその方向に進んだ時点でこのスレ見るのやめるわ。
ネタスレで何言ってんだコイツ
大富豪のルール決めろよ
ローカルルール大量にあるんだから
縦の連続数字がOKじゃないと嫌
大富豪は、それぞれ100試合することにしましょう。
大富豪ルールは Wikipedia準拠とします。
ローカルルールは使いません。
17 :
デフォルトの名無しさん:2009/10/13(火) 21:33:35
コンピュータ将棋のボナンザは渡辺竜王に1回負けただけで「人間の勝ち」と言われてしまったな。
詳しくは「運命の一手」で検索しる
面白そうだな。JavaでOKなら俺も参加する。
ていうか、むしろ裏のシステム作るほうが楽しそうだw
JavaならRuby、Javascript、Scheme、Scalaとかそこそこ他言語だし、
プレイヤーが実装すべきインターフェイスもカッチリ決められるからいいんじゃないかと思うが。
>>17 人間vsCPUの場合は人間の体力に限界がある、
それに人間との対戦は金がかかるし、この場合は主催者の求めた結果だったから良いんだろ。
それこそ疲れないCPUと300時間連続対戦して勝ち越すことのできる人間なんているわけない。
にしても、人間vsCPUで将棋を正確に判断するなら、最低でも三本先取は必要だとおもう。
ちなみに、将棋の場合、「運」と呼ばれるランダム因子は0だからね。
トランプや麻雀の場合は最初に与えられた札がランダムだから、ランダム因子は極端に大きくなる。
そのため試合回数を極端に大きくしないと、毎回最強となるアルゴリズムが二転三転する羽目になるよ。
その日によって、優勝が異なるアルゴリズムコンテストじゃ意味ないわな。
>>18 > ていうか、むしろ裏のシステム作るほうが楽しそうだw
作って!
大富豪よりもふさわしいと思うものがあれば、それに変えてもいいし
ルール、運用方法なんかも変えてもいいし。
> ちなみに、将棋の場合、「運」と呼ばれるランダム因子は0だからね。
羽生と渡辺が100回対戦したら、どちらかが100回勝つわけではない。
羽生が60回勝って、渡辺が40回勝てば、羽生が強いと言えるが、
1回勝負でたまたま渡辺が勝って
>>20 > 大富豪よりもふさわしいと思うものがあれば、
ちなみに、最初はポーカーにしようかと考えた。
けど、なんかいまいちだと思った。
なんだこの寒いスレは、ゲ製板でやってろよ
言語の規定って必要か?
プロトコル決めてソケットとかでサーバと通信できればいいんじゃないかな
後は動作OSとか定めるといいかも
むしろVIPでやれ
26 :
デフォルトの名無しさん:2009/10/13(火) 23:17:42
>>23 プログラムコンテストなんで、例えば画像認識の課題などにしようかと思った。
だから、第2回目のコンテストなんかではゲーム以外の課題になるかもしれない。
27 :
18:2009/10/13(火) 23:34:03
とりあえずインターフェイス書いてみるぜ。Javaで。
>>24 そこまでするの面倒じゃね?各プレイヤに「手番来たよ」ってコールバックしないといけないし。
ひとまずJavaで作って、そこからソケットや他言語にブリッジするってのでいいんじゃね?
>>21 人間には不確定な部分が有るからそうなる(プログラムでも確率的に手を決めるなら不確定になる)
ただ、将棋っていうゲーム自体に運というのはなくて、
歩を動かしたいなら意思どおりに動かせるし(運によらない)
初期配置も決まっている
31 :
18:2009/10/14(水) 01:36:48
こんな感じでプレイヤーのインタフェイスを定義してみたんだけどどうだろう。
これでよければ、ルールを実装してゲームに仕上げてみようと思うんだが。
/** プレイヤーのインタフェイス。挑戦者はこのクラスを実装する。 */
public interface Player {
public void init(GameMaster gameMaster, List<Card> cards, int playerNum); //初期化
public List<Card> sendCard(); //ターン毎の自分の手を返す。パスの場合は長さ0のリストで。
}
/** ゲームの状況を問い合わせるためのインターフェイス。 */
public interface GameMaster {
public boolean isValid(List<Card> cards); // 引数の手が大富豪のルールに則っているか確認
public Turn prevTurn(); // 自分の手番の直前の手を見る
public Round currentRound(); // 今回のラウンドの全部の手を見る
public List<Round> allRounds(); // 今回のゲームのすべての手を見る
}
どうでもいいよ
>>1 はひろゆきと関係あるの?
勝手に名前を使ってるだけ?
関係ないんじゃね?
ひろゆき既に関係ないしなw
言語をJavaに限定するなら、タイトルも
「Javaプログラミングコンテスト」
にすべきだよ。まぎらわしい。
個人的には
>>24の提案に賛成する。
>>18は言語とVMの違いを知らないお馬鹿さん。
>>33 いや、唇とはかぎらんだろ。
べつのひろゆきかもしれんし。
今「Rubyを256倍使うための本 網道編」を読んでいるんだけど、
これに自律ロボットなネットワーク対戦型ゲームの作り方が
詳しく解説されているんだ
もしRubyでもオケーになったら、漏れも参加したいな
だったらぶっちゃけYahooゲームの大富豪に乗りこんでここでID公開
なるべく公開ID同士を戦わせて、ランキング競った方が早くね?
当然ここの人間なら全自動ID作れるよな?
40 :
デフォルトの名無しさん:2009/10/14(水) 20:00:12
GJ!
おれそっちに参加するわ。
終わってるじゃんorz
>締め切りは 2008/11/09(Mon.) です。
ん、2008年?って事は開催は締め切りから1年後?w
書き間違いっぽいので、運営に問い合わせてみたら?
ひろゆきさんに通報するべきレベル
46 :
デフォルトの名無しさん:2009/10/16(金) 00:43:06
っ[core wars]
また立て逃げの企画厨か!
ちょいちょいっとサーバーを作ってくれる猛者はいないの?
ネットワーク対戦だとしたら、先にプロトコル仕様を決めないと、
誰にもサーバは作れないよ。
>>1は、そんな気ねーだろ。
〜〜〜終了〜〜〜
今更ひろゆきの名前が2chで出るとは思わなかった
ゴミに何を言われても
結局ただのゴミだったんだな
土方が何をほざいて
これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど
もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ
ゴミだし