teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

中断したところから回答再開

2021/11/04 06:32

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -13,6 +13,14 @@
13
13
  それと、プログラミング全体の考え方と基礎部分は別物です。
14
14
 
15
15
  入門書(サイトも含め)でやっているのは**道具の使い方のみ**です。
16
- 数学と一緒です。
16
+ 数学と一緒です。(ただ、ご指摘にあるように、フレームワーク関連のやつだとちゃんと載っている可能性はありますね)
17
17
 
18
- そもそもプログラミング言語がある -> じゃあゲームを作ろう …かではありません
18
+ とりあえず、入門書かサイトを一つ保持して、それをベースにやってみしょう
19
+ そして、「プログラミングとは」とかを学びましょう。そうすれば質問者さんが躓いている部分が解消される可能性がありますよ。
20
+
21
+ プログラミングの全体的な考え方は言語や分野にはそんなに大きな差はありません。(有るにはあるが、大部分はほぼ同じ)
22
+ それに加えて分野ごとの作法とかが違うだけです。
23
+
24
+ 「プログラミング 絵本」とかでggっても意外とヒットします。私が読んだことがあるものは[プログラムの絵本](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E7%B5%B5%E6%9C%AC-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%8B9%E3%81%A4%E3%81%AE%E6%89%89-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%82%A2%E3%83%B3%E3%82%AF/dp/4798146749)だった気がします。(いや、アルゴリズムの方だったか? うろ覚えだが)
25
+
26
+ 他にも本があるようなのでそれを読んでみては?

1

修正(一旦中断あり)

2021/11/04 06:32

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -15,43 +15,4 @@
15
15
  入門書(サイトも含め)でやっているのは**道具の使い方のみ**です。
16
16
  数学と一緒です。
17
17
 
18
- そもそもプログラミング言語がある -> じゃあゲームを作ろう …とかではありません。
18
+ そもそもプログラミング言語がある -> じゃあゲームを作ろう …とかではありません。
19
- もともとは軍事利用です。弾道計算や暗号解読とかです。
20
-
21
- 確かにこれらは人間がやろうと思えば可能です。ですが現実的ではありません。
22
- 単に数学の問題を解くのではく、時間がネックになります。
23
- だって、当時は戦時中。戦時中はいつの時代も、『情報が戦を制す』です。
24
- そんなときにちんたらとやっていては負けてしまいます。なので機械に任せようと。
25
-
26
- でも機械は0と1からなる機械語しか認識できません。
27
- 1011011100110000110110110111100000.. のようなものです。人間にはきつい。
28
- なのでアセンブラとかのような人間の言語に近い言語が開発されました。
29
- ですが、このアセンブラとかでもまだ問題がありました。
30
- gotoの乱発でいわゆるスパゲッティコードになったりと、保守が面倒に。
31
- (まあ機械語よりはだいぶマシか)
32
-
33
- そこでC言語とかのような、for文だの関数だのを使えるようにした言語が開発されました。
34
- それでもデータと処理(= 関数)は別物でした。たまたまそのデータを処理するだけです。
35
-
36
- そこでオブジェクト指向という考え方を取り入れた言語(C++,Java, C# ... とか) が開発されました。
37
-
38
- オブジェクト指向(以降、OOP)は、**データ(= フィールド)と処理(= メソッド)をひとまとめにしたオブジェクト**なるものを中心に見る発想法です。
39
-
40
- データと処理をひとまとめにすることで、「**オブジェクトだけが対象データと処理方法を知っている**」という状態になります。それにより、『オブジェクトに管理や処理を任せる』ということが可能になります。ボタン系はボタンのオブジェクトが、ファイルの書き込みはファイルの書き込みをするオブジェクトが……的な。
41
-
42
- そして、クラスだのメソッドだのは単にこのOOPの考え方を表現するための方法でしかありません。
43
-
44
- オブジェクトを作るにしても、C#とかのような言語ではコンパイラとかに『こういうデータ構造のやつがあるよ~』と教えてあげなければなりません。その役割をするのがクラスです。
45
-
46
- クラスとしてまとめて、このクラスの構造をもとにオブジェクトを生成する。
47
-
48
- で、プログラミングというのは『こう書けばいい』というものではなく、言うなれば『**現実世界のシミュレーション**』です。ロジックを書き下すのです。
49
-
50
- たとえば手作業でやるならどうするかとかを考え、それを独自の書き方(for文だのif文だの)で書き下す。
51
- そしてそれをコンパイラとかが機械語とかに翻訳して実行する。
52
-
53
- それによって、ウィンドウを出したり画像を表示したりできるので、それでゲームをとかを作っているだけです。
54
-
55
- なので考え方と道具の使い方は別です。
56
-
57
- 後はご自分で調べてください。