2010年03月01日

棋譜ワン ランキング機能追加 - 開発状況(2010/3/01)

棋譜並べ競争ゲーム、棋譜ワングランプリに、
タイム登録&ランキング機能を追加しました。
(プレイはこちらから。)

前回記事の後、無性にKGSで打ちたい熱が更に上がり、
当初考えていた手段での囲碁対局機能付与方法よりも簡便な、
自分が囲碁をKGSで打つ励みになるようなモノをとっとと作りたい、
と思ってちょっと技術調査をしよう、と思っていたら、
気付いたらDB登録機能作ってました。

プレイ後にタイムの結果が表示され、
名前とURL(任意。ご自分のブログなりホームページがあれば入力)
コメント(某twitterに倣って140文字までの登録です)を入力し、
送信ボタンでプレイヤー情報として登録されます。
登録を行なわなかった場合は、無名の棋士としてタイムだけ登録されます。
登録後のランキングでは、登録した記録のタイム部分が太字で表示されます。
プレイしなくても、こちらから現在のランキングを見ることができます。


前ちょっと書いたように、
ページ転送機能があるので、ほぼ単純に、
登録機能のあるもの(今回はPHP)にそっちの仕事は任せちゃえばよいので、
カンタンでした。
(PHPはちょっとかじっただけなので、
 調査しながらの作業となり手間は掛かったが。)


しかしまだいろいろやっつけ感があるままですが、
(レイアウトだとか、ゴミデータが登録される可能性とか、
 同時登録時の排他制御が未確認とか、描画が遅くてクリック受け付けない時があるとか、
 SecretBonusただ声が出るだけとか。)

とりあえず公開に踏み切っちゃいます。

実際には細部を詰める必要がありますが、
これでグランプリが開催できそうな感じになってきました。
その暁には、是非グランドスラムを達成した張栩四冠もご参加ください。(すいませんまた調子に乗りました。)
とは言え、大枠ができちゃったので、このまままたしばらく放置しそうですが...。
posted by curren at 20:33| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2010年02月26日

中間報告 - 開発状況(2010/2/25)

開発停滞中。
対局後・棋譜並べ完了時のページ転送機能は実は実装済でしたが、
帰ると疲れて、エロクイックス囲碁かまけてしまいました。
hidewさんのアプリやったり、nipparatさんのコメント見たら打ちたくなって、KGSのアカウント復活させた)

本来はこのページ転送機能によりかなりの道が開ける
(対局結果(勝利・敗北・持碁)に応じたご褒美や、ストーリー付け・次ステージに進む処理の実現、
 棋譜並べタイムのDB登録(ハイスコアランキング、PHP併用)など)
のだが、
転送先ページを作る作業が進んでません。

ここで停滞したらその先も無いと思い、
とりあえず対局Appletに敗北時のページ転送を付けました。
(ただし非常にショボい。非常に悪い例である。
 本当はせめて各対局結果ページにアクセス解析貼り付けて、
 人々がどれくらプレイしているのかを計ろうと思ったのだが、
 上手く機能しないようである。)


エロクイックスやりながら思ったのだが、
極端な話、ページ転送機能さえ付ければ、
モチベーションを高めるための本質と思われる
「ご褒美」「やり込み」を実現できるのかも。
(着手時の派手な演出なども重要な事項だが、あくまでサブである。)
単純にページ転送機能のある汎用囲碁アプリがあれば、
後は転送先のページ内容や転送ルートで何とでも工夫ができるのかも知れない。
しかしそのような囲碁アプリは現在存在しないのである(多分)。

そして、今のウチのアプリに足らないものは、
マトモな囲碁対局機能である。
純碁は敷居としては良いのかも知れないが、
やはりその先の囲碁を知るためには物足りない。
KGS 29Kのボットと対局するような、のれんに腕押し感しか残らず、
囲碁やったな〜、という感じにはなれないのである。

その辺りについても、早めに対処したいなぁと思う。
そもそもこのアプリを開発し始めた理由は、
自分が楽しく囲碁を打ち続けられる環境が欲しかったからなのだから。
(かと言って、時間も無いんで正攻法で作ろうとするつもりも無いのだが。)
posted by curren at 00:39| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2010年02月12日

棋譜ワンも復活 - 開発状況(2010/2/12)

hidewさんのリク?を受け、以前の棋譜並べのスピードを競うアプリ(キフワンGP)のサイズを大きくしてみました。



■遊び方
黒の次の一手の場所をマウスでクリックしてください。
 (白番は自動的に着手されます。)
・誤った場所をクリックしても着手できません。
・始めはノーヒントですが、しばらくすると次の一手の場所に
 赤色の幻影が現れます。
・幻影が現れる前でも着手可能です。
 その場合「Secret bonus!」と言うことで拍手が起こります。
・終局まで並び終えると、棋譜並べ開始からの時間が表示され、記録として登録されます。
 その際、終局後画面からお名前、コメントなどを入力できます。
・現在の世界ランキングこちらから確認可能です。

■棋譜の元対局:
 1997/5/1 第22期 名人戦リーグ
 黒:林海峰 九段  白:依田紀基 九段
 (棋譜はこちらからいただきました。)

■ヒント
・初手は完全に勘でお願いします。
・誤った場所をクリックしてもペナルティはないので、
 それっぽいところをガンガンクリック!
・一線のハネツギとか、コウ争いとかがSecret Bonusのチャンス!
・終局後の再プレイは、IEの場合[Ctrl]+[F5]もしくはアドレスバーで[Enter]です。



史上最年少プロ棋士誕生!ということで話題の藤沢里菜ちゃん
(私が囲碁ボケに参加した頃に一緒に参加していたのですね。
 これは「俺も昔、あの里菜ちゃんと競い合ってたんだ」と言っていいのだろうか?)

(ちなみに才能に限界を感じ引退した囲碁ボケですが、
 久し振りにおもむろに一つ辻ボケかましてみよかと思って今回のお題を見に行ってみたのですが、
 当時一件だけ投稿されていた初手のボケが、
 深い読みを要しそれでいて的確な一手(血の絆、師弟の絆の両方を馬で両アタリにする)で、
 約3年の間で皆様遥かなる高みに上られてしまったと思い、すごすごと逃げ帰って来ました。)

「とくダネ!」での特集を見た一般視聴者は、
1ヶ月前の対局の盤面を再現する記憶力に驚愕したようです。

そんな棋譜暗記能力を計るアプリ(棋譜並べ支援アプリ)は最近でもなかなかに需要があるようで
こちらの方棋譜ViewerWillcom版は私も微妙に関係していますが、作ってもらった割に使っていなくて申し訳無い...)こちらの方)、
もう少し手を入れたいところなのですが、
どうしてもブログタイトル通り下方に走ってしまいます。

今回のサイズ変更も、元々Applet paramで指定できるようにしてあったので一瞬だったのですが、
上段画像をサイズに見合うもの探す段階でうっかり検索で迷い込んだアプリ関係を見入ってしまい
腹筋(未成年回避推奨)、ブロック崩し(未成年回避推奨)、麻雀(未成年禁止)、クイックス(未成年禁止)
掲載に時間が掛かってしまいました。
(そこにはWebゲームアプリ開発者として、
 ・なんだかんだで絵の質が最重要だな
 ・時代はやっぱりFlashなんだな
 ・Javaでも能力的にそれほど劣っている訳ではない
 ・Web絵師のCG公開ツールとしても使ってもらえたら(一応仕様は前から公開してるけど)
 ・史上初のxx囲碁ゲームだぜとか調子に乗っているけど、世間一般のゲームからしたらレベルが低すぎる
 などいろいろ思うところもある訳ですが。)


画面を大きくしたことにより、PCのスペックによっては動作が遅いようです。
(うちのショボPCがやや唸る。描画プログラムのロジックが悪い部分もある。)
また、上段画像も無駄に大きくなってしまうので、
多くのPCの解像度ではプレイ中時間やSecret Bonusの文字が見えないと思います。
(このあたりはプログラム修正したいなぁ。)

今回の棋譜は、昨年のクリスマスイブに突如として現れ、
瞬く間に囲碁ブログ界の中心に君臨したヨダログでお馴染みの
依田紀基 九段 と 林海峰 名誉天元 との一局です。
sai 対 塔矢行洋 と言ったほうが分かりが良いかも知れません。

最速は誰か?
ルールなどはこちら。
棋譜並べ終了タイムをコメントに残してもらうと嬉しいです。
ちなみに私(2年位前のKGS 12K、今は知らん)6分39秒610でした。
是非里菜ちゃんもご参加ください。(すいません調子に乗りました。)

本来はスコアシステムなど整えて(着手タイミングやシークレット、コンボを考慮したもの)、
システム的にランキング登録もずっとやりたいんですがね。


【Special Thanks to...】
こちらのページこちらのページのSpecial Thanksの方々と、
 画像:
  http://www.yunphoto.net/
   (上段画像。)
posted by curren at 00:27| Comment(5) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2010年02月06日

隠し要素追加 & キャラクター生成ツール Lum - 開発日誌(2010/02/06)

コンセプトと言う割には既存の囲碁ゲームの問題の一つ、
「ゲーム的な隠し特典(やりこみ要素)が無い」ということを何ら改善していませんでした。
と言うことで、
持碁で隠し画像表示を実装しました。

2016/2/22 追記
http://go-up.online/
上記サイトのドレスアップ囲碁モードが、このコンセプトアプリの後継になります。



secret_piece.png特典オープンの為には、
達成が困難な条件を設定するのが定石で、
通常のゲームでは「強い相手に勝利」などが条件でしょうが、
このアプリではそんな強い相手になれるCPUルーチンなど作れないので、
逆に弱すぎるCPU相手に「持碁」という条件とすることで、
難しさとしています。

ちなみに私は3回に1回くらい持碁にできます。
デバッグ時にイライラします。

←こんな感じの隠し画像ですので、興味のある方はトライくださいな。





今回の隠し要素画像、及び前回からのアプリで使用している女の子の画像は、
light社(※エロゲー製作会社)キャラクター(立ち絵)生成フリーソフトである
Lum(freeLum)を使用しました。

これはあたしが中途半端なエロゲ有識者だからではなく、
ただ純粋に、フリーゲームの素材として使用できる、
質の高い立ち絵素材を広くWeb上で探した結果が、
このLumというツールから生成される画像だった訳です。

ツールの機能としては、
目や口、髪型、服装、アクセサリー、そして表情などのパターンを指定すると、
その指定に即したキャラクター画像を生成してくれます。
生成された画像はαチャネル(透過設定)付きのPNGで、背景画像との重ね合わせも容易です。
(今回は背景との合成などの最終処理にMicrosoft Excelを使用しました。
 拡大縮小、回転、グルーピングなど、
 これくらいの用途であればペイントソフトより操作が簡単で楽。
 あとはピクセル値指定で操作ができれば言うこと無しだが。)


いくつかあるキャラクター生成ツール(一番極端な例はこれ)の中でも
その設定項目の合目的性(他のツールはゲーム素材作成用途としては項目の過不足がある)と、
デフォルトで用意されている素材の質が高く、趣向も私の思い描いているものに近かったため、
ほぼ迷うことなくこちらを採用しました。

ただまぁ一つやや気になるところがあって、
デフォルトの目のパーツの瞼の線が太くてやや古めかしい感じがしてしまうという点。
これも、気になるって言えば気になる、というレベルで実用上問題は無かったのですが、
でも気になったので、デフォルトの目パーツを無理矢理修正してみました。
(画像編集ツールでフリーハンドで瞼周辺を選択して、
これまたフリーハンドで1〜2ドット程度移動したのみ。)


このツール、これだけの実力があればさぞかしネットで人気だろう、
と思ったら昔やや流行った程度で今はもうあんまり...のようですね。
確かに、特にゲーム製作用途でなければ最近は3D系のツールなどで
視点なども変えて自由に色々楽しめますからねぇ。

ただ単に、もう少し拡張パーツ・素材がいろいろ充実すれさえすれば、
出来るキャラクタに幅が出て、神ツールに化けそうなんですがねぇ。
同社のDies irae(※エロゲ)がいろいろ紆余曲折の末、
発売後2年を経て高い評価を得たように、
(個人的にはImitation Loverの方がお勧め。
 自分が知っているWindowsエロゲで唯一年齢制限あってこそのストーリーを表現してそうなのと、
 まるで浜崎あ○み調の主題歌が秀逸。)

このツールも遅咲きのブレイクを果たせばよいなぁと思います。


そんなこんなで、軽微かつ大雑把な改変のみで、
かつ通常(sumashi)と驚き(odoroki)のみの修正ですが、
もし必要な方は下記をどうぞ。

Lum拡張パーツ(デフォルトの普通目の瞼薄くしたもの)
(※ダウンロード及び使用、公開については、
  もう適当にお使いください。)


改変前後での比較
sumashi_before.pngsumashi_after.png
posted by curren at 00:26| Comment(2) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2010年02月04日

開発状況(2010/2/4) - 復活

約二年半振り(→以前のバージョン)に、脱衣囲碁アプリに機能追加してみました。

2016/2/22 追記
http://go-up.online/
上記サイトのドレスアップ囲碁モードが、このコンセプトアプリの後継になります。



【遊び方】
 下段がゲーム画面です。
 純碁と言う、囲碁に近いが厳密には囲碁ではないルールを採用しています。
  ・自分と相手とで交互に石を置く
  ・相手の石の四方を自分の石を囲むと、相手の石を取ることができる
   (盤の端、隅では三方向、二方向でよい)
  ・相手の石が四方にあるところには打つことができない
   (ただし、打つことで四方の相手の石のどれかを取ることができる場合は打てる)
 (詳しくはこちらとかこちら。)

 上段はご褒美画像画面です。
 ゲーム画面の自分の石の位置、相手の石を取った位置に対応して
 その部分の画像が変化します。
 打つべき場所が無くなったら「PASS」ボタン。
 両者のパスでゲーム終了となります。
 最終的に盤面に残っている石が多いほうが勝ち。
 コンピュータに勝利するとご褒美画像が開放されます。
 また、特定条件で隠し画像も...!?(ヒント



コンセプトと言う割には、
現在の囲碁アプリにおける大きな問題の一つ、
「勝った時の反応が薄い」ということを何ら改善していませんでした。
と言うことで、申し訳程度ですが、
ご褒美画像オープン機能を実装しました。
(本当はもっと大袈裟なくらいド派手な演出が必要と思うが、技術力が...)
ついでに画像も変更。


更新自体は停止していましたが、
常にこのアプリのことは頭にあり、
いろいろとアイディアやコンセプトは溜まっているのですが、
その公開方法を思案中。
恐らくアイディア全てを動くものとして表現しようとすると、
現在の作業時間の確保状況では
それこそ私が生きているうちに完成できなそうなので、
パワポなどで営業資料的に公開することも考えたが、
それでは結局何の腹の足しにもならないという考えが現在の状況。
気が変わったらアイディアメモを公開するかも知れませんが、
まあ、まだ死なないかなぁと思うので、
それまではコツコツとラピッドプロトタイプ的に公開したいと思います。




変更点
・勝利時にご褒美画像オープンダイアログを表示&「おめでとう」ボイスを追加
・プレイヤーのパス時のみ終局判定を行なうように変更
 (本来の囲碁のルールとは異なりますが、
  CPUパス→プレイヤーパス→ご褒美(1回目)→CPUパス→ご褒美(2回目)、となるのが違和感なので。
  勝敗判定後の後処理を実装するまでの繋ぎです。)
・画像テーマ(キャラクター&背景)を新規追加
 (後述のLumというツールを使用しています。詳細はまた後日。)

以下は内部的な変更点。
・開発ツールをJBuilderからeclipseに移行
 (実は1年ほど前に作業完了してた。
  やっと時代の本流に乗った感じ。)
・Appletの配布先をseesaaのアップロード域からレンタルwebサーバに移行し、ブログにはiframeで表示するように
(実は2年半前にwebサーバは確保して、Appletも配置してた。
 当初は公開場所を完全移行して、ブログではそこへのリンクのみ、と思っていましたが、
 seesaaはiframeもありなんですね。助かります。
 ブログとは違い、ファイルがftpでまとめてコピーできるので、配布が格段に楽。
 そのため今まではリソースもjarでまとめていましたが、
 バラで置いておき必要なファイルのみ実行時に読み込むようになった。
 (eclipseがjarファイル作成が面倒なのもある。この点においてはJBuilderのアーカイブビルダーは優れていた。))
・当方のJava実行環境をjdk 1.6に。
 (上手く動作しない場合はこちらで最新のJavaをダウンロード、インストールください。
   http://www.java.com/ja/

【Special Thanks to...】
こちらのページのSpecial Thanksの方々と、
 画像:
  http://www.light.gr.jp/light/download/freeware.html
   (キャラクター画像。light社のキャラクター生成ツールLumを使用しました。)
  http://blackknight.sakura.ne.jp/lum.htm
   (水橋希さん製作のLum追加パーツ(下着)を使用しました。
    また、上記公開HPの管理者である黒騎士さんにはいろいろお世話になりました。)
  http://blog.goo.ne.jp/ari1192jp_001/e/fc8a1f01c350e3398f0db0cb4cee32d3
   (教室の背景画像を拝借いたしました。)
posted by curren at 00:49| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年06月05日

開発状況(6/5) - スケル・ストン

久し振りの囲碁アプリプログラミング。
テンション上げてくために、
比較的短い期間で完成できそうでかつ、
見た目の綺麗さで完成時に大きなカタルシスを得られると思われる
スケル・ストン((c)やまねのね さん)の組み込みに着手してみました。

カラフルでオシャレなガラス碁石、スケル・ストン。
碁が楽しくなります。
碁を始めるお子様へや彼女へのプレゼント、入門教室..



●現物(...いや、ホームセンターで買ったパチモンなんですが)
fake_skelstone.JPG

      ↓

●実装(盤と石の大きさが全然合ってないのは無視の方向で)
poor_skelstone.gif


う〜ん...
透明な碁石の形状が上手く表現できてない...
今は単純に円の中心からの距離で等比的に透明度を変化させているだけなのだ。

これは、ちゃんと世界の法則に則る必要があるのかも知れない。
円の数式、x^2 + y^2 = 1 だっけ?
じゃあサイン(sin)・コサイン(cos)って何だっけ?
サイン・コサイン・ラブサイン?
更に、厚みと透明度は単純に比例するのか?

今更になって不勉強が身に染みる。
今日のところはこれくらいにしといてやるか。
posted by curren at 23:23| Comment(6) | TrackBack(1) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年06月03日

人生の旅路とは寄り道と見つけたり

えっと、ここ最近囲碁サボってました...

5月からの戦績が10戦やって 1勝 9敗ってのもテンション下がってる理由です。
全く以って自分の不徳の致すところでしかないのですが、
以前の記事でもよく触れる、この完膚無き感に叩きのめされ、
「休みの日にまで頭使って凹むことないよな」と思って
家庭用ゲームや、
突然PC-98時代を懐しく思い出し、いろいろ調査をした過程で入手したエロゲームに手を出していました。

手を出したゲームは「モンスターハンター」(何故か2じゃない)と「鬼畜王ランス」。
どちらもやり込み要素アリアリの殿堂入り的ゲームです。
ただ、どちらも旧作であるため既にほとんど解析されており
途中でWeb攻略ページを読んで、それをもって止めてしまいました。

確かにやり込み要素と言っても、それらは製作者に作られた有限のもの。
どれだけやっても人間の手の中で踊っているだけのこと。
それでも、人生を自分の良いと思うことで埋めていったら幸せなんだろうと思うけど...

そう思うと囲碁の場合は違って、
全ての人間が神の手の中で踊るようなものだから、
夢のある競技だなと思いました。
(自分レベルじゃ、一生人の手の中レベルだろうけど。)

そんな競技に自分が今から効率良く関わりたい。
PC-9801時代を思い出しながらそう考えると、
しょぼい棋力を12kから8kとかに苦労して上げる労力を費やす代わりに
過去のPC-98時代の経験からやはりエロ囲碁アプリを開発することだと再認識しました。

アリスソフトの前身、チャンピオンソフトが囲碁ソフト(「パソコン棋士」「加藤正夫の実戦定石200」等)も出していたらしい。(ソース
囲碁への思い入れがあったのかどうかは不明だが。
それを考えるとアリスキャラ総出演の囲碁ゲームとか、無し?(elf麻雀のノリで。)
アリスと囲碁の好きこちらのサイトの管理人さんとか、乗ってくれないかな?



エロじゃなくても、華やかな囲碁が作りたいですね。
スーパーリアル囲碁(着手やアゲハマ除去の際に手の動作が描画される)とか、
スケル・ストン機能(αブレンドで盤面が透過する透明碁石)とか実装したいです。

とはいえ弱いながらも対局は楽しいので、
息抜きとしての対局も続けながら、また囲碁アプリ作成に注力していきたいと思います。

テンション上げるためとりあえず現在の囲碁アプリの設定値の一覧表でも作ってみました。
まだ資料が不十分で、実際に設定するのには不親切ですが...
posted by curren at 14:40| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年02月18日

開発状況(2/18) - 石葉2

※対局アプリはこちら

zebraさんの囲碁ソフト開発ブログに触発されて、
以前作ったチナッティのSGF解析ルーチンを再利用して
棋譜再生機能を付けてみました。









































以前から置石はうまく処理できなかったり、
分岐も処理できない(KGSで「待った」した棋譜はダメ)だったりするんですが、
とりあえず最低限の動作ってことで。

チナッティでは正順に処理するだけでよかったのですが、
今回は「戻る」必要があったので、ちょっと面倒臭かったです。

画面のレイアウト(画面サイズとか)もアプレットパラメータで弄れるようにしました。
目指している「拡張性」の為です。

が、今回の修正の参考文書探しの際に
「石葉2」のドキュメントを読んだのですが、
石葉2と比べたら、このアプリなんてママゴトでしかないような気がしました。

今日のone碁で棋譜再生アプレット探しをしたときは、
確か単に「(デフォルトの)盤面が木目表示でキレイ」ってことだけで
goodshapeにした気がします。

が、石葉2、盤面画像のカスタマイズももちろん出来る上、
アプリの殆どの配置をカスタマイズできるし、
それだけでなく、Javaアプレットの制限(クリップボードへのアクセス不可、アプレットのあるサーバ以外との通信禁止)をも
Javascript、CGIとの連携により可能にしている。(っぽい。)
完全に本気アプリです。

これだったらむしろ石葉2のカスタマイザーとして、
脱衣囲碁を実現したほうが手っ取り早かったんじゃないかと思う次第ですバッド(下向き矢印)

そんなこんなで、
今後は"囲碁らしくない"不埒な表現法に
より注力していきたいと思います。



変更点
・SGF棋譜再生モードを追加
 (置石・変化図とか未対応)
・画面のサイズをアプレットパラメータで変更可に
・対局モードの勝敗判定にアゲハマ数を含まないように
 (都筑さん、ご指摘ありがとうございましたわーい(嬉しい顔)
ラベル:SGF 囲碁
posted by curren at 14:17| Comment(2) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年02月16日

開発状況(2/15) - 玉入的終局処理

※アプリ本体はこちら

以前ちょっと触れた2ch投稿
> 玉入れみたいに
> 「いーち!にーい!さーん!」って地を埋めていった方がまだ盛り上がるんじゃないか?

元ネタ

を実装してみました。

ただ本当に玉入れみたくやるとえらいスローリーになってしまうので、
さっさと数えるようにしてます。
いろいろツッコミどころはある(ハマ入れて数えろよとか)と思いますが、
ま、コンセプトってことで。



変更点
・終局処理時に、盤上の石を数えるアニメーションを実行するように。
・アプレットリロード時に、ボタンのLookAndFeelが戻らないように。(でもConfigダイアログ内がまだおかしい)
ラベル:java 囲碁
posted by curren at 00:01| Comment(6) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年02月07日

開発状況(2/7) - 悪い見本

※アプリ本体はこちら

結局更新しちゃった。
パス→終局処理を組み込みました。
がこれは、悪い見本。

「黒○目、白○目、 黒の○目勝ちです。」
な〜んて、どっちが勝つかな〜みたいなドキドキ感もないし、
勝っても褒めてもくれないし祝ってもくれない。
味気無さ過ぎる。
しかし世の囲碁ソフトの9割5分がそんな感じだ。
ヒカルの碁すら終局自体はそんな感じだった気が...)

2chに、
「運動会の玉入れみたいに、双方数えていけば」
みたいな書き込みがあったが、
そういうコンセプトでいろいろ付けてきたいです。



変更点
・パスボタンを追加。
・パス2回で終局処理。
 (ただ、今はコンピュータ2手打ちが両方パスだと終局しちゃうんですが...)
・(内部実装変更)
 ロボットのマルチスレッディングについて、thread.start()じゃなくてrun()を直接呼んでた。
 wait()/notify()で一手毎に擬似stopするように変更。
 結果、paint()直接呼出せず、普通にrepaint()でアニメーション描画できるようになった。
posted by curren at 23:18| Comment(2) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年02月06日

開発状況(2/5) - FF召喚士的囲碁コンピュータ

※アプリ本体はこちら

内部的に人もコンピュータも同一のクラス(Player)から派生させ、
着手を統一的に扱えるようにしました。
ペア碁N色碁やらも今後対応し易そう。

折角なのでとりあえず「コンピュータのみ1.5手打ち碁」モードに設定してみました。
(人→CPU→人→CPU→CPU、って感じで、
 二巡に一回、コンピュータが二連続で着手する。)
なんか、結構強い...
と、コンピュータに取られた部分も透過しちゃうのね...(バグだ。)



今まで、CPUの考慮中にアニメーション描画が止まってました。
っつっても、そんな長く考えるわけじゃないんですが、
他の要因もあってマルチスレッド化しました。
これで、CPU考慮中も画面描画(透過アニメーション等)が止まることなく行なわれます。

これを応用すれば、
FFの召喚獣呼ぶ時みたいな、
ド派手一分弱掛かるアニメーションを流しといて、
その裏で必死にCPUが「長考」すれば、
プレイヤーはそんなにストレスを感じずに、(その一手のみ)CPUは強くなれるかも。


慣れないマルチスレッドやらイベント自作やらを組み込みましたが、
Applet.paint()とか直接呼び出してたりして非常に嘘臭いです。



変更点
・対局者をアプレットパラメータで指定できるように
posted by curren at 00:06| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年01月30日

開発状況(1/30) - 目を見開いたコンピュータ

※アプリ本体はこちら

コンピュータが自分の二眼を潰さないためには
二手読みすりゃいいんじゃないか、みたいなことを昨日書いたが、
それじゃダメだ!
ウッテガエシオイオトシに引っかからなくなってしまう。

多数の初心者はルールを覚えるのと同時に
シチョウ、ゲタ、ウッテガエシ、オイオトシ、鶴の巣籠もりを覚えて、
「こんなテク覚えた俺はつえーぜ!!wwwww」
みたいな感じでに入るけど、
いざ対局してみると、コンピュータ相手にシチョウに抱えても逃げてくれない。
テクを披露する場所がないのだ。
そんな囲碁童貞君の筆下ろしの場所としたいのだ。


なので、読みの深さは一手のままで、
自分の眼をなんとなく潰さないようにするルーチンを追加しました。

着手候補点が以下の条件を満たす時、
その点を眼と判断し、そこには打たないようにする。
 ・上下左右が自分の石か、盤外である
 ・斜め四方が自分の石か、盤外である
  (ただし、候補点が隅・辺じゃない場合、
   斜め四方のうち三方が条件を満たしていればOK)
って言う適当なルーチンです。
(今度はヒミツの花園見てる間にできました。
 (ナンダカンダ言って、釈由美子日本一可愛いと思う。))


なので、こういう二眼(斜めが2つ空いてる)は二眼と見なされません。
(その確認もしてないけど。)
  ┼┼┼┼┼┼
  ┼┼●●┼┼
  ┼●┼●●┼
  ┼●●┼●┼
  ┼┼●●┼┼
  ┼┼┼┼┼┼

あと、完全に眼になる前の眼形は躊躇無く潰すんで、
意識的にコンピュータに二眼作らせようとして打たないと、
コンピュータやっぱり全滅しますが。

囲碁アルゴリズムって、プログラムマニアには垂涎モノの題材だよな。
時間も無いし、コンセプトも逸脱するんで本気で手付けないですが。




変更点
・コンピュータが自分の眼を潰さないようなルーチンを追加
posted by curren at 23:17| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年01月29日

開発状況(1/29) - 意思を持った石たち

※アプリ本体はこちら

モンテカルロ法によるコンピューター思考ルーチンを組み込みました。

・乱数によって着手候補点をバリバリ生成
・その場所に自分が打って取れる相手の石数をポイント加算
・その場所を相手に打たれて取られる自分の石数もポイント加算
・候補点を全部探索するか、設定した時間(今は1.5秒)が来たら、
 今まで評価したうち一番高いポイントを叩き出した地点を着手点に決定!

という滅茶苦茶単純なロジックなので、
自分も相手もアタリになってるが相手の石を取ればEverything OK!
って局面でも自分の石を逃げたり、
やっぱり自ら二眼を潰しに行ったりするけど、
ルール習得の教材くらいには使えるかな。


二手読みにすれば少なくとも二眼潰しは回避できそうだが、
現段階で単純な二手読みは、処理時間の関係で実用的でないだろう。
これからもう一段階強化するためには、正攻法しかないんだろうな。

でもモンテカルロアルゴリズムは楽だ。
あいのり見ながら作ってたらできた、くらいな感じだ。

CPUの処理能力がどんどん上がっていけば、それに比例して強くなる。
(単純比例じゃないだろうが。)
遠い将来、9路くらいならコンピューターが最強になるかも知れない。
MIDI音源として安価なソフトウェア音源が実用化され普及したように、
CPUの進化が不可能を可能にするかも知れない。

#全っ然関係無いけど、世間は空前のあるある捏造ブームだが、
#食べ物の話とかより、絶対血液型の話の方が捏造な気がするんだが。
#B型の子供はみんなケンカすんのか?そういうシーンだけ掻い摘んで放映してるだけだろ。



修正点
・CPU思考ルーチンを強化
・石イメージが左上に寄って表示されるのの修正
posted by curren at 23:39| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

開発状況(1/28) - アプリタイトル

※アプリ本体はこちら

カスタマイズ可能カスタマイズ可能とか言ってるけど、
結局おめーしか変更できね〜じゃねぇか。

ってことで、アプリ公開を宣言しました。
(公開したところで、世間に必要とされているかも不明なんですが。)


公開自体は当初からの予定だったし、
近い将来一部ソースを公開する予定なんですが、
今回の公開は多少見切り発車的な部分もあります。

一番引っかかってたのが、アプリのタイトル
今アプレットを置いているブログ記事のタイトルは「脱衣囲碁コンセプトアプレット」だが、
そろそろ正式な名前を決めたい。

「脱衣囲碁」を前面に押し出したタイトルなら簡単だが、
脱衣は客寄せパンダ的なものだし、用途・対象を自ら限定してしまう。
このアプリの本質は高い拡張性を備えることで
囲碁のルールのみを確定的なものとし、
それを取り巻くその他の部分を自由に変えることにより
遥かな高みを目指すところにあるのだ。

高い拡張性、これを最大のコンセプトとするこのアプリの名称。
と考えた時に、
Super EXtendable IGO Application
 → S○X 囲碁

としか考えられず、
泣く泣くタイトル無しのまま公開に踏み切りました。



変更点
・リロード時のConfigダイアログの動作不具合の修正
 (ただ、見た目はまだおかしいけど。AppletのsetLookAndFeelのタイミングの問題か。)
・使用するサウンドファイルをアプレットパラメータで指定するように
 (これによりjarからwavファイルを除外した。
  うちの会社のファイアウォールはwavファイルを含んだ圧縮ファイルを弾くようなので、これで動く?)
・CustomizedByパラメータの追加とaboutダイアログでの表示
posted by curren at 00:44| Comment(2) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年01月27日

開発状況(1/27) - ボスが来た!

※アプリ本体はこちら

うまくない動作(石のイメージが左上に寄ってる)とか
バグ(ブラウザでリロードしてからConfigボタンを押すと操作不能になる)とか含みまくってるのに、
懲りずにまた機能追加です。(イケイケGoGo!!)

MS-DOS世代にはお馴染み、懐かしの「ボスが来た!」モードです。(wikipedia)
上段画面をクリックしてみてください。

これで盤面と石の画像を変更すれば、
仕事中にこっそり出来る、デスクトップ囲碁の実現です。
(音は出ちゃうけどね。)

追記
デスクトップ囲碁のための素材を追加しました。
以下のように設定下さい。

●盤面描画
 「テクスチャ画像貼付」の詳細ダイアログで
 ・画像:「デスクトップ」
 ・盤面の線を付加描画する:チェックを外す

●先番/後番石描画
 「画像ファイル」の詳細ダイアログでそれぞれ
 ・画像:「ファイル」もしくは「フォルダ」
 ・画像を石の領域サイズに合わせて縮小する:チェックを付ける

※ボスが来た!モードONでのプレイ推奨です。

(スクリーンショット)
scrshotDesktopIgo.gif



変更点
・マウスカーソル位置の着手予定石ゴースト(何て言うんだ?)を表示
・「about」ボタンの追加
・「ボスが来た!」モード追加
posted by curren at 10:24| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年01月26日

開発状況(1/26)

※アプリ本体はこちら

石のデザインを変えられるようにしました。
ただ、石画像はもの凄く適当に探してきたんでえらいサイズちっちゃいんですが。
あとでゆっくり探します。

時間に追われてUPした感じなんで、他にもバグ的な動きをするかもしれませんのでご注意。



変更点
・石のデザインを変更(先番・後番で別のデザインを選択可。)
 ・単色塗り
 ・画像ファイル使用
posted by curren at 15:40| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年01月21日

開発状況(1/21)

※アプリ本体はこちら

久し振りにちょっと更新。
盤面デザイン(グラデーション塗り)の追加です。

ただ、やっぱ画像ファイル使った方が見栄えがいいので、
アプリの初期設定は今までのままです。
グラデーションを用いた盤面のスクリーンショットを貼っときます。
gradation_sample.gif



変更点
・盤面デザインとして「グラデーション」の追加
・盤面デザイン「テクスチャ」の時に、線を引く引かないの選択追加
 (既に線が引かれた画像を使うとき用)
posted by curren at 18:47| Comment(0) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年01月13日

開発状況(1/13) - 囲碁検定2

※アプリ本体はこちら

先日の記事で紹介した、
とりさんさんの囲碁検定の続編が早速できあがったそうです。
(早い!!しかも2つも!!!)
ということでやっぱり早速トライしてみました。


囲碁規約知識認定
igokiyaku_result.gif

撃沈...
合格しないと認定書貼り付けられないのか...
(仕方ないので画面キャプチャーして手でシコシコ貼り付けました。)
結構意外な規約があるんですね〜。


囲碁基本マナー検定
igomanner_result.gif

またも撃沈...
ほとんどネット碁オンリーだと、ニギリも整地もしないし、
終局も「パス」「終了」ボタンを押すだけだからなぁ。
リアル囲碁したいんだよな〜。

やっぱ、囲碁も、ビールも、○○○も、生がイチバンだな。
生で一局、一杯、一発やりたいもんだ。


4問目の問題、個人的には確かに「言ってくださいよ〜」って言いたいときも多々あるw


今回のアプリ更新のメインは目に見えないところがほとんどで寂しかったので、
暫定的に、画像をロードごとにランダムで変えるようにしました。
(ご褒美画像のファイル名は暗号化してあるので、
 アドレス直打ちで画像だけ見ようとしてもダメです。)

ぷにっと囲碁!の都筑さんに頂いた画像を使用してみました。
ザ・脱衣!みたいな感じで本格的になってきましたよ〜。
ありがとうございます。



変更点
・盤面の描画ルーチンを別のjarファイルに分離した
・設定可能な描画ルーチンのクラス名をアプレットパラメータで指定するように
・その他設定項目も一部アプレットパラメータから取得するように
・使用可能な壁紙とご褒美画像の組をアプレットパラメータで指定するように
・ご褒美画像のファイル名の暗号化対応
・ロードごとに壁紙・ご褒美画像をランダムで選択するように


posted by curren at 16:46| Comment(1) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年01月10日

開発状況(1/10) - 囲碁検定

※アプリ本体はこちら

とりさんの囲碁楽ぶろぐ」というブログの記事より。
『囲碁界初級知識認定』を作成したとのこと。
ということで早速トライしてみました。



囲碁"界"についての検定なので、
囲碁弱々な自分でも合格することが出来ました!
問題の選択もトリビア的な微妙な所を突いてて面白かったです。


...で、アプリの方は目に見える進捗は無しです。
#内部的にガリガリいじってはいるが。



変更点
・Configダイアログで[キャンセル]ボタンを押した時に、
 [盤面描画]の詳細設定ダイアログで変更された設定がキャンセルされないを修正
posted by curren at 23:47| Comment(2) | TrackBack(1) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする

2007年01月08日

開発状況(1/8)

※アプリ本体はこちら

大して成果も無いんですが、
とりあえず現状でアップしておきます。

この「カスタマイズ可能範囲を広げる」カスタマイズ、
結構しんどいな。
ゲーム本編の開発にこれまで掛けた時間より掛かってるな。

全然関係無いけど、
KGSの白石って良く見るとそれぞれ微妙にハマグリ模様が違うって知ってた?



変更点
・[Config]-[デザイン]-[盤面描画]がそれなりに有効に。
・折角なんで盤面テクスチャのデフォルトをカワイイ感じに。
posted by curren at 23:06| Comment(3) | TrackBack(0) | 日記 - 囲碁アプリ開発 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。