2009年06月23日
GetFreeMemoryで見てみたっす
パッケージのイメージが全く浮かばないっす・・・
馴染みのないゲームっすからねぇ。
現物展示しておいて、近くに販売BOXを置くっすかね?
パッケージにまで長々と説明は書きたくないっす。
むーん・・・
どうもぺんぎんっす( ◎v◎ )
Dots and Boxesで使った容量を見てみたっす。
単に気になっただけっす。
defaultステートのstate_entryの最初に
llOwnerSay((string)llGetFreeMemory());
と入れてみたっす。
もう抜いてあるっすよ。
結果
メイン: 37648
サブ1: 60610
サブ2: 60610
Monoコンパイルしてあるっすから、消費量は64KBから
引けば求められるっすね。
listが割と多めっすから、もうちょっと使ってるかと思ってたっす。
対局者(stringとkey)が入るとしても、「そんなもん」で済んだっす。
馴染みのないゲームっすからねぇ。
現物展示しておいて、近くに販売BOXを置くっすかね?
パッケージにまで長々と説明は書きたくないっす。
むーん・・・
どうもぺんぎんっす( ◎v◎ )
Dots and Boxesで使った容量を見てみたっす。
単に気になっただけっす。
defaultステートのstate_entryの最初に
llOwnerSay((string)llGetFreeMemory());
と入れてみたっす。
もう抜いてあるっすよ。
結果
メイン: 37648
サブ1: 60610
サブ2: 60610
Monoコンパイルしてあるっすから、消費量は64KBから
引けば求められるっすね。
listが割と多めっすから、もうちょっと使ってるかと思ってたっす。
対局者(stringとkey)が入るとしても、「そんなもん」で済んだっす。
2009年06月18日
長くなったっすけど、1.02完成っす
Dots and Boxesは、ひとまず完成っす。
パッケージ作らないとっすね。
どうもぺんぎんっす( ◎v◎ )
こうなったっす。
ちなみに[環境設定]>[表示]のオブジェクトは最低で撮影してあるっす。
スカルプは一切使ってないっす。
テクスチャも2枚(上部256×256、裏1,024×1,024)だけっす。
貼ってあるのはゲームをする上で関係ない部分っす。
出してすぐ遊べるっすね。
プリム数は26っす。
ドット:16
ボックス:9
ルートになっている大きな板:1
の合計26プリムっす。
ラインはボックス部分のプリムを変形して表現してるっす。
地味なんっすけど、この部分は見どころっす。
スクリプトは合計3本っす。
ゲームの進行に関することは全てメインスクリプトが行ってるっす。
あとの2本はフローティングテキストの表示をしてるだけっす。
フローティングテキストの自由度が増せば、1本で十分なんっすけどね。
青・緑とそれぞれ色が違えてあるっすから、スクリプトも別々っす。
イライラの元となる盤面の初期化は超高速っす。
テクスチャの切り替えは必要なくって、色を変えてるだけっすからね。
初期化の進捗状況はフローティングテキストで表示してるっす。
とはいっても、ほとんど気付かないんっすけどね・・・
このゲームは「暇つぶしとしては、なかなか良い」って感じのものっす。
ルールも簡単っすからね。
サクサクっと遊ぶには良いかもっすね。
パッケージ作らないとっすね。
どうもぺんぎんっす( ◎v◎ )
こうなったっす。
ちなみに[環境設定]>[表示]のオブジェクトは最低で撮影してあるっす。
スカルプは一切使ってないっす。
テクスチャも2枚(上部256×256、裏1,024×1,024)だけっす。
貼ってあるのはゲームをする上で関係ない部分っす。
出してすぐ遊べるっすね。
プリム数は26っす。
ドット:16
ボックス:9
ルートになっている大きな板:1
の合計26プリムっす。
ラインはボックス部分のプリムを変形して表現してるっす。
地味なんっすけど、この部分は見どころっす。
スクリプトは合計3本っす。
ゲームの進行に関することは全てメインスクリプトが行ってるっす。
あとの2本はフローティングテキストの表示をしてるだけっす。
フローティングテキストの自由度が増せば、1本で十分なんっすけどね。
青・緑とそれぞれ色が違えてあるっすから、スクリプトも別々っす。
イライラの元となる盤面の初期化は超高速っす。
テクスチャの切り替えは必要なくって、色を変えてるだけっすからね。
初期化の進捗状況はフローティングテキストで表示してるっす。
とはいっても、ほとんど気付かないんっすけどね・・・
このゲームは「暇つぶしとしては、なかなか良い」って感じのものっす。
ルールも簡単っすからね。
サクサクっと遊ぶには良いかもっすね。
2009年06月16日
Dots and Boxesの中身っす
別のパズルの解の存在条件調べてるっす。
出題がテキトーでも大丈夫なのか調べておかないとっす。
具体的には係数行列のランクを見るっす。
手計算するのは面倒すぎなので、コンピュータにやってもらうっす。
まあ、せっかくなのでLSLで書いてみるっす。
修行っすね。
どうもぺんぎんっす( ◎v◎ )
Dots and Boxesのスクリプトについてっす。
stateの組み立てを簡単に書いておくっす。
default
{
state_entry()
{
フローティングテキストを消したりする;
}
touch_start(integer total_number)
{
盤面の初期化;
state 参加者待ち;
}
}
state 参加者待ち
{
touch_start(integer total_number)
{
// 2人目がなかなかtouchしない時のためにtimerとか・・・
// その他にもいろいろ処理してるっすけど、省略
if( 対局者2名がtouchした )
{
state 対局の準備;
}
}
timer()
{
すでにtouchした1人目の情報を初期化;
}
on_rez(integer start_param)
{
llResetScript();
}
}
state 対局の準備
{
state_entry()
{
手番を決定後、対局者情報をリンクメッセージで飛ばす;
state ドット選択;
}
on_rez(integer start_param)
{
llResetScript();
}
}
state ドット選択
{
state_entry()
{
どっちの手番なのかをSayしたり;
timerかけたり;
}
touch_start(integer total_number)
{
if(llDetectedKey(0) == 手番のプレイヤーのkey)
{
if(正しい2つのドットをtouchした)
{
state ライン引き;
}
else
{
いろいろやる;
}
}
}
timer()
{
// 放置とみなして・・・
llResetScript();
}
on_rez(integer start_param)
{
llResetScript();
}
}
state ライン引き
{
state_entry()
{
ラインを引く;
if(ボックス獲得しなかった)
{
手番を入れ替える;
}
if(終局した)
{
結果をSay;
llResetScript();
}
state ドット選択;
}
on_rez(integer start_param)
{
llResetScript();
}
}
state ドット選択で微妙な点っす。
if(llDetectedKey(0) == 手番のプレイヤーのkey)
としてるっすけど、コレ、妨害にも使えちゃうっすね。
連打してれば妨害可能っす。
でも、小学生がやるようなゲームを妨害するとかいう、
そんな心の狭い人はいない、という考えでこのカタチっす。
あとはstate 対局の準備は関数で良いんじゃない?とかっすね。
これはstate ライン引きにも言えるっすね。
ここの部分、気持ち悪さを感じたってだけで、state分離したっす。
必要な変数が取得できたあとに、別のtouchがあると
変数の中身が上書きされたりしないかなぁ・・・とか心配してるっす。
いや、きっちりフラグ管理すれば大丈夫なのは分かってるっす。
でもモヤモヤしてる感じっす。
なので、いっそのことstate_entryしかないstateに移って、
touchの心配をしなくても良いようにしてみたっす。
・・・修行しますっす。
出題がテキトーでも大丈夫なのか調べておかないとっす。
具体的には係数行列のランクを見るっす。
手計算するのは面倒すぎなので、コンピュータにやってもらうっす。
まあ、せっかくなのでLSLで書いてみるっす。
修行っすね。
どうもぺんぎんっす( ◎v◎ )
Dots and Boxesのスクリプトについてっす。
stateの組み立てを簡単に書いておくっす。
default
{
state_entry()
{
フローティングテキストを消したりする;
}
touch_start(integer total_number)
{
盤面の初期化;
state 参加者待ち;
}
}
state 参加者待ち
{
touch_start(integer total_number)
{
// 2人目がなかなかtouchしない時のためにtimerとか・・・
// その他にもいろいろ処理してるっすけど、省略
if( 対局者2名がtouchした )
{
state 対局の準備;
}
}
timer()
{
すでにtouchした1人目の情報を初期化;
}
on_rez(integer start_param)
{
llResetScript();
}
}
state 対局の準備
{
state_entry()
{
手番を決定後、対局者情報をリンクメッセージで飛ばす;
state ドット選択;
}
on_rez(integer start_param)
{
llResetScript();
}
}
state ドット選択
{
state_entry()
{
どっちの手番なのかをSayしたり;
timerかけたり;
}
touch_start(integer total_number)
{
if(llDetectedKey(0) == 手番のプレイヤーのkey)
{
if(正しい2つのドットをtouchした)
{
state ライン引き;
}
else
{
いろいろやる;
}
}
}
timer()
{
// 放置とみなして・・・
llResetScript();
}
on_rez(integer start_param)
{
llResetScript();
}
}
state ライン引き
{
state_entry()
{
ラインを引く;
if(ボックス獲得しなかった)
{
手番を入れ替える;
}
if(終局した)
{
結果をSay;
llResetScript();
}
state ドット選択;
}
on_rez(integer start_param)
{
llResetScript();
}
}
state ドット選択で微妙な点っす。
if(llDetectedKey(0) == 手番のプレイヤーのkey)
としてるっすけど、コレ、妨害にも使えちゃうっすね。
連打してれば妨害可能っす。
でも、小学生がやるようなゲームを妨害するとかいう、
そんな心の狭い人はいない、という考えでこのカタチっす。
あとはstate 対局の準備は関数で良いんじゃない?とかっすね。
これはstate ライン引きにも言えるっすね。
ここの部分、気持ち悪さを感じたってだけで、state分離したっす。
必要な変数が取得できたあとに、別のtouchがあると
変数の中身が上書きされたりしないかなぁ・・・とか心配してるっす。
いや、きっちりフラグ管理すれば大丈夫なのは分かってるっす。
でもモヤモヤしてる感じっす。
なので、いっそのことstate_entryしかないstateに移って、
touchの心配をしなくても良いようにしてみたっす。
・・・修行しますっす。