目指せ☆!きふわらべが第5回電王トーナメント予選一位通過を狙う☆(*^~^*)<その3>

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「将棋盤作るの むずかしい ぽっぽ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「1マスは 何ピクセルなの?」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「何ピクセルだろう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C#スクリプトで ゲームオブジェクトを削除するには どうやったらいいんだぜ☆?」

「ゲームモードと、エディターモードでは違うんだぜ」

 


            int deleted = 1;
            while (0 < deleted) // 削除するものが無くなったことを確認するまで繰り返す
            {
                deleted = 0;
                foreach (Transform child in GameObject.Find("ゲームオブジェクト名").transform) // なぜか半分ずつしか取得できないようだ?
                {
                    if (Application.isEditor)
                    {
                        UnityEngine.Object.DestroyImmediate(child.gameObject);
                    }
                    else
                    {
                        UnityEngine.Object.Destroy(child.gameObject); // エディター画面でこれを呼ぶと、フリーズする?
                    }

                    deleted++;
                }
            }

 

kitashirakawa_chiyuri_80x100x8_05_hehe

「使ってみるぜ☆」

 

OKAZAKI_Yumemi_80x80x8_01_Damaru

「何やってんの?」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「へ~~~~~~っ☆!

将棋盤を作るのは むずかしいぜ~☆!」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「小さいし……☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋盤は 置けたが……☆

駒とか どうすんだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「ひよこを 9個 置いてみましょう」

 

 

 

 

はてなブックマーク - 目指せ☆!きふわらべが第5回電王トーナメント予選一位通過を狙う☆(*^~^*)<その3>
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

目指せ☆!きふわらべが第5回電王トーナメント予選一位通過を狙う☆(*^~^*)<その2>

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんか 81個の 升ゲームオブジェクト を 並べるのも大変なんだが☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「マウスを使って ゲーム・オブジェクトを並べていては ダメなのよ!

C#スクリプトに並べさせなさい」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「どうやってだぜ☆?」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「升のプレファブを81個 どばっと作って、

あとは transform の position をいじるのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プレファブって どうやって作るんだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「小春ちゃんに聞きなさいよ!」

 

\カタカタカタ!/

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プレファブって どうやって作るんだぜ☆」

「プレファブの前に、

まず 元となる ゲームオブジェクトを作れだぜ」


            // 見えないようにゲームオブジェクトを作ります
            GameObject gameObject = EditorUtility.CreateGameObjectWithHideFlags("Prefab Source", HideFlags.HideInHierarchy,
                        typeof(SpriteRenderer),
                        typeof(Rigidbody2D)
                        );

「スプライトも C#スクリプトで貼り付けろだぜ」


                SpriteRenderer c = gameObject.GetComponent();
                c.sprite = FindSprite("sprite name");
// 中略
        // スプライトを取得
        // 出典: http://tsubakit1.hateblo.jp/entry/20131222/1387654182
        public static Sprite FindSprite(string spriteName)
        {
            return System.Array.Find(Sprites, (sprite1) => sprite1.name.Equals(
                // スプライト名。「ファイル名_セル番号(0オリジン)」
                spriteName
                ));
        }
// 中略
        // スプライト一覧
        static Sprite[] sprites;
        public static Sprite[] Sprites
        {
            get
            {
                if (null == sprites)
                {
                    // 出典: http://tsubakit1.hateblo.jp/entry/20131222/1387654182
                    // Resoucesからスプライト一覧を取得
                    // あとでスプライトを取得するのに使う
                    sprites = Resources.LoadAll("Sprites");
                }
                return sprites;
            }
        }

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プレファブは?」

「ゲーム・オブジェクトと、置くフォルダーを指定しろだぜ」


            // プレファブを作成します
            PrefabUtility.CreatePrefab(
                // プレファブの元の置き場へのパス
                string.Format("Assets/Resources/Prefabs/{0}.prefab", "prefab name"),
                gameObject);

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なるほど……☆」


        // 元となるゲームオブジェクトは破棄します
        UnityEditor.Editor.DestroyImmediate(gameObject);

「一時的に作ったゲームオブジェクトは破棄しろだぜ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「サンキュー☆(^▽^)

やってみるぜ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うん☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プレファブは作れたが、プレファブを シーン・ビューに

置くには どうしたらいいんだぜ☆?」

「インスタンスを作れだぜ」


        // プレファブのインスタンスを作成し、シーンに配置します
        void CreatePrefabInstance(string prefabName, Vector3 cellPosition) {
        // プレハブを取得
        string path = "Prefabs/" + prefabName;
        GameObject prefab = (GameObject)Resources.Load(path);
        Debug.Assert(null!=prefab, string.Format("path={0} 要確認:(1)プレファブは作成していますか? (2)スプライトをスライスしましたか?", path));
        // プレハブからインスタンスを生成
        GameObject prefabInstance = UnityEngine.Object.Instantiate(prefab, cellPosition, Quaternion.identity);
        // ゲームオブジェクトを入れた変数 go_prefabsRoot を作っておく
        prefabInstance.transform.parent = go_prefabsRoot.transform;
}

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「サンキュー☆

やってみるぜ☆」

 

はてなブックマーク - 目指せ☆!きふわらべが第5回電王トーナメント予選一位通過を狙う☆(*^~^*)<その2>
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

目指せ☆!きふわらべが第5回電王トーナメント予選一位通過を狙う☆(*^~^*)<その1>

KIFUWARABE_80x100x8_01_Futu

「なぜ ココロザシが低くなっているのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「11月12日(日)は デジゲー博(http://digigame-expo.org/) に行ってるんで☆

予選一位通過が 最高の目標なんで☆」

kifuwarabe_80x100x8_09_umm

「じゃあ仕方ないな……☆

elmoと ponanzaと 技巧 をボコそうぜ☆」

KIFUWARABE_80x100x8_01_Futu

「あと カパックと やねうら王と 読み太と エイプリーと

大将軍と ハニーワッフルと くじらちゃんと うさぴょん2ダッシュと

コブラ もボコすんだろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あ、タヌキと たこっと と スクワーレルと…… ここは名前を挙げるブログじゃないんだぜ☆!

なんかもう まとめて ぶちのめそうぜ☆

カツ丼とか シルバーバレットとか 味がしない昼の弁当を食べるレベルで☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「飛車は2マス以上進めるようになったの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 今日から作る んで……☆

新しい きふわらべ を☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「勝算はあるの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「宝くじの1等を わたしが たまたま 8回 引き当てることぐらい

宇宙の歴史は 十分 繰り返されている☆

今回 それが起こる☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「いつも通りなのね」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、 マジック・ビットボード は諦める ぜ☆」

KIFUWARABE_80x100x8_02_Hidosu

もうダメだぜ☆! 今年は終わったぜ☆!

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ちょっと 待ってろだぜ☆

将棋の駒の絵を これから描くんで……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「そこからなのね」

 

まず駒

 

  

    

     

  

    

     

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あれっ☆? 将棋の駒って 成りを合わせて

14種類だっけ☆?

15種類ぐらいあった気がするんだが……☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「そこの駒箱 ひっくり返しなさいよ」

 

「将棋の基礎知識」公益社団法人 日本将棋連盟

https://www.shogi.or.jp/knowledge/about/

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あー、玉将かー☆ 王と玉は

おんなじでもいいだろ☆」

KIFUWARABE_80x100x8_01_Futu

「らいおん だろ☆」

 

     

     

     

     

     

     

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こういう画像も用意しておくと 使うだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「じゃあ、成る、成らない ボタンも要るわね」

 

 

 

  

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ 画像の回転は プログラムでやった方がいいのかだぜ☆?」

KIFUWARABE_80x100x8_01_Futu

「お父んが 後手 引いたらどうするんだぜ☆?

全部 逆さ か☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし、後手は 全部逆さ でやろう☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「wwwwwwwww」

 

 

  

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「つまり こう☆

部品をひっくり返すより、スマホをひっくり返せだぜ☆」

 

インターフェースを考えよう

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コンピューター将棋のプロトコルは

CSAプロトコル か、

USIプロトコル のどちらか2択、または両方使うかなんだけどな☆」

 

USIプロトコルの解説

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「USIプロトコルの解説は前に書いた☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「でも USIプロトコル は通信するにはいいんだが、

さて盤面つくろ、というときに うんっ!? と

頭を捻らなければいけないのが 難点だぜ☆

そこで☆」


シウネイライネウシ
 キ    ゾ
ヒヒヒヒヒヒヒヒヒ
       
       
       
ひひひひひひひひひ
 ぞ    き 
しうねいらいねうし

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「でもいいじゃないか、と思う時があるだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「パワーアップねこ を書くための ひらがなが

足りないわよ?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「先手なら PN、後手なら pn でいいんじゃないか☆

2文字になってしまうのが嫌かだぜ☆

じゃあ N、n で☆」

KIFUWARABE_80x100x8_01_Futu

「そんなんやるんだったら

CSAプロトコルにすればいいんじゃないか☆?

盤が書いてあるぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CSAプロトコルに らいおん とか無いだろ☆!

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋盤の先頭には 盤のサイズを書くことにしよう☆

(9,9) で本将棋な☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「ビットボードを使わないんだったら、64ビットや

128ビットに縛られることもないわね」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「でかくても 9x9 にしとこうぜ☆

局面ハッシュのぶつからない空間が

狭くなってしまうかもしれない☆」

 

ゲームとして操作するには

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「盤面があるだろ☆

動かす駒にタッチして、

動かす先にタッチして、

必要なら 成るか 成らないか 選ぶ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「最低限、これだけだっけ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「それだけねぇ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コンピューターに指させるときは、

盤面を設定して、

考えろ、と指示を送って 待つ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「結果が返ってきたようなら

指したあとの盤面に設定する☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これだけでいいんだっけ☆?」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「いいんじゃないの?」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「勝敗ぐらい知りたいだろ☆」

KIFUWARABE_80x100x8_01_Futu

「MAN COM の表記は 要らないのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

要る☆!

 

 

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「将棋盤の符号はどうすんの?

一、二、三、とか」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

要る~っ☆!

 

 

KIFUWARABE_80x100x8_01_Futu

「こんなけあれば 将棋ゲームは

作れるのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、盤面エディット画面 を作りたいんだぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「タイトル画面と メニュー決定ボタンと

終了ボタン だって欲しくない?」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「 欲しいぜ☆! 」

 

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これだけあれば十分だろ☆

Unity の Assetsフォルダーに 放り込もうぜ」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「画面サイズは タブレットに合わせるかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「……☆

ばらばらな画像なんかあっても ゲームに使えないぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「タイル状に おまとめ だぜ☆(^~^)」

 

 

はてなブックマーク - 目指せ☆!きふわらべが第5回電王トーナメント予選一位通過を狙う☆(*^~^*)<その1>
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket