【ライフハック】フォルダ内のファイル名をメモ帳に保存する

こんにちは!bibiです。

暑い夏も終わり、だいぶ涼しくなってきましたね。暑いときは不満タラタラな僕でも、去りゆく夏に若干の寂しさも感じてしまうのは加齢のせいでしょうか。

今回は、ここ最近で一番便利だった、フォルダ内のファイル名をメモ帳に羅列して書き出すやり方のご紹介です!

なんと2ステップで完了!超らくちんですよ!

1.まずは、僕が大っ嫌いなアノ黒い画面を呼び出します。
・windowsであればプログラム検索で”cmd”
・macであればターミナルを起動(Finder > アプリケーション > ユーティリティ)
※macの場合Finder を起動して Command + Shift + u でも可能

2.コードを入れる
「ファイル・ディレクトリの情報を表示する」という意味のdirを頭に、デスクトップにテキストを書き出しますよ、という指示を行います。
↓こんな感じで記入します。

dir C:\Users\shiny\Desktop\folder180920 > C:\Users\shiny\Desktop\text_name_folder.txt
※windowsの場合

folder180920はファイルを書き出したいフォルダの名前を、text_name_folderは書き出した後のtext名(任意)となります。


書き出すフォルダ内です。※中二病?なんのこと?

以上です!これでエンター押すと、下記のように何事もない感じにはなりますが


できてました!!!

開いてみると・・・


できてりゅ!できてりゅの~~~~^^

これ、意外とフォルダ内のファイル名の書き出しって簡単な方法がない上に、使用用途が結構ある!

かなり便利なので、うまく使いまわして数分でも人生の時間を節約しましょう♪

それでは、あなたも素敵な社畜ライフを★~

MacとEclipseでJavaプロジェクトを作成しよう!③〜Tomcatで動かしてみる〜

こんにちは。お久しぶりのtutinokoです。

5期目に入り、ここ1ヶ月でクリエイティブ事業部の環境もだいぶ変わりました。
一言で言うと、忙しいのに忙しくなくて忙しい(どっちだ)

さて、前回の投稿からすっかり日が空いてしまって・・・
私も別の業務でEclipseを全然触らなくなってしまって、思い出しながら書くことになりますが・・・

前回記事
MacとEclipseでJavaプロジェクトを作成しよう!①〜EclipseのDLから画面表示まで〜
MacとEclipseでJavaプロジェクトを作成しよう!②〜Servletを使ってみる〜

では、EclipseにTomcatのプラグインを入れてみましょう!
サーバーの起動、停止はこのプラグインから行います。

メニューバーの ヘルプ>Eclipseマーケットプレイス を選択

検索フォームでtomcatを検索して、Tomcat Pluginをインストールします。

Eclipseを再起動してウインドウ上部にこのアイコンが出現したら完了です!

続いてサーバーの設定をします。

サーバータブを表示して(見当たらない場合は ウィンドウ>ビューの表示>サーバー でタブが表示されます)新規サーバーを作成します。

Apacheフォルダの中にTomcatの各バージョンがありますので、今回はとりあえず9.0を選択して「次へ >」をクリック。

動かしたいプロジェクトを選択して「追加 >」ボタンをクリックして「完了」!

はーい!サーバーにプロジェクトが追加されましたー!

今回動かすソースは以下になります。
プロジェクトは前回までに作成したものに手を加えたものです。
フォルダ構成とかファイルの作り方とかの話はまた後日で・・・!

index.JSP:最初に表示される画面
testScreen.jsp:遷移先の画面
TestSend.java:メインのプログラム
TestBean.java:データの受け渡しをする箱のようなもの

では、サーバーを動かしまーす!
作成したサーバーを右クリックして「開始」を選択します。

コンソールに赤い字がバァァーッと流れてちょっと恐ろしいけど、エラーなくストップすればOK!

ローカルホストにアクセスします!
アドレスは「http://localhost:8080/」+「プロジェクト名/」になります。
http://localhost:8080/SampleTest/

フォームにテキトーに入力して「送信!」

ちゃんとデータの受け渡しもできてますね!

駆け足になってしまいましたが、今回はここまで!
Tomcatを使えばローカルで簡単にJavaプロジェクトが動かせちゃうんですよ!

ただ、Tomcatは壊れやすいので、使い終わったらインストールしたプラグインできちんとサーバーを停止してからEclipseを終了してくださいね!

【Unity】C#で学ぶFlyweightパターン!^o^【メモリ削減、リソース節約】【オブジェクト生成の効率化】

 

こんにちは!河条です!
今回はUnityとC#でFlyweightというプログラム設計について学びましょう!

※事前知識:C#の基本構文、オブジェクト指向の知識

Flyweightパターンって?🤔

余分なオブジェクトの生成を防止、効率化するのに使えます!

例えばモンスターの絵柄は全部同じなのに、10体生成した数だけ同じように絵を生成してたら処理は重いしメモリ使うしであまりよくないですよね!

このモンスターのモデルデータやテクスチャデータを共有しよう!というのがFlyweightパターンです!

ひとまずどれくらい節約されるか結果から🤔

用途としてはあまり適切ではないですが、スライムそのものを10体普通に生成するパターンとFlyweight設計で生成したパターンでメモリの使用量を見てみましょ(わかりやすさ重視で)
 

まずは10体普通に生成するメイン処理!

 
結果!

  
次はFlyWeight設計で10体生成したパターンのメイン処理!!

 
結果!


普通の生成だとメモリ20Kバイト使っているのに対してFlyweight設計だと8Kバイトですね!
1つのオブジェクトのメモリ使用量と、生成数によってはもっともっと大きな効果が出そうです!

 

上のメイン処理って結局裏で何やっているの🤔

最低限必要なのは以下の2つです!
スライムそのもののクラス
スライムを生成するFactory(工場)

実際のコードを見てみましょう!
ただメイン処理では使ってないですが、Factoryクラスの利便性も紹介するために、スライムだけでなくキングスライムやメタルスライムのクラスも作ります!

 

ここは特に説明いらないですかね🤔
それぞれのスライムのクラスを作ってインターフェースを用意させてます

 
肝は次のスライム工場です

 

解説フェイズ🤔


やっていることは単純に3つです
1、工場クラスで共有化させたいオブジェクト(今回だとスライム、メタルスライム、キングスライム)をDictionaryに登録
2、工場クラスで生成されたオブジェクトを呼び出し側に渡す
3、呼び出し側は工場クラスを介してオブジェクトを操作する


オブジェクトの共有化と聞いて難しそうな処理してそうな感じでしたが、案外クラスもロジックも少ないですね!
実際にFlyweightパターン使うなら冒頭で書いた通りスライムオブジェクトのグラフィック等のが適切ですが
(^o^)


Flyweightパターンは中規模以上のゲーム制作なら必ず必要な場面あると思います!ぜひ使ってみましょー!
^o^
ちなみに他にもObjectPoolというオブジェクトの生成、破棄のコストを下げる設計もあるのですが、これは長くなりそうなのでまた。。。

【Unity】Unityで学ぶStrategyパターン!モンスターに色んな技を使わせよう!【C#】【プログラム設計】

 

こんにちは!河条です!
今回はC#でStrategyというプログラム設計について学びましょう!

今回はPHPじゃなくてC#だよ!こういう設計の知識はオブジェクト指向プログラムであれば他の言語でも使えるから知らない人はぜひ覚えてみてね🤗

※事前知識:C#の基本構文、オブジェクト指向の知識

今回やること

1、技をいくつか用意する
2、何体かのモンスターを生成する
3、モンスターは技を2つまで覚えられる
4、モンスターに1で作った技を使わせてみる

※ 今回はとりあえず機能の確認とStrategyがどんなものかを知るのが目的なので、モンスターの絵とかダメージ計算もなくDebug.Logに出力させるだけです

パッと思い浮かぶやり方

モンスターごとに技のメソッドを用意して、アルゴリズムをかく!となると思います!
ただしこのやり方は思いついただけでも2つ問題があります

1、異なるモンスターが同じ技を持っていても、それぞれモンスタークラスごとに同じ技のメソッドを書かなくてはいけない🤔

技の仕様変更あったらモンスターごとに書いていた同じ技のロジックを全部書き換えていくという作業が必要になり面倒ですね😇チーン

2、今覚えている2つの技をフラグか何かで管理する羽目になる🤔

技の数だけ条件分岐が必要という面倒くささになります。まあList使えば何とかできそうな気もするけど😇チンチーン

Strategyパターンとは

ではどうすれば良いか!ということでStrategyパターンです!
Strategyパターンはいろんな状況、仕様に応じてアルゴリズム(今回でいうモンスターの技)を簡単に変更することができます!
これを使って上記の2点の問題を解決しましょう!

ザックリとした考え方

実装方法としては、技クラスという抽象クラスを継承させた技固有のクラスを何個も作り、インスタンス化させたモンスターに2つ技を持たせるイメージです!

これでモンスターごとに同じ技を記述する必要は無くなりますし、技の仕様が変更になってもそれ1つだけ直せば大丈夫です!
また、モンスターには1番目 or 2番目の技を使え!という命令だけで条件分岐もなく持たせている技を使わせることができます!

実際のコード

まずはいきなりメイン処理を!割とスッキリしていると思います!
条件分岐も一切使わずに、また技の切り替えも簡単にできますね!
また新しい技が増えたとしてもモンスタークラスは触る必要なく、技クラスを増やしてインスタンス化するだけで対応できます!(依存関係のないプラグラムってやつですね!)

上のコードの実行結果(技効果も載せてます)

ではメイン処理のようなプログラム組むための準備となる技クラスとモンスタークラスを作っていきましょう!

まずは冒頭でも書いた技の抽象クラスからです!

次に技クラスを継承させて実際の技のクラスを書きましょう!

最後にモンスタークラスです!

ざっくりまとめ


モンスタークラスにprivateな技の変数を2つ用意し、メイン処理で代入しています!
攻撃時は代入した技に応じてAttack関数とSkilleffect関数が動いてくれます!

今回はカワノバナとカワノカゲのモンスター二匹だけだけど、三匹になっても四匹になっても同じようにモンスタークラスを生成して、技を代入すればいいです!
新しく技を増やしたかったら(水鉄砲とか)その都度、技クラスを作ればモンスタークラスはそのままで拡張できます!
依存関係のないプログラムの意味はこれで何となくわかると思います!

ただあくまでもStrategyの一番の特徴は簡単にアルゴリズムの切り替えができることです!
結構汎用性高いと思うのでぜひ使ってみてください!!!!(^o^)人(^o^)

MacとEclipseでJavaプロジェクトを作成しよう!②〜Servletを使ってみる〜

こんにちは。tutinokoです。

前回のJavaの画面表示からの続きです。前回のは画面を表示するだけのほぼHTMLなので、もっとJavaらしいことをしましょう。

前回のソースからそのまま追加していきましょう。
index.jspに何かデータを送信したいので簡単なフォームを作ります。

サーブレットを作成してデータを受け渡すプログラムを作成しましょう。
プロジェクトエクスプローラでJava/srcで右クリックして、新規>サーブレットを選択します。

クラス名を入力して「次へ」を押します。

クラス名と同時にパッケージも作ってしまいましょう。
今後、ソースファイルが増えていくと、役割ごとにパッケージを分けた方が見やすいです。

今回はtestパッケージの中に全部突っ込んでしまいますが。

さて、次の画面でそのまま「次へ」を押します。

次の画面で自動で欲しいメソッドを作成してくれる便利機能を利用します。
今回はGETでフォーム送信しているので、「doGet」を選択して完了ボタンを押します。

そうすると自動で空のメソッドが挿入されたファイルが出来上がります。
クラス名の上のアノテーション

@WebServlet(“/TestSend”)

これと先ほど作ったフォームのaction=”TestSend”が結びついていて、送信ボタンを押すと、actionでつけた名前のプログラムめがけてビューン!と飛んで行って処理をしてくれるわけですね。

実際に処理するプログラムは、doGet()メソッドの中に書いていきます。

ちょっと長くなるので、今回はここまで!
Eclipseって難しいこと考えなくても骨組みを用意してくれるので便利ですね!

保存保存