これからC言語を学ぶにあたって

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
究極の初心者

これからC言語を学ぶにあたって

#1

投稿記事 by 究極の初心者 » 16年前

皆様、初めまして。

掲示板を見ていると、どんな質問であろうと、きちんと回答されて下さる方が多く、とても好印象でしたので、思い切って質問させて頂きます。

私は、未だにC言語の何もわかっていません。
どのようなものなのかも曖昧なくらい・・・・・要は、C言語によってプログラムを作れる程度くらいの知識しかありません。この認識も当たっているのかも、自信はありません・・・・。
その程度しかないのです。

当然、今後勉強を始めるつもりです。
それにあたって、先輩方に質問させて頂きます。
少々長くはなりますが、ご教授頂けたらと思いっております。

まず、私はちょっとしたきっかけから、パズルゲームみたいなもの(ゲームプログラミングの館にある、ぷよぷ○風のゲーム)を作りたいと思っています。
そのためにどうすればいいか・・・・それをネットで検索した結果、ここに辿り着きました。

質問は幾つかありますので、わけて聞きたいと思います。



初めに、私のことを簡単に紹介させて頂きますね。


・自身のスペック

C言語・・・・触れもしていない、究極の初心者。
数学知識・・・・数学ⅠとAは復習は必要かもしれないが、理解できる。数学ⅡとBも可能。数学Ⅲ.Cで理解不可。
PC知識・・・・あまりないです。常識の範囲はわかります。


・目標

第一は、ぷよぷ○風のパズルゲームを作り上げること。
また、それが出来たならば、次なる目標として、他のジャンルにも挑戦したい思っております。
最低限、それなりに遊べるパズルゲームができる。これが目標になります。




以下、質問内容になります。


1. C言語を理解した上でなければ、やはりC++言語はできませんか?

私の知識としては、述べたとおり、C言語を理解するも何も、全く触れていません。本当の初心者です。
そんな私ですが、C言語を飛ばして、ゲームプログラミングの館にある作り方を、きちんと理解していけば、パズルゲームは作れるのでしょうか?
それとも、やはり、C言語を理解しなければ、C++言語は理解できませんか?

また、もしかしたら、作り方が勝手にC++言語だと勘違いしているのでしょうか?
ゲームプログラミングの館にある作り方の最初に「VisualC++(VC++)」という記述があったので、C++言語なのではないかと、思っているのですが・・・。



2. もし、C言語の勉強が必須だとすれば、どのようなことをすればいいのでしょうか?

参考書を読むということは、当たり前だとは思いますが、例えば、お薦めの参考書などあったら教えて頂きたいと思います。
また、私が希望する、パズルゲームを作るには、「最低、C言語のここから、ここまでを理解すれば十分だよ」など、アドバイスも頂けると、近い目標もできますので、非常に助かります。


3. ゲームプログラミングの館にある、作り方はパズルゲームに対応できますか?

目次を見た感じ、シューティングや、アクションの作り方っぽいのですが、パズルゲームを作るのにも対応できるのでしょうか?
私が初心者だから、そう思うのかもしれませんが、シューティングとパズルでは、だいぶジャンルが違う気もするのですが・・・・・。


4. 最後に、これから勉強するにあたって、簡単でいいのでアドバイスは注意事項をご教授下さい。

例えば、C言語を勉強するにあたってのやり方。こうすると理解が早まるや、こういうやり方は絶対やめた方がいい。また、このサイトがわかりやすいや、パズルゲームなら、この参考書がいいな(ないとは思いますが)、など、何でも構いません。

今現在、C言語に関しては、良くも悪くも、まっさらな状態です。
物事を、1から学ぶということは、間違って覚えると修正が大変だということを理解していますので、なるべく、正しい道しるべを頂けたらと、切に思います。



全ての質問に答えて下さらなくても結構です。
これなら教えられるけど・・・・というものがあったならば、それだけでもご教授下さい。
少しでも、多くの方の教授があればと思いますので・・・。


それでは、長くなりましたが、ここまで読んで頂き、ありがとうございました。
どうか、よろしくお願い致します。

kazuoni

Re:これからC言語を学ぶにあたって

#2

投稿記事 by kazuoni » 16年前

はじめまして。
自分もまだ初心者なので詳しいことは伝えられないですが^^;

パズルゲームはゲームのジャンルの中でもとっつきやすいほうかなって思います。
ただ、CPUを作るのは少々時間がかかるかもしれません。

>1. C言語を理解した上でなければ、やはりC++言語はできませんか?
ゲームプログラミングの館ではC言語+DXライブラリで書かれています。
ちなみにvisual C++は開発環境というものであり
C、C++、C++/CLIに対応しています。
C言語の知識+DXライブラリを使えばゲームは作れます。

>2. もし、C言語の勉強が必須だとすれば、どのようなことをすればいいのでしょうか?
うーん。作っているうちにあれもこれもと必要になっていき
すべてをカバーしてしまうような気もするのですが^^;
http://www9.plala.or.jp/sgwr-t/
↑にあることは理解しておいたほうがいいかなと思います。
まずはやはり制御構造ですかね。
if,while,for,switch
などを使いこなせればちょっとしたソフトがつくれるかもしれません(アバウト)
その際、数Aの論理と集合(名前こんなだったかな?)
あたりは結構重要だと思います。

>3. ゲームプログラミングの館にある、作り方はパズルゲームに対応できますか?
おそらくできます。

>4. 最後に、これから勉強するにあたって、簡単でいいのでアドバイスは注意事項をご教授下さい。
自分もゲームが作りたい一心で始めました。
C言語の知識ゼロでゲームプログラミングの館を読破して
「え、なんでここがこんな文なの?」
「○○の機能ってどうやってつけるんだろ」
と思ってからサイト巡りや、学校の図書館の本を参考にして勉強してました。(しています)
自分の場合はですが、あれもこれもとやっていたら挫折しました^^;
たぶん完成が見えなかったからだと思います。
やはりまず簡単なゲームを作っていくことが一番いいかと思います。
あと参考書はあると便利ですが、なくても大丈夫です。
グーグルで検索したらいっぱい出てきます。
その際、サンプルコードがいろいろ載っていますが
見ているだけだといざ使うときになると使えないことが多いです。
やはり自分で実行してみて、こんな動きをしているんだと実感したほうが一番だと思います。
ちょっと手を加えるとよりいいかもしれません。

このような質問は過去にもいろいろ出ているので検索してもらうと参考になると思います。

長文失礼しました。

管理人

Re:これからC言語を学ぶにあたって

#3

投稿記事 by 管理人 » 16年前

こんにちは。
そのぷよ○よ風ゲームなどを作った管理人です。
これからの期待に胸を膨らませていらっしゃる事でしょう。是非頑張って下さい。
ではまず、一つずつ回答していきますね。


>> 1. C言語を理解した上でなければ、やはりC++言語はできませんか?

私はC言語で作っています。DXライブラリ自体はC++ですが、
Cの知識だけで使えるライブラリですよ、と本家でもかいてあります。
そのぷよ○よ風ゲームも、龍神録も全部ピュアC(C++ではない純粋なCという意味)で書いています。
ですから、効率、拡張、汎用、うんぬんの話を別にすればCでも充分作れますよ。
VC++はCもC++も同じようにコンパイル出来るコンパイラですから、
特に「両方(CもC++の機能も一緒に書いたようなプログラム)」という中途半端な書き方も出来ます。
だからC言語がわかってきたら、
Cで書きながらC++の便利な機能をちょいちょいついばみながら書くことも出来ます。


>> そんな私ですが、C言語を飛ばして、ゲームプログラミングの館にある作り方を、きちんと理解していけば、パズルゲームは作れるのでしょうか?

ぷよ○よ風を第一目標ということですが、これは案外難しいですよ。
もともとテトリスというのはプログラマーの教育用に考え出されたものですし、
パズルゲームというのは色んなアルゴリズムを考える必要があり、
日ごろプログラムになれている人でも実装となると ん? と思ってしまうかもしれません。
ただその「第一」というのがどの辺かわかりませんし、
また、製作者がどれ位ガッツがあるかでも大きくかわりますから、はっきりとはいえませんが、
まずはもう少し簡単に実装出来るゲームを目指した方がいいかもしれません。
もしかしたらガッツで作り上げられるかもしれませんし、
試行錯誤のすえ断念することも大事な経験の一つですから、
どの道をお選びになるかは自由だし無駄じゃないと思います。


>> 2. もし、C言語の勉強が必須だとすれば、どのようなことをすればいいのでしょうか?

しっかりとしたゲームを作りたいならはやりしっかりとした基礎が大事です。
C言語をしっかり理解しておくことは大変重要だと思います。
ただその勉強はある程度Cの知識がついてきたら、「ゲームを作りながら覚える」というスタイルでも
可能であるため、勉強方法は色々あると思います。

とりあえず0から始める時は、まずウェブで調べてみる事です。
きっと全くわからない状態で本屋にいっても、何の本を買ったらいいか解らないと思います。
コンパイラは用意し、C言語をコンパイル出来る状況は今ありますか?
プロジェクトは自分で作れますか?
C言語を勉強する時はコンパイラを用意することから始まります。
コンパイラを準備し、とりあえず何でもいいから画面に出力させてみて下さい。

C言語系の入門サイトは山ほどあります。
http://www.google.co.jp/search?hl=ja&q= ... =&aq=f&oq=

わかりやすそうなサイトを見つけてとりあえず読んでみて下さい。
とりあえず一番上にヒットした
http://www5c.biglobe.ne.jp/~ecb/c/c00.html

こちらをみてみましょう。
ずっとよんでいくと2.1にプログラムコードがかかれていますね。
こういうプログラムコードは見るだけじゃなく、実際に自分のコンパイラで実行して試してみて下さい。
そしてそれをいじってみてどう変化するか確認して下さい。
プログラムはコンパイルした数だけ上達します。


>> 「最低、C言語のここから、ここまでを理解すれば十分だよ」など、アドバイスも頂けると、近い目標もできますので、非常に助かります。

「充分」という段階は一般人には誰にも無いであろうと思われるほどこの分野は奥が深いので
ライン引きは難しいですが、先ほど言いました
「ゲームを作りながら学ぶ」段階になるためには
1,2,3,4,7,9章
(5は非常に大事なのとそうでもない差が激しいのでサッを目を通すといいかも)
はきっちり理解する必要がありそうです。

ポインタはもちろん重要ですが、初心者がつまずく典型的な分野なので、
後回しでもいいかもしれません。
構造体はうちのサイトでもしゅっちゅうでてくるので、こちらもゲームを作りながらでいいので覚えて下さい。
少しずつわかってくると、きっと本屋にいっても自分に合いそうな本はわかると思いますから、
大きな書店にいって探してみて下さい。

私がお気に入りだった本は
http://www.amazon.co.jp/%E6%96%B0%E7%89 ... 4797327928
こちらです。
これ実践編もあるので、両方かっておくといいかもしれません。
演習問題のかいてあるバージョンの本もあるのでそちらも興味があればどうぞ。


>>3. ゲームプログラミングの館にある、作り方はパズルゲームに対応できますか?

パズル系の話は無いので、直接的には参考にはならないかもしれません。
・・が、ただ基礎がきっちりしてきたら自分で思いつけるようになってくるんですよ。
kazuoniさんの回答はおそらくそういう意味だと思います。
それが効率的かどうかは別としてね。
最初のうちは非効率的なプログラムをだらだらかくことも結構重要なんじゃないかというのが
私の持論です。
もちろんその後で人に聞いたり、アドバイスもらったり、調べたり勉強したりする事は大事ですよ。
その前に自分で考えて、おかしなプログラムでもいいから試行錯誤してみることこそ上達の道に繋がると思います。
人に聞いた理論って忘れるんですよね。そして応用も難しい。
しかし自分で考え出した理論は忘れないです。そして何より自分が思いついたものですから応用も簡単です。

ある程度自分の理論を持った状態で、人からアドバイスを受けるとかなりよい形で定着したりします。
ですから、「こんな感じで実装できそうじゃないか?」と思い始めたら
まずはひたすら思いつくままにガリガリかいてみてはどうでしょう。
色んな勉強法はあれども、どの道も無駄にはならないと思います。


>> 4. 最後に、これから勉強するにあたって、簡単でいいのでアドバイスは注意事項をご教授下さい。

あまり長くなると読むのもだるくなるでしょうからこの辺で^^;
何か解らない事があればまた聞いて下さい。

御津凪

Re:これからC言語を学ぶにあたって

#4

投稿記事 by 御津凪 » 16年前

私は就職時の提出課題でパズルゲームを出したことがあります。

そんな私の助言です。
(手短に書きます)

> 1. C言語を理解した上でなければ、やはりC++言語はできませんか?

個人差にもよりますが、C++言語を理解する方が多いのではないでしょうか。
オブジェクト指向を学ぶという意味で。

> 2. もし、C言語の勉強が必須だとすれば、どのようなことをすればいいのでしょうか?

1.「変数」と呼ばれる入れ物の存在。
4.「制御構文」と呼ばれる命令の道。
2.「関数」と呼ばれる処理のブロック。
3.「ポインタ」と呼ばれる変数の住所。
が最低限必要だと思います。

> 3. ゲームプログラミングの館にある、作り方はパズルゲームに対応できますか?

少なくともゲームの基礎部分はある程度使いまわせると思います。

> 4. 最後に、これから勉強するにあたって、簡単でいいのでアドバイスは注意事項をご教授下さい。

頭の中で考えたゲーム構想のみで最初から挑むのは必ずといって良いほど挫折します。
管理人さんの言うようにガッツがあれば出来ると思いますが。

プログラミングは技術的な部分が多いので、さすがに無知からゲームは作れないでしょう。
(どのように移動させるか、どのように判定するのか、など)

何が出来るのか(と自分で作れるか)をきちんと把握してからの方が割とスムーズに行くはずです。
これも修行、と考えるのも面白いかもしれませんね。

> 管理人さん
すいません。誤字で笑いかけました。
「股聞いて下さい」が「股開いて下さい」に見えてしまった…。

管理人

Re:これからC言語を学ぶにあたって

#5

投稿記事 by 管理人 » 16年前

う・・
誤字直しました~^^;

究極の初心者

皆様、返信ありがとうございました。

#6

投稿記事 by 究極の初心者 » 16年前

>kazuoniさん

はじめまして。
Kazuoniさんもまだ初めて間もないということで、色々と参考になりました。

特に

>4のお答えの、C言語の知識ゼロでゲームプログラミングの館を読破して・・・・

は、実際私がやろうとしていたことなので、体験した人の意見を聞けて、とても参考になりました。
おそらく、私もそこから始めると、右往左往してわからなくなってしまうな・・・・ということが予測されます。
なので、やはり近道をせずに、C言語をきちんと理解し、まずは簡単なゲームを作ってみようと思います。

また、

>、CPUを作るのは少々時間がかかるかもしれません

で、一人でやる時は、AIも作らなきゃいけないのか!っと、ハッと気付かされました。
そう考えると、やはり大変なジャンルなのかも・・・っと思います。


貴重な、ご意見本当に助かりました。
わざわざ長くご教授下さって、本当にありがとうございます。


>管理人さん

はじめまして。
実践を踏んだ人の意見は、とても参考になるので、ぜひ、ぷよぷ○風のゲームを作った管理人さんの意見は聞きたいと思っていました。

パズルゲームって、難しいジャンルなのですか・・・・。
そう言われると、アクションなどよりは、ランダム要素が含む分、漠然と難しいような気がしてきました。
なので、パズルゲームを第一目標にはせず、まずはもっと単純なゲームを目標にしてみようと思います。

また、そのほかのC言語の勉強法など、長文に渡りご指導ありがとうございました。
おそらく、今後もこの掲示板や、ゲームプログラミングの館などを参考にさせていただくと思います。
なるべく、自身で調べながらやるつもりですが、どうしても詰まってしまった時は、ぷよぷ○風ゲームを作った先駆者としてアドバイスを頂けたらと思います。
もちろん、手が空いてたらで構いません。
私も、出来るだけ、自分で学ぼうと思っておりますので・・・・。

とても貴重な意見、ありがとうございました。
また、今後ともこの掲示板を利用させてもらう者として、よろしくお願い致します。



>御津凪さん

はじめまして。
就職時ということは、その道のプロ・・・・っということでしょうか?

2の質問など、わかりやすく要点だけを教えて頂き、とてもわかりやすかったです。
ただ・・・・番号が1.4.2.3となっているのは、何か意味があるのかな・・・?っという疑問が少しありますが・・・恐らく、打ち間違い??っと思ってます。

御津凪さんも、パズルゲームの制作経験者ということで、勉強法など、参考にさせていただきます。
また、構想のみで挑むのは危険というアドバイスも頂けたので、まずは実力をつけるためにも、パズルゲームは保留にしたいと思います。

わざわざ、本当の初歩の事を教えて頂き、ありがとうございますた。
これから始めるにあたり、参考にさせて頂きたいと思います。




とりあえず、皆様の意見を参考にパズルゲームは一旦保留にし、何か単純なものを目標に学んでいこうと思います。
その前に、教えて頂いたURLを参考に、基本のC言語を実践をまじえながら、学んでいくことにしました。

本当に初歩の質問で、申し訳ありませんでしたが、暖かいご指導、誠にありがとうございます。
どうしても、詰まった時は、また相談させて頂けたらと思います。

改めて、ご指導のほう、感謝いたします。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る