ひろゆき杯プログラミングコンテスト

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ひろゆき杯プログラミングコンテストを開きましょう。

たたき台を書いておきますので、みんなでいろいろとアイデアを出し合って
実現に向けてがんばりましょう。

プログラムテーマ
大富豪4人勝負

試合進行方式
麻雀の大会に順ずる

使用言語
Java

実行方法
ソースを提出してもらって俺様マシンで実行(Atom 1.6GHz)
2デフォルトの名無しさん:2009/10/13(火) 17:08:55
ふぅ、Javaかぁ
他の言語ではダメなの
4人は人間それとも人工X能
3デフォルトの名無しさん:2009/10/13(火) 17:12:48
>麻雀の大会に順ずる
こんな横着な説明で参加する奴がいるわけがない
4デフォルトの名無しさん:2009/10/13(火) 17:22:17
>>2
> ふぅ、Javaかぁ
> 他の言語ではダメなの

どんな言語がいいですか?

> 4人は人間それとも人工X能

4人ともコンピュータです。

>>3
> こんな横着な説明で参加する奴がいるわけがない

『咲-Saki-』みたいにしましょう。4人対戦で上位2人が勝ち抜け
5デフォルトの名無しさん:2009/10/13(火) 17:26:43
>どんな言語がいいですか?
VB.NETやらC#やらC++CLIやら

>4人対戦で・・・・
作ったプログラム同士をどうやって対戦させるんだ?
6デフォルトの名無しさん:2009/10/13(火) 17:36:34
>>5
プログラムのビット列をライフゲームに食わせて最後まで生き残ったバイナリが優勝。
7デフォルトの名無しさん:2009/10/13(火) 17:41:02
フロントエンドというか司会役のプログラム(カード受け渡しや状況情報のインターフェイス等
を決めて)を誰かが作って、プレイヤーをみんなで作って誰が強いかを競い合う?
8デフォルトの名無しさん:2009/10/13(火) 18:50:49
プログラム同士の戦いなら、差が開くまでエンドレスに試合を続けるのが常識だろ。
運の要素なんか入れたら人工知能の意味が無い。
ランキングは近い順位のプログラム同士で競い合い、1位に+2pt,2位+1,3位-1pt,4位-2pt
それを永遠と繰り返す。
主催するならサーバープログラムとAPIを公開しそれに準拠するように挑戦者がプログラムを組む。
もちろんサンプル挑戦者プログラム込み。
そこまで用意しても果たして参加者が何人出るか微妙だろう。
まぁ期限なしでずっと公開続ければ、そこそこ面白いとは思うけど。
主催者はその程度は覚悟してるのか?
9デフォルトの名無しさん:2009/10/13(火) 18:55:40
>>1
コンパニオンプログラム組んでくれよ。
個人的にはC/C++かJavascriptしかできないが。
10デフォルトの名無しさん:2009/10/13(火) 18:57:34
運も実力のうち
11デフォルトの名無しさん:2009/10/13(火) 19:00:52
なんで唇杯なんだよ
12デフォルトの名無しさん:2009/10/13(火) 19:05:54
>>10
確率で変動する誤差を吸収しないプログラミングコンテストに参加するプログラマって
相当な馬鹿だろ、だれがそんなもんに参加するんだ?
しばらくは様子見るけど流れがその方向に進んだ時点でこのスレ見るのやめるわ。
13デフォルトの名無しさん:2009/10/13(火) 19:43:25
ネタスレで何言ってんだコイツ
14デフォルトの名無しさん:2009/10/13(火) 20:09:58
大富豪のルール決めろよ
ローカルルール大量にあるんだから
15デフォルトの名無しさん:2009/10/13(火) 21:30:44
縦の連続数字がOKじゃないと嫌
16デフォルトの名無しさん:2009/10/13(火) 21:31:00
大富豪は、それぞれ100試合することにしましょう。
大富豪ルールは Wikipedia準拠とします。
ローカルルールは使いません。
17デフォルトの名無しさん:2009/10/13(火) 21:33:35
コンピュータ将棋のボナンザは渡辺竜王に1回負けただけで「人間の勝ち」と言われてしまったな。

詳しくは「運命の一手」で検索しる
18デフォルトの名無しさん:2009/10/13(火) 22:07:21
面白そうだな。JavaでOKなら俺も参加する。
ていうか、むしろ裏のシステム作るほうが楽しそうだw

JavaならRuby、Javascript、Scheme、Scalaとかそこそこ他言語だし、
プレイヤーが実装すべきインターフェイスもカッチリ決められるからいいんじゃないかと思うが。
19デフォルトの名無しさん:2009/10/13(火) 22:30:52
>>17
人間vsCPUの場合は人間の体力に限界がある、
それに人間との対戦は金がかかるし、この場合は主催者の求めた結果だったから良いんだろ。
それこそ疲れないCPUと300時間連続対戦して勝ち越すことのできる人間なんているわけない。
にしても、人間vsCPUで将棋を正確に判断するなら、最低でも三本先取は必要だとおもう。
ちなみに、将棋の場合、「運」と呼ばれるランダム因子は0だからね。
トランプや麻雀の場合は最初に与えられた札がランダムだから、ランダム因子は極端に大きくなる。
そのため試合回数を極端に大きくしないと、毎回最強となるアルゴリズムが二転三転する羽目になるよ。
その日によって、優勝が異なるアルゴリズムコンテストじゃ意味ないわな。
20デフォルトの名無しさん:2009/10/13(火) 22:32:35
>>18
> ていうか、むしろ裏のシステム作るほうが楽しそうだw

作って!

大富豪よりもふさわしいと思うものがあれば、それに変えてもいいし
ルール、運用方法なんかも変えてもいいし。
21デフォルトの名無しさん:2009/10/13(火) 22:35:07
> ちなみに、将棋の場合、「運」と呼ばれるランダム因子は0だからね。

羽生と渡辺が100回対戦したら、どちらかが100回勝つわけではない。
羽生が60回勝って、渡辺が40回勝てば、羽生が強いと言えるが、
1回勝負でたまたま渡辺が勝って
22デフォルトの名無しさん:2009/10/13(火) 22:36:22
>>20
> 大富豪よりもふさわしいと思うものがあれば、

ちなみに、最初はポーカーにしようかと考えた。

けど、なんかいまいちだと思った。
23デフォルトの名無しさん:2009/10/13(火) 22:46:47
なんだこの寒いスレは、ゲ製板でやってろよ
24デフォルトの名無しさん:2009/10/13(火) 22:56:39
言語の規定って必要か?
プロトコル決めてソケットとかでサーバと通信できればいいんじゃないかな
後は動作OSとか定めるといいかも
25デフォルトの名無しさん:2009/10/13(火) 22:59:15
むしろVIPでやれ
26デフォルトの名無しさん:2009/10/13(火) 23:17:42
>>23
プログラムコンテストなんで、例えば画像認識の課題などにしようかと思った。
だから、第2回目のコンテストなんかではゲーム以外の課題になるかもしれない。
2718:2009/10/13(火) 23:34:03
とりあえずインターフェイス書いてみるぜ。Javaで。

>>24
そこまでするの面倒じゃね?各プレイヤに「手番来たよ」ってコールバックしないといけないし。
ひとまずJavaで作って、そこからソケットや他言語にブリッジするってのでいいんじゃね?
28デフォルトの名無しさん:2009/10/14(水) 00:05:10
>>21
人間には不確定な部分が有るからそうなる(プログラムでも確率的に手を決めるなら不確定になる)
ただ、将棋っていうゲーム自体に運というのはなくて、
歩を動かしたいなら意思どおりに動かせるし(運によらない)
初期配置も決まっている
29デフォルトの名無しさん:2009/10/14(水) 00:07:19
>>28
あれ??おれがもう一人居る…
30デフォルトの名無しさん:2009/10/14(水) 00:13:00
>>29
俺はお前だったのか
驚いた
3118: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(); // 今回のゲームのすべての手を見る
}
32デフォルトの名無しさん:2009/10/14(水) 01:43:20
どうでもいいよ
33デフォルトの名無しさん:2009/10/14(水) 01:55:18
>>1 はひろゆきと関係あるの?
勝手に名前を使ってるだけ?
34デフォルトの名無しさん:2009/10/14(水) 02:00:18
関係ないんじゃね?
35デフォルトの名無しさん:2009/10/14(水) 02:01:24
ひろゆき既に関係ないしなw
36デフォルトの名無しさん:2009/10/14(水) 02:15:23
言語をJavaに限定するなら、タイトルも
「Javaプログラミングコンテスト」
にすべきだよ。まぎらわしい。

個人的には>>24の提案に賛成する。

>>18は言語とVMの違いを知らないお馬鹿さん。
37デフォルトの名無しさん:2009/10/14(水) 13:06:02
>>33
いや、唇とはかぎらんだろ。
べつのひろゆきかもしれんし。
38デフォルトの名無しさん:2009/10/14(水) 17:27:21
今「Rubyを256倍使うための本 網道編」を読んでいるんだけど、
これに自律ロボットなネットワーク対戦型ゲームの作り方が
詳しく解説されているんだ

もしRubyでもオケーになったら、漏れも参加したいな
39デフォルトの名無しさん:2009/10/14(水) 18:18:40
だったらぶっちゃけYahooゲームの大富豪に乗りこんでここでID公開
なるべく公開ID同士を戦わせて、ランキング競った方が早くね?
当然ここの人間なら全自動ID作れるよな?
40デフォルトの名無しさん:2009/10/14(水) 20:00:12
>>39
却下
41デフォルトの名無しさん:2009/10/14(水) 20:43:21
こんなのがあったぞ
http://uecda.nishino-lab.jp/2009/
42デフォルトの名無しさん:2009/10/14(水) 21:09:17
GJ!
おれそっちに参加するわ。
43デフォルトの名無しさん:2009/10/14(水) 21:19:03
終わってるじゃんorz
44デフォルトの名無しさん:2009/10/14(水) 22:46:48
>締め切りは 2008/11/09(Mon.) です。
ん、2008年?って事は開催は締め切りから1年後?w
書き間違いっぽいので、運営に問い合わせてみたら?
45デフォルトの名無しさん:2009/10/15(木) 22:04:44
ひろゆきさんに通報するべきレベル
46デフォルトの名無しさん:2009/10/16(金) 00:43:06
っ[core wars]
47デフォルトの名無しさん:2009/10/16(金) 01:46:02
また立て逃げの企画厨か!
48デフォルトの名無しさん:2009/10/16(金) 15:44:37
大貧民なら電通大でもうやってる
UEC コンピュータ大貧民大会
ttp://www.tnlab.ice.uec.ac.jp/daihinmin/2006/
49デフォルトの名無しさん:2009/10/16(金) 16:32:42
>>41>>48
50デフォルトの名無しさん:2009/10/16(金) 18:10:26
ちょいちょいっとサーバーを作ってくれる猛者はいないの?
51デフォルトの名無しさん:2009/10/17(土) 19:40:46
>>50
言い出しっぺの法則
52デフォルトの名無しさん:2009/10/17(土) 21:00:16
ネットワーク対戦だとしたら、先にプロトコル仕様を決めないと、
誰にもサーバは作れないよ。>>1は、そんな気ねーだろ。
53デフォルトの名無しさん:2009/10/21(水) 17:55:21
〜〜〜終了〜〜〜
54デフォルトの名無しさん:2009/10/25(日) 19:23:48
今更ひろゆきの名前が2chで出るとは思わなかった
55天使 ◆uL5esZLBSE :2011/07/03(日) 23:32:16.66
ゴミに何を言われても
結局ただのゴミだったんだな
土方が何をほざいて
56天使 ◆uL5esZLBSE
これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど

もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ

ゴミだし