たくのろじぃのメモ部屋スマートフォン用の表示で見るたくのろじぃのメモ部屋プログラミング(C#)の基礎やそれを応用した技術情報をメモしておくブログです。MineCraftTweetはじめにいよいよ建築自動化を行います。この内容が個人的に一番やりたかったことです。建築は設計図をもとにブロックを配置していきたいと考えていますが、設計図をどうするかが問題ですね。3次元的に表したいので、CADと行きたいところですが、それはちょっとレベルが高いのでEXCELで作りたいと思います。EXCELシートの行と列はX方向とZ方向、シートの枚数はY方向として、建築自動化プログラムを書いていきます。EXCELファイルを読み込むGoogleで調べていると、COM参照すべきかしないべきかでいろいろ議論されており、やめたほうがいいという記事を見つけました。qiita.comそこで、今回はNPOIパッケージを使います。www.nuget.orgあとはEXCELデータを読み込む処理を書いていきます。動かすときはExcelを閉じないとアクセス権を得られないので注意しましょう。文字列はこのままでいいのですが、数値の場合はちょっと工夫が必要です。NumericCellValueメソッドを用います。これはdouble型の返り値を返すので他の型へ変換する必要があります。文字列にしたいときはこのようにします。cell.NumericCellValue.ToString();他の型ならParseメソッドを使うと良いかもしれません。シートごとにデータを見るためのメソッドを作ってみました。Valueを3次元配列で宣言してそれぞれシート数、行、列の順にアクセスできるようにしました。}}さて、これでExcelファイルの読み込みはOKです。次に、得た値をマイクラのブロックIDに変換します。いっても、switch文で場合分けすればいいと思います。}}これをマイクラのコマンド送信メソッドに投げればいい感じに動きそうです。Excel設計図をもとにした自動建築Excelに設計図を書きます。上のプログラムに合わせるならば、1は石、2は草ブロックというようにしてセルを埋めていきます。セルを埋めたらプログラムを動かしていきます。ブロックのIDはWikiで調べるなどして登録しておくと、建築バリエーションが増えます。ちなみに色々改善して動かした結果はこんな感じです。www.youtube.com今回作ったコード参考にどうぞ。github.com参考NPOIの使い方で参考になりました。ありがとうございます。前回は湧き潰し自動化を改良しました。前回はクラスについて扱いました。技術系や数学系を多く扱います。Azure月別アーカイブはてなブログをはじめよう!takunologyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。