はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

C#

【C#】bit全探索を行う

はじめに 今回はbit全探索を実装していこうと思います。bit全探索とはN 個のものから、選ぶ・選ばない(true,false)を全列挙して調べ上げる手法のことです。例えば3個の番号がついたボールがあり、選んだときは1(true),選ばなかったときを0(false)とすると…

【C#】回分かどうか調べる

はじめに 今回は回分かどうか調べてみようという記事になります!回分というのは「しんぶんし」のように上から読んでも下から読んでも同じになる文句のことですね。これを実装してみましょう。 はじめに やり方 さいごに やり方 public static bool IsPalind…

【C#】二分探索(バイナリサーチ)をする

はじめに 今回は二分探索をしてみようという記事になります! はじめに 二分探索とは コード さいごに 二分探索とは 二分探索(バイナリサーチ)とはソート済みの配列に対する探索アルゴリズムの一つです。 ソート済みのリストや配列に入ったデータ(同一の値…

【C#】IEnumerable<T>とyield returnのコンビネーションアタック

C#

はじめに 今回はIEnumerableとyield returnについての記事になります!ネットサーフィンをしていたところ、以下のような記事を見かけました。qiita.comこれを見た時にあまりのすごさにビックリしてしまいました。この中で重要になってくるIEnumerable<T>とyield</t>…

【C#】オーバーフローを検知する

C#

はじめに 今回はオーバーフローの検知をしてみる記事になります!そのためにはcheckedというキーワードを用いることでできるようになります。早速みていきましょう。 はじめに デフォルトはどうなるか オーバーフローを検知する さいごに デフォルトはどうな…

【C#】素数判定のプログラムを書いてみる

はじめに 今回は素数判定のプログラムを書いてみようという記事になります!素数とは一とその数自身との外には約数がない1より大きい正の整数のことです。例えば7は素数ですが、8は素数ではありません。では早速みていきましょう。 はじめに 素数判定 改良し…

【C#】順列・組み合わせの数を求める

はじめに 今回は順列・組み合わせの数を求めてみようという記事になります。ただ列挙するのではなく数を求めることに注意してください。では早速みていきましょう。 はじめに 順列 組み合わせ さいごに 順列 順列とは「異なるn個の中から k 個を順番をつけ…

【C#】Seleniumを使ってChromeを自動操作してみる

C#

はじめに 先日ネットサーフィンをしていたところ、面白そうなライブラリを見つけました。www.selenium.devこれを用いることでChromeなどのブラウザを自動操作ができます。何かの自動売買をしたりもできるみたいです。 今回は以下のようなものを作るのを目標…

【C#,Unity】dynamicを使ってダックタイピングを実装してみる

はじめに 今回はダックタインピングを実装してみようという記事になります。C#では普通クラスやインターフェイスの型情報によりメソッドを呼び出しますが、「同じ名前のメソッドを持っていれば変数の型は問わない」というダックタイピングという考え方も稀に…

【C#,Unity】IComparableインターフェイスを使ってオブジェクト同士を比較する

はじめに 今回はIComparableインターフェイスについての記事になります!C#でたびたび登場する主要インターフェイスであるIComparable・IComparable<T>ですが、これによってオブジェクト同士の比較が保証することができます。docs.microsoft.comdocs.microsoft.</t>…

【C#】クイックソートを実装してみる

はじめに 今回はクイックソートについて取り上げていきたいと思います。クイックソートは最悪計算時間は𝑂(𝑛2)ですが、平均計算時間が𝑂(𝑛log𝑛)である比較的高速なソートです。実際の処理の流れをWikipediaから引っ張ってきました。 適当な数(ピボット)を選…

【C#】変換演算子(implicitとexplicit)を軽くまとめてみる

C#

はじめに 今回はimplicitとexplicitについて取り上げていこうと思います。正直あまり見かけたことないですが、これは型変換(キャスト)のときに活躍するキーワードです。下のコードをみてみてください。 int a = 10; float b = a; // 暗黙的なキャスト float …

【C#】最大公約数・最小公倍数を求める

はじめに 今回は二つの整数の最大公約数を求めるプログラムについてやっていきたいと思います。最大公約数とは共通の約数のうち最大のもののことを指します。例えば12と18の最大公約数は6となります。早速やっていきましょう。 はじめに 求め方 プログラム …

【C#】コンストラクタ内で別のコンストラクトを呼ぶ

C#

はじめに ふと複数のコンストラクタを書いていて、ほとんど同じ内容だから上手くまとめられたらな・・・と思っていたところコンストラクタ内で別のコンストラクタを呼ぶ方法を見つけました。それについて書き残しておきたいと思います。 はじめに 方法 さい…

【Unity,C#】型変換のときに例外でも止めずに実行を続ける(TryParse)

はじめに 今回は型変換の際の例外についての記事になります!突然ですが、このコードを見てみてください。 private void Start() { string str = "1234五"; int num = int.Parse(str); Debug.Log($"num: {num}"); } このコードでコンソールの出力がされるこ…

【Unity,C#】foreachがfor文に処理速度で勝つとき

はじめに 今回はforeachとfor文についての記事を書いていきたいと思います。for文とforeachにはそれぞれ特徴があり、使い分けが必要ですよね。確か私はfor文は高速だけど、foreachは可読性が高いといった教え方をされたような気がします。ただふと疑問に思っ…

【Unity,C#】それって本当に配列やListでいいんでしょうか?

はじめに こんにちは、先日松屋の横にスライドするドアを必死に押して開けようとしていたはなちるです。最近ネットサーフィンをしていてこのような記事を見つけました。qiita.com見てみると非常に興味深かったです。特にここは気を付けなきゃと感じたところ…

【C#】LINQのZipメソッドで複数のコレクションを合体する

はじめに 今回はLINQのZipメソッドで複数のコレクションを合体する記事になります!たとえばこのような状況はないでしょうか? 一次元配列やリストといった二つのコレクションを一つに合体させたり、2つのシーケンスに対応した要素から何らかの操作を加えて…

【Unity】列挙型にビット演算を用いて同時にフラグをたてれるようにする

はじめに 今回は列挙型にビット演算を用いて同時にフラグをたてれるようにする記事になります!突然ですが、こちらのコードを見てみてください。 public enum Magic { Hyado, Gira, Hoimi, Mera } いわゆる列挙型といういうやつですね。ドラクエの魔法を列挙…

【Unity】LINQと要素のインデックスについて

はじめに 今回はLINQと要素のインデックスについて掘り下げてみる記事になります!以下のコードを少し見てみてください。 IEnumerable<string> names = new[] { "スライム", "ももんじゃ", "ドラキー" }; Debug.Log(names[1]); なんとなくやりたい事が分かると思いま</string>…

【Unity】Event関連の一体どいつがイベントハンドラー、Sender、Receiverなのか

はじめに イベントについて話をしていた際、イベントハンドラ・Sender・Receiver・購読などの用語が出てきて、あれそれってどこの部分のことだっけ?となってしまったことがありました。まだsenderやsubscribeといった用語は単語の意味からなんとなく分かる…

【Unity】Unityでdelegateを用いたStrategyパターンを学んでみる

はじめに 前回UnityでStrategyパターンを学んでみるといった記事を書きました。www.hanachiru-blog.comただWikipediaを見ていたところ、このような表記を見つけました。 C#はJava同様にクラスやインターフェイスによるポリモーフィズムを用いることもできる…

【Unity】UnityでStrategyパターンを学んでみる

はじめに 今回はStarategyパターンを使って簡単なサンプルを作ってみる記事になります!StarategyパターンをWikipedia先生で検索してみると、 Strategy パターンは、コンピュータープログラミングの領域において、アルゴリズムを実行時に選択することができ…

【Unity】インターフェイスメンバーの明示的な実装

はじめに 今回はインターフェイスのメンバーを明示的に実装する方法についての記事になります!普通にインターフェイスを実装した場合と違い、いつくか変わった動作をします。 普通の実装と明示的な実装の異なるところ 最初に結論を言ってしまいたいと思いま…

【Unity】MonoBehaviourを継承していないクラスでコルーチンを使う(コールバックも)

はじめに 今回はMonoBehaviourを継承していないクラスでコルーチンを使う方法についての記事になります!加えてその際にコールバックでやや手間取ってしまったので、そちらについても触れたいと思います。 MonoBehaviourとコルーチン Unityのコルーチンとい…

【Unity】ネットに繋がっている状態かを簡単に調べる

はじめに 今回はネットに繋がっている状態か調べる記事になります!ネットに繋がっているかはApplication.internetReachabilityというインターネットにアクセスしているかが分かるプロパティがUnityEngineにはあります。これを使うことで簡単に実装できるの…

【Unity】派生クラスから基底クラスのコンストラクタを実行する

はじめに 今回は派生クラス(サブクラス)から基底クラス(スーパークラス)のコンストラクタを呼ぶ記事になります!これを実現する機能はC#に備わっているのですが、やや独特な表記だと個人的に思ったのでこちらに残しておきたいと思います。 やり方 基底ク…

【Unity】命名で悩んだときに日本語から英語に変換してくれるサービスを見つけた

はじめに 命名で悩んだときに日本語を英語に変換してくれるサービスを見つけました。そこで、せっかくなのでここで少し紹介しておきたいと思います。 サービス かなり有名みたいなので知っている方は知っているかもしませんが、紹介したいサービスはcodicと…

【Unity】セリフなどのデータをGistを使って簡単にWebサーバー上におき、読み込む方法

はじめに 今回はセリフなどのデータをGistを使って簡単にWebサーバー上におき、読み込む方法についてに記事になります!前回はJsonの作り方からmyjsonというサービスを使ってWebサーバーからJsonを取得するところまでをやりました。www.hanachiru-blog.comww…

【Unity】UnityでJsonをWebサーバーから読み取る

はじめに 今回はUnityでJsonをWebサーバーから読み取ることについての記事になります!前回はJsonの使い方からローカルに保存したJsonを読み込みをしました。www.hanachiru-blog.com一応前回の続きという流れでいきたいと思います。 利点 なぜローカルに保存…