C言語の勉強法を・・・
C言語の勉強法を・・・
こんにちは。
早速ですがすいませんm(__)m
ほぼ雑談状態になってしまうことかと思います。
遅れながら、本題に入らせて頂かせてもらいますがC言語なるものにまったく知識がありません。。。
でも、学びたいのです。だったら自分で調べて基本的なことを覚えろよ・・・と思った方
おらっしゃるのは承知の上で、ちくちくと調べながら拝見させてもらう事となります。
みなさんのお時間を勝手ながら奪ってしまわれることとなりますが、ご認証よろしくお願いします。
シューティングゲーム等の説明を読ませていただきましたが、まず引っかかったのはサンプルのファイルが
開けないことです。ツールみたいなものがあるのでしょうか?あそこに書かれていたものを調べましたが
有料なそうなので・・・
こんな質問が殺到すると思いますがどうぞよろしくお願いします。
早速ですがすいませんm(__)m
ほぼ雑談状態になってしまうことかと思います。
遅れながら、本題に入らせて頂かせてもらいますがC言語なるものにまったく知識がありません。。。
でも、学びたいのです。だったら自分で調べて基本的なことを覚えろよ・・・と思った方
おらっしゃるのは承知の上で、ちくちくと調べながら拝見させてもらう事となります。
みなさんのお時間を勝手ながら奪ってしまわれることとなりますが、ご認証よろしくお願いします。
シューティングゲーム等の説明を読ませていただきましたが、まず引っかかったのはサンプルのファイルが
開けないことです。ツールみたいなものがあるのでしょうか?あそこに書かれていたものを調べましたが
有料なそうなので・・・
こんな質問が殺到すると思いますがどうぞよろしくお願いします。
Re:C言語の勉強法を・・・
早速、書き忘れていました。
本題はシューティングを作ることです。
友達が東方なるものをやっていて(ここの規約のところにもかいてありましたがびっくりです!
お前にはできないだろ?とか何とか抜かしているので、技術を学び、友達を見返してやりたいという
我侭な私です。こんな自分に協力してくださる方がおられればいいのですが。
それに、別にできなくても価値感が変わるとか関係ないよね?と尋ねると
関係があるとこたえました・・・キャラ萌えのくせにいってくれるじゃないのと
別の対抗心が沸いてきました。
そんなほんとにどうでもいいことです。
こんな0からやってもそんな高クオリティなものはできないのはわかってますが
努力はしたいです。1つできれば次につながると思いますので・・・
本題はシューティングを作ることです。
友達が東方なるものをやっていて(ここの規約のところにもかいてありましたがびっくりです!
お前にはできないだろ?とか何とか抜かしているので、技術を学び、友達を見返してやりたいという
我侭な私です。こんな自分に協力してくださる方がおられればいいのですが。
それに、別にできなくても価値感が変わるとか関係ないよね?と尋ねると
関係があるとこたえました・・・キャラ萌えのくせにいってくれるじゃないのと
別の対抗心が沸いてきました。
そんなほんとにどうでもいいことです。
こんな0からやってもそんな高クオリティなものはできないのはわかってますが
努力はしたいです。1つできれば次につながると思いますので・・・
Re:C言語の勉強法を・・・
うーん、どちらかというと、C言語の勉強と言うよりゲームを作って見返したいという動機のほうが勝っているみたいですね。
既成のツクール製品を利用するのも手ですよ?
C言語(C++)は自由度が高い反面プログラミングは初心者には非常に大変な言語じゃないでしょうか?
まあ、コレを機に覚えたい。絶対完成させて見返すんだというモチベーションがあれば頑張れると思いますけど。
と、シューティングゲームでしたね。
まずはゲームの仕様をお決めになることです。
縦スクロール?横スクロール?
何面まで?
自機の弾の種類は?(通常弾、ミサイル、レーザー、ホーミングミサイル、オプション、ボムなど)
背景、自機、敵、ボス、弾(敵の弾も何種類かあると思います)、爆風などの画
タイトル画面やメニュー選択用のTIPS
音楽、SE(効果音)
ハイスコア、ランキングを保存するか?
など、決めるべきことがたくさんあります。
ドンドン決めてしまってください^^
既成のツクール製品を利用するのも手ですよ?
C言語(C++)は自由度が高い反面プログラミングは初心者には非常に大変な言語じゃないでしょうか?
まあ、コレを機に覚えたい。絶対完成させて見返すんだというモチベーションがあれば頑張れると思いますけど。
と、シューティングゲームでしたね。
まずはゲームの仕様をお決めになることです。
縦スクロール?横スクロール?
何面まで?
自機の弾の種類は?(通常弾、ミサイル、レーザー、ホーミングミサイル、オプション、ボムなど)
背景、自機、敵、ボス、弾(敵の弾も何種類かあると思います)、爆風などの画
タイトル画面やメニュー選択用のTIPS
音楽、SE(効果音)
ハイスコア、ランキングを保存するか?
など、決めるべきことがたくさんあります。
ドンドン決めてしまってください^^
Re:C言語の勉強法を・・・
とりあえず、C言語をコンパイルする環境が無く、まだC言語を一度もコンパイルしたりされたことが無いということですね?
コンパイルというのは、C言語のプログラムコードを機械が実行できる形に変換することです。
例えばコンピュータって0と1の信号で動いているので、そういう形で命令してやらないと、動きません。
でも、人間が見たとき
001010100010110111010110000101010
とか書いてあっても、何がかいてあるのかわけがわかりません。
なので、今仮に「001」という機械語の信号が「弾よ、発射しろ!」という意味だとすると、
弾よ、発射しろ!
とかいてコンパイル作業をすると
001
に変換してくれたら、わかりやすいですよね。
このように、C言語で書いたプログラムを機械語で受け付けられる形に変換する必要があります。
これがコンパイルです。
そのコンパイルをしてくれるものをコンパイラといいますが、まず、これを入手しないといけません。
VisualStudio2008というマイクロソフトから無料提供されているとても高機能なコンパイラがあります。
これをお使いになるといいでしょう。
http://www.microsoft.com/japan/msdn/vstudio/express/
(VC++)
プロジェクトの作り方や実行の方法は他のサイトにゆだねるとします。
まず、ゲームを作るには、C言語の知識が必要です。
最低限のCのプログラムの決まりや使い方を覚えないといけません。
ですから、
例えばC言語の入門サイト
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
こんなところでまず、勉強してください。
最低でも、ゲームを作るには7章までの知識はいると思います。
ifとforさえ知っていたら作れるとはいうものの、きっと、それではすぐに躓いてしまうと思います。
とりあえず
・コンパイルできる環境を用意する
・C言語の基本的な勉強をする
が第一に始めることでしょう。
>(ここの規約のところにもかいてありましたがびっくりです!
規約に何かかいてありました??
C言語に加えてゲームを作るにはDirectXなどの、
画像や音声をあやつることの出来るライブラリの知識が必要になります。
これがまた難しくて・・、ほとんどの人は挫折していきます・・。
そんななか、簡略化された2D限定ライブラリであるDXライブラリがあります。
私はまだ、プログラミング初心者なので、DXライブラリを使って色々ゲームを作りました。
DXライブラリでどんなことができるのかな?ともしお感じになりましたら、参考にしていただければと思います。
http://dixq.net/sakuhin.html
恐らく全くプログラミング経験の無い状態からですと、ゲームが一つ出来るようになるには少々時間がかかると思います。
友達を見返そうと思う気持ちはよくわかりますが、きっと「プログラムを作ること自体が好きじゃないと」続けられないと思います。
なので、是非、プログラムの勉強を楽しく続けてもらえたらと願います。
コンパイルというのは、C言語のプログラムコードを機械が実行できる形に変換することです。
例えばコンピュータって0と1の信号で動いているので、そういう形で命令してやらないと、動きません。
でも、人間が見たとき
001010100010110111010110000101010
とか書いてあっても、何がかいてあるのかわけがわかりません。
なので、今仮に「001」という機械語の信号が「弾よ、発射しろ!」という意味だとすると、
弾よ、発射しろ!
とかいてコンパイル作業をすると
001
に変換してくれたら、わかりやすいですよね。
このように、C言語で書いたプログラムを機械語で受け付けられる形に変換する必要があります。
これがコンパイルです。
そのコンパイルをしてくれるものをコンパイラといいますが、まず、これを入手しないといけません。
VisualStudio2008というマイクロソフトから無料提供されているとても高機能なコンパイラがあります。
これをお使いになるといいでしょう。
http://www.microsoft.com/japan/msdn/vstudio/express/
(VC++)
プロジェクトの作り方や実行の方法は他のサイトにゆだねるとします。
まず、ゲームを作るには、C言語の知識が必要です。
最低限のCのプログラムの決まりや使い方を覚えないといけません。
ですから、
例えばC言語の入門サイト
http://www5c.biglobe.ne.jp/~ecb/c/c00.html
こんなところでまず、勉強してください。
最低でも、ゲームを作るには7章までの知識はいると思います。
ifとforさえ知っていたら作れるとはいうものの、きっと、それではすぐに躓いてしまうと思います。
とりあえず
・コンパイルできる環境を用意する
・C言語の基本的な勉強をする
が第一に始めることでしょう。
>(ここの規約のところにもかいてありましたがびっくりです!
規約に何かかいてありました??
C言語に加えてゲームを作るにはDirectXなどの、
画像や音声をあやつることの出来るライブラリの知識が必要になります。
これがまた難しくて・・、ほとんどの人は挫折していきます・・。
そんななか、簡略化された2D限定ライブラリであるDXライブラリがあります。
私はまだ、プログラミング初心者なので、DXライブラリを使って色々ゲームを作りました。
DXライブラリでどんなことができるのかな?ともしお感じになりましたら、参考にしていただければと思います。
http://dixq.net/sakuhin.html
恐らく全くプログラミング経験の無い状態からですと、ゲームが一つ出来るようになるには少々時間がかかると思います。
友達を見返そうと思う気持ちはよくわかりますが、きっと「プログラムを作ること自体が好きじゃないと」続けられないと思います。
なので、是非、プログラムの勉強を楽しく続けてもらえたらと願います。
Re:C言語の勉強法を・・・
お答えいただき感謝です。ありがとうございます
まずはまとめろということですね?
自分的にはやっぱりC言語で作りたいです。覚えておけば色々役に立つと思うからです
厳しくとも毎日少しずつ、1つずつ覚えればいいと思っていますが、やはり多少の心配はあります
何はともあれ ご回答ありがとうございます
まずはまとめろということですね?
自分的にはやっぱりC言語で作りたいです。覚えておけば色々役に立つと思うからです
厳しくとも毎日少しずつ、1つずつ覚えればいいと思っていますが、やはり多少の心配はあります
何はともあれ ご回答ありがとうございます
Re:C言語の勉強法を・・・
ご回答ありがとうございます
早速学んできます。
>(ここの規約のところにもかいてありましたがびっくりです!
これは東方というジャンルに対してでした。わかりにくい発言ですいません。
別にゲームを作って見返すというのはあくまで最終段階なので、おそらく心配は無いはず・・・?です
ご回答ありがとうございました
早速学んできます。
>(ここの規約のところにもかいてありましたがびっくりです!
これは東方というジャンルに対してでした。わかりにくい発言ですいません。
別にゲームを作って見返すというのはあくまで最終段階なので、おそらく心配は無いはず・・・?です
ご回答ありがとうございました
Re:C言語の勉強法を・・・
お久しぶりです。
教えてくださったURLより読んでおりましたが早速つまずきました。
キーボードから月(1~12)を入力し、その月の日数を表示するプログラムを作れ。
このような練習問題があったのですが、解答を見てもまったく原理がわかりません。
やはり参考書とかないと厳しいのでしょうか?ご返答お待ちしてます
教えてくださったURLより読んでおりましたが早速つまずきました。
キーボードから月(1~12)を入力し、その月の日数を表示するプログラムを作れ。
このような練習問題があったのですが、解答を見てもまったく原理がわかりません。
やはり参考書とかないと厳しいのでしょうか?ご返答お待ちしてます
Re:C言語の勉強法を・・・
自分はまだまだたくさん分からないところがありながらも、ゲーム制作を進めています。
自分の経験上、ちょっと長いプログラムだとパーっと見た感じで「え、何これ?」ってなり、ごちゃごちゃになり、友達に聞くけど、「あぁ~」なんていいながらあんまり理解できてない・・・なんて事がちょくちょくありました。まぁ予断なんですが^^;
自分が今までやってきて言えることは、確かに参考書はあると便利だと思います。ただ、今の段階では、ググっても参考書を見ても、さほど変わりはないと思います。逆に、参考書より親切に書いてあるほうが多いんじゃないかって思います(あくまで自分の主観ですが^^;)
自分の経験上、ちょっと長いプログラムだとパーっと見た感じで「え、何これ?」ってなり、ごちゃごちゃになり、友達に聞くけど、「あぁ~」なんていいながらあんまり理解できてない・・・なんて事がちょくちょくありました。まぁ予断なんですが^^;
自分が今までやってきて言えることは、確かに参考書はあると便利だと思います。ただ、今の段階では、ググっても参考書を見ても、さほど変わりはないと思います。逆に、参考書より親切に書いてあるほうが多いんじゃないかって思います(あくまで自分の主観ですが^^;)
Re:C言語の勉強法を・・・
なるほど、ご回答ありがとうございます
やはり買うならもうちょっと理解したりした時や、ある程度の知識を得てから
復習するみたいな感じにしてみたいと思えました。
やはり買うならもうちょっと理解したりした時や、ある程度の知識を得てから
復習するみたいな感じにしてみたいと思えました。
Re:C言語の勉強法を・・・
ご回答ありがとうございます。
新たな質問をしますがよろしいでしょうか?
4. 透過処理をした画像を表示する。
の項目で、画像が表示されません。
3. 画像を表示する。
この項目でも、画像が表示されなくなっています。
そして
ちゃんと表示できなかった人はこちらで、問題を解消してください。
の場所で、起動するとファイルの場所が違いますと出て、同じファイルに入れたところ
ちゃんと表示されました。(4項目目の時には表示できませんでした)
DxLib.slnというファイルが無かったので、もう一度マイクロソフトからDLしなおそうと思いましたが、
DLページがなくなっています。このときどういう対応をしたほうがいいでしょうか?
新たな質問をしますがよろしいでしょうか?
4. 透過処理をした画像を表示する。
の項目で、画像が表示されません。
3. 画像を表示する。
この項目でも、画像が表示されなくなっています。
そして
ちゃんと表示できなかった人はこちらで、問題を解消してください。
の場所で、起動するとファイルの場所が違いますと出て、同じファイルに入れたところ
ちゃんと表示されました。(4項目目の時には表示できませんでした)
DxLib.slnというファイルが無かったので、もう一度マイクロソフトからDLしなおそうと思いましたが、
DLページがなくなっています。このときどういう対応をしたほうがいいでしょうか?
Re:C言語の勉強法を・・・
こんばんは。
何回も試行錯誤するうちに、キャラのpngは表示されるようになったのですが
背景の画像が表示されませんでした。
そのまま、章を進めていたところ動いたり、点滅したり(透明)はできました。
そして、いよいよシューティングに挑戦してみたのですが、ほとんど管理人さんのを
お借りさせていただいています(ほとんどパクっておりますが ーー;
一からやるというと、流石にまだまだ初心者なので、限界があるようで・・・
それでも全然、理解しているという事はいえませんが、少しずつ理解しているつもりでございます。
ところで、レーザーなどはどういった仕組みなのでしょうか?私が思うに、10フレームごととかに
当たり判定をつけて、打っているように思うのですが・・・
もし、レーザーを出す場合、軌道が変わりますよね?例えばくねくね曲がってきたり・・・
その場合はレーザーの絵?グラフィック?がくねくねできるのかな?と思いました。
いまさら何ですが四聖龍神録をやらさせていただきました。m(__)m
はっきり言ってすばらしいです(笑) 虹のアイディアといいかなり面白かったです。
敵1体1体にhpがついていたのもちょっと驚きでした。(それにしても絵とドット絵がうまいです。
武器ショップ等の要素もよかったです。
とってもクオリティが高い作品でした。プレイさせてくださってありがとうございますm(__)m
私の目標は目指せ!管理人(ぇ
<!--2
何回も試行錯誤するうちに、キャラのpngは表示されるようになったのですが
背景の画像が表示されませんでした。
そのまま、章を進めていたところ動いたり、点滅したり(透明)はできました。
そして、いよいよシューティングに挑戦してみたのですが、ほとんど管理人さんのを
お借りさせていただいています(ほとんどパクっておりますが ーー;
一からやるというと、流石にまだまだ初心者なので、限界があるようで・・・
それでも全然、理解しているという事はいえませんが、少しずつ理解しているつもりでございます。
ところで、レーザーなどはどういった仕組みなのでしょうか?私が思うに、10フレームごととかに
当たり判定をつけて、打っているように思うのですが・・・
もし、レーザーを出す場合、軌道が変わりますよね?例えばくねくね曲がってきたり・・・
その場合はレーザーの絵?グラフィック?がくねくねできるのかな?と思いました。
いまさら何ですが四聖龍神録をやらさせていただきました。m(__)m
はっきり言ってすばらしいです(笑) 虹のアイディアといいかなり面白かったです。
敵1体1体にhpがついていたのもちょっと驚きでした。(それにしても絵とドット絵がうまいです。
武器ショップ等の要素もよかったです。
とってもクオリティが高い作品でした。プレイさせてくださってありがとうございますm(__)m
私の目標は目指せ!管理人(ぇ
<!--2
並び替えプログラムで
VisualC++ 2005
Windows XP
コマンドプロンプトで実行して
”ファイル名は?”
と聞いてきてテキストファイルのフルパス(場所)を入力してエンターキーで次は
”作成先は?”
と聞いてきてフルパス(場所)を入力してエンターキーで終わり、
英文のかかれたテキストファイルから全英単語を重複なく順番に新しいテキストファイル(以下、”NEWテキスト”と呼ぶ)に書き込み保存するプログラミングです。
実際の内容の結果は次のようになる。
-------------------英文.txt-------------------------------
I was wondering if my plant needs friends, do I need to get more of the same plant so it can get polinated and produce peppers?
------------------new英文.txt(プログラムによって新規作成)------------------------------
I
was
wondering
if
my
plant
needs
friends
do
need
to
get
more
of
the
same
so
it
can
polinated
and
produce
peppers
-------------------------------------------------
このプログラムは下のものとなります。
ですがこれでは大文字と小文字が区別されて同じ単語も違うものとして出力されます
例 any と Any など
出力を小文字のみで統一して重複除去できないですか?
ソース教えてください。
Windows XP
コマンドプロンプトで実行して
”ファイル名は?”
と聞いてきてテキストファイルのフルパス(場所)を入力してエンターキーで次は
”作成先は?”
と聞いてきてフルパス(場所)を入力してエンターキーで終わり、
英文のかかれたテキストファイルから全英単語を重複なく順番に新しいテキストファイル(以下、”NEWテキスト”と呼ぶ)に書き込み保存するプログラミングです。
実際の内容の結果は次のようになる。
-------------------英文.txt-------------------------------
I was wondering if my plant needs friends, do I need to get more of the same plant so it can get polinated and produce peppers?
------------------new英文.txt(プログラムによって新規作成)------------------------------
I
was
wondering
if
my
plant
needs
friends
do
need
to
get
more
of
the
same
so
it
can
polinated
and
produce
peppers
-------------------------------------------------
このプログラムは下のものとなります。
#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct tag_list_t{ int num; char **wordlist; }list_t; int list_add(list_t *list, char *word){ int i; for(i=0;i<list->num;i++) if(strcmp(list->wordlist, word)==0) return 0; list->wordlist=realloc(list->wordlist, sizeof(char*)*(list->num+1)); list->wordlist[list->num]=strdup(word); list->num+=1; return 1; } int main(void){ list_t list={0, NULL}; char fname_in[FILENAME_MAX], fname_out[FILENAME_MAX], word[255+1]; char *find; FILE *fp_in, *fp_out; printf("”ファイル名は?”"); fgets( fname_in, FILENAME_MAX, stdin ); printf("”作成先は?”"); fgets( fname_out, FILENAME_MAX, stdin ); if ( (find = strchr(fname_in,'\n')) != NULL ) *find = '\0'; if ( (find = strchr(fname_out,'\n')) != NULL ) *find = '\0'; if((fp_in=fopen(fname_in, "r"))==NULL) return 1; if((fp_out=fopen(fname_out, "w"))==NULL) return 2; while(fscanf(fp_in, "%255[A-Za-z]%*[^A-Za-z]", word)==1) if(list_add(&list, word)) fprintf(fp_out, "%s\n", word); fclose(fp_in); fclose(fp_out); return 0; }
ですがこれでは大文字と小文字が区別されて同じ単語も違うものとして出力されます
例 any と Any など
出力を小文字のみで統一して重複除去できないですか?
ソース教えてください。
Re:並び替えプログラムで
何故、初心者だとソースを丸ごと載せなくてはいけないのですか?
ここの掲示板は基本的に丸投げは禁止なはずですが…
それに、これだけのソースを書ける人がislower、isupper、strcmpの使用方法が分からないというのも不思議で仕方ないです…
ほぼ答えになりますが、ヒントを載せますね。
一番分かり易いのは、tolower関数で全てのアルファベットを小文字に変換して、strcmp関数で比較する方法ではないでしょうか?
関数の使用方法が分からないのであれば、下記のURLで調べるのをお勧めします。
http://www.bohyoh.com/CandCPP/C/Library/index.html
ここの掲示板は基本的に丸投げは禁止なはずですが…
それに、これだけのソースを書ける人がislower、isupper、strcmpの使用方法が分からないというのも不思議で仕方ないです…
ほぼ答えになりますが、ヒントを載せますね。
一番分かり易いのは、tolower関数で全てのアルファベットを小文字に変換して、strcmp関数で比較する方法ではないでしょうか?
関数の使用方法が分からないのであれば、下記のURLで調べるのをお勧めします。
http://www.bohyoh.com/CandCPP/C/Library/index.html