Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

プログラミング

良いソフトウェア・デザインとは? " A Philosophy of Software Design " 書籍レビュー

コーディングが出来たとしても、ソフトウェア・デザインとなるともっと大きな視野が必要になる・・・と悩んでいた時にちょうど巡り合えた一冊についての感想をまとめたいと思います。とても良い本ですが、残念ながら日本語版は現在出ていません。 この本、A …

Unity e-book "Level Up Your Code With Game Programming Patterns"を読みました。 [ 感想 レビュー ]

Unity公式から発行されているe-bookである、 Level up your code with game programming patterns を読んだので、その感想及びレビューを書きます。 公式による、日本語版の紹介記事です。本書の冒頭部分の内容が抜粋されています。ただし、e-book自体は英語…

『SOLID原則』について考える。思考メモ [ オブジェクト指向プログラミング ]

オブジェクト指向プログラミングにおいて指針となるSOLID原則について、自分なりに考えをまとめます。つまり、『あくまで個人的な見解です』 現在読み進めているUnityによるe-book "Level Up Your Code With Programming Patterns"はプログラミング・パター…

Unity 2021 LTS 祝リリース! C#8対応で可能になった新しいswitch式について

Unity 2021LTS版がリリースされました。多くの新機能があるのですが、今回はUnityが、C#8.0に対応したことで可能となった、新しいswitchの書き方についてです。 なお、文とは"statement"を指しますが、この新しい構文は厳密にはstatement(文)ではなく"式"…

プログラミングにおける、根源的な4大ツールについて考えてみた!

プログラミングの目的はコーディングではなく、問題解決です! なので、今回選出するプログラミングにおける4大ツールは、問題解決をするためのツールということになります。どれもプログラミングだけに限らない、様々な問題への取り組み方を示す考え方です…

足し算だけで掛け算および、べき乗算を計算することを考える、コードを書く [ Python ]

コンピュータ内部、具体的にはCPUでは、足し算だけで四則演算の他の計算も行っています。つまり、2×3だろうが9÷3だろうが5-1だろうが、全ては二進数の加算として表現され、そして計算処理されているということです。 a - bはbの補数を足す、a × bはaがb個あ…

C#におけるインターフェースは、横の繋がりを作るための変換アダプター [ interfaceとは ]

C#におけるinterface : インターフェースについてです。継承やポリモーフィズムはclass間の縦の繋がりを作り出したり、それを利用する機能であるのに対して、interfaceは横の繋がりを作り出すための機能と言えると思います。 interfaceを使うことで、異なるc…

配列の浅いコピーと深いコピーについて | 配列の宣言、代入

配列とは、タイプが同一の変数の数列を扱うためのデータタイプです。 配列(array)にはいくつかの制限があります。宣言時に指定した要素数で固定されますし、そのせいで自由にデータの挿入が出来なかったり。C#では、例えばListの方が使いやすいので、無理…

停止性問題について考える。Halting Problem

コンピュータに何が出来て、何が出来ないのか、についての話です。 *本記事は個人的な思索をまとめたものなので、内容や記述の正当性についての保証はしかねます! Unityも触っていますが、やはりプログラミング自体も面白く、そちらに多く時間を掛けている…

オブジェクト指向をもっとシンプルに考える!変数と関数も。

オブジェクト指向プログラミングにおける初心者への説明は、まどろっこしい。もっとシンプルに考えることは出来ないか、という試みです。とりあえず、変数と関数から行ってみます。 変数は箱のようなもので、箱じゃない 変数は箱ではありませんし、そもそも…

オブジェクト指向とは単なる分割、縮小、連携のための手段だ!

オブジェクト指向を思想のように捉えることは混乱を生みます。エレガントな手段!なんてものではなく、タイトルの通り、それなりの規模のプログラミングに対する妥当で、現実的な手段ではないのでしょうか。オブジェクト指向の本質を理解した気がするので、…

関数とは再利用よりも抽象化するためのもの?

関数といえば、プログラミングにおいては、なんらかの仕事をする「機械」のようなものであり、C#上だとメソッドとも言われます。 関数とはコードを部品化、あるいはモジュール化して再利用しやすくするためのものだ、というような説明がなされます。それはそ…

正規表現が面白い!!

正規表現という字面を見ると、なんだかお堅い感じがして尻込みしていましたが、分かってみるとこんなに便利なモノもないなと感動しました。 このページが分かりやすいです。 サルにもわかる正規表現入門 やっぱ、2000年前後の個人の方が真面目に作ったページ…

プログラミングにおける様々な記号の読み方!プログラミング入門

意外とスルーされがちな、プログラミングにおける様々な記号の読み方についてまとめていきます。 . , ; : [] {} _ * | () <> ! " ' = + - % / \ ^ 周知の事実? 自分を含む、ズブの素人というのは、プログラマの人が初めから分かっているようなことすら分か…

神ゲー"じゃんけん"でプログラミングを考える!!

神ゲーの1つである、ジャンケンをプログラミングで再現することで、プログラミングの最初から終わりまでの一連の流れをステップごとに追って説明していきます。それによりプログラミングとはなんだろうということを考察する内容です。 ジャンケンは分かりや…

なぜプログラミングが分からなかったのかを振り返る!<入門への道 >

そこそこプログラミング出来るようになった現在から、右も左もわからなかった頃、入門者時代を振り返り、なぜプログラミングは分からないのか?ということについての根本的原因を明らかにするのが本エントリの狙いです。一般的な観点(非プログラマ的観点)…

プログラミングってこういうことだよね?というチャート図を描いてみた。

結局、プログラミングとはどういう作業なんだろう?ということを一覧できるような図を描いてみよう、というのは以前から思っていました。 プログラミングを一概に説明するのは無理でしょう。でも初心者の頃にそういうのが欲しかったんですよね。大体でいいの…

C#でFizzBuzz問題に挑む!Main内で五行達成。

FizzBuzzとは英語圏における言葉遊びで、複数人で数字を順に言っていくわけですが、3の倍数の時は"fizz"、5の倍数の時は"buzz"、3と5の公倍数の時には"FizzBuzz"と言うのがルールになっています。 FizzBuzz問題とは、この遊びをプログラミングで再現するとい…

アクセス修飾子やプロパティは、クラス連携のセーフ・ガード。Unity上での実例も含めて。

public, privateとはつまりは公開、非公開のことであります。 今回は"クラス"同士が連携する際のセーフ・ガードの役割を果たす、アクセス修飾子、プロパティについてまとめてみたいと思います。Unity上の使い方についても書いてみました。 プログラム全体を…

プログラミングの本で、コードをページにまたがらせるな!! [ 小ネタ ]

小ネタというか、小言というか。タイトルの通りです。 でも、実際かなり切実な願いですよ。 ただでさえ初心者はコードを読むこと自体が難しいし、キツイです。コードがページによって、分断されるなんて嫌がらせみたいなもんです。読みやすいコードを書こう…

ゲームのプログラミングにおいても重要な『列挙体』 Enum について。

人間にとって、意味のない識別番号を読みやすく、理解しやすくするために、列挙体"enum"は重要な存在! ※2017/07/12 じゃんけんの例を追記 ゲームと列挙体 ドラクエのやくそう、ポケモンのモンスターボールなど。ゲームにおいて、アイテムというものは無くて…

C#の攻略本はない、という記事の改訂について!

もう半年も前になるんですね。 攻略本なんてないよ!という宣言とともに、自分がプログラミング学習をどう打開していったか、ということを書いた記事です。 最近、この記事へのアクセスが多いんです。調べてみたら、『C#初心者』という検索ワードで、9番目ぐ…

初心者が考えるHello World!の偉大さ

全てのプログラマが、1番最初に書くコードとされる、"Hello World!" シンプルであると同時に、これからプログラミングを始めようとする人間にとっては退屈極まりない、つまらないプログラムです。しかし、その偉大さと意義が初心者なりにわかってきたので、…

『プログラミングを独習するのには10年かかる』を読んで。

発端はコチラの記事です。 残酷な真実から目を背けてはいけない・・・('o';)。 この記事と元記事(プログラミングを独習するのには10年かかる)を読んでみて、考えたことをプログラミング初心者としての立場から書いてみたいと思います。 何を学ぶべきか?と…

ゲームプログラマのためのコーディング技術を読んで。やはりいい本はC++を採用してる問題も合わせて。

自分のような一皮向けようとしている初心者にとっては非常にわかりやすく、レイアウトなども含め、いい本だと思いました。特に"クラス"については、いかにクラス設計すべきかの指針を具体的に書いており、そもそもクラスは何のために必要か?という部分も学…

For文の"For"って何だろう?という疑問。ある3つの言語を巡る小旅行。

何回繰り返しますか? - How many times should I repeat for? - そもそも論な話題です。同じような処理を何回も繰り返すのが得意なコンピュータにとって、プログラム上なくてはならないのがForループ文。でもこの"For"って何だろう?とずっと疑問に思ってま…

プログラミングにおける名付け、ネーミングの重要性について。

プログラミングにおいて、重要なのが変数やメソッドのネーミング。適切な英単語を選ぶことの大切さについて考えてみました。英語力問題に切り込みます。 名に魂は宿る。 プログラミングにおいて、メソッドや変数の名前付け、"ネーミング"は大事です。どんな…

コードを書くまでの5つの手順。どうすればコードを書けるのか、について。改訂2版

コードを書くに至るまでの道筋を5段階に分けてみました。実は"コードを書く"コーディングというのは、プログラミング作業全体の内の一部分に過ぎません。 コードを書くまでの間に相応の下準備があり、いきなりエディタやIDEに向かっても書けない、ということ…

プログラミングにおける可読化と抽象化。C#は英文に近いけど・・・編

C#はかなり英文に近く、そういう意味では読みやすそうに見えます。しかし、あくまでプログラム文を読むということは、自然言語の文章を読むということとはまた別の問題なんだ、ということについて、歴史を踏まえて考えてみました! 抽象化とは機械の感覚を人…

アセンブリ言語とC言語。コンピュータのコアの部分を知る。

いまさらC言語なんて・・・ましてやアセンブリなんて・・・と思うかもしれませんが、人によっては最適な入り口は違うと思いますし、いろいろなプログラミング入門の仕方があっていいんではないか?ということです。 いいサイト見つけました この記事で、純プ…