二次元配列を作って、あるマス(x,y)の中心からあるマス(x',y')の中心に直線を引き、その直線の通るマスを順に探索していくというプログラムを作りたいのですが
傾きを求めてxの増加量分に対して、傾きとなるようにyをとり探索していくやりかたでやろうとしたのですが一つのxに対して2マス線を通る場合などがありうまくいきません
何かいい方法はないでしょうか
やりたいことは二次元配列でステージをつくりプレイヤーと敵をつくり
プレイヤーの視界に入ったら近づいてくるようにするということです
障害物も考慮するので直線の通るマスすべてを探索するようにしたいです
検索結果 17 件
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: 二次元配列
- 返信数: 5
- 閲覧数: 3441
Re: 二次元配列
すみません、もともと二次元配列の問題で分からないところがあったのですが、それの原因がここの部分だったので質問するときにタイトルを書き換え忘れました。
遅くなってすみません。
キーボードから入力される文字はバッファと呼ばれるところに一時的に保存されて、エンターを押すと出力され、バッファの中は空になります
scanf()では最後の改行文字がバッファに残るため、次の出力時にその改行文字が出力されてしまうため今回のようなことになりました。
%cの直前にスペースを入れると改行文字を読み飛ばして出力するのでうまく動作するようになります
解決しました、ありがとうございました。
遅くなってすみません。
キーボードから入力される文字はバッファと呼ばれるところに一時的に保存されて、エンターを押すと出力され、バッファの中は空になります
scanf()では最後の改行文字がバッファに残るため、次の出力時にその改行文字が出力されてしまうため今回のようなことになりました。
%cの直前にスペースを入れると改行文字を読み飛ばして出力するのでうまく動作するようになります
解決しました、ありがとうございました。
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: 二次元配列
- 返信数: 5
- 閲覧数: 3441
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: 今日の日付と曜日を表示するプログラム
- 返信数: 3
- 閲覧数: 3018
Re: 今日の日付と曜日を表示するプログラム
なるほど、ありがとうございます
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: 今日の日付と曜日を表示するプログラム
- 返信数: 3
- 閲覧数: 3018
今日の日付と曜日を表示するプログラム
今日の日付と曜日を表示するプログラム (解きながら学ぶC言語 p264) が以下のように書かれていました、なぜ16行目がchar[][3]のようになるのかがわかりません。 自分はchar[] として20行目の%sを%cにすればいいと思ったのですが、コンパイルエラーがでてしまいました。なぜ二次元配列にするのでしょうか、 またなぜ3列なのでしょうか、よろしくお願いします。 #include <stdio.h> #include <time.h> void put_date(void); int main(void){ put_date(); return 0; } void put_date(vo...
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列内の数字文字を削除する関数
- 返信数: 3
- 閲覧数: 6040
文字列内の数字文字を削除する関数
文字列内の数字文字を削除する関数を作成したのですが、(著 柴田望洋 解きながら学ぶC言語 p245) 数字文字が削除されません。入力したものがそのまま出力されます。 原因は26行目で *(str+i)とj は型が違うからifの条件が真になる? と思ったので (char*)j として試してみましたがダメでした。 なにがいけないのでしょうか、よろしくおねがいします #include <stdio.h> void del_digit(char *str); int main(void){ char str[100]; printf("文字列を入力してください :"); scanf("%s",str)...
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: テロップのように流して表示させる
- 返信数: 8
- 閲覧数: 7287
Re: テロップのように流して表示させる
どういう原理でとかはあまり気にしない方がいいでしょうか、
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: テロップのように流して表示させる
- 返信数: 8
- 閲覧数: 7287
Re: テロップのように流して表示させる
各putcharの直後にfflush(stdout); をいれたらしっかりと3秒ごとにテロップのように流れるように実行されました! どういうことなのでしょうか?
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: テロップのように流して表示させる
- 返信数: 8
- 閲覧数: 7287
Re: テロップのように流して表示させる
[/quote]
「しっかりと実行される」「しっかりと動作する」とはどのような状態でしょうか?
[/quote]
しっかりと実行されるは、ABCDEFGがテロップのように流れて表示されますが、とても早いです。
動作するのほうは、startと表示されて3秒後にgoalと表示されるということです。
ほかにも時間を置く関数があることは初めて知りました。
「しっかりと実行される」「しっかりと動作する」とはどのような状態でしょうか?
[/quote]
しっかりと実行されるは、ABCDEFGがテロップのように流れて表示されますが、とても早いです。
動作するのほうは、startと表示されて3秒後にgoalと表示されるということです。
ほかにも時間を置く関数があることは初めて知りました。
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: テロップのように流して表示させる
- 返信数: 8
- 閲覧数: 7287
テロップのように流して表示させる
ABCDEFGを同一行内で右から左へテロップのように流すプログラム(柴田望洋 著 解きながら学ぶC言語 p203) を以下の様に作成したのですが、実行しても何も表示されません。 22行目を消すとしっかりと実行されます。 22行目がおかしいと思いテストプログラムを作り試してみましたが、しっかりと動作しました。 なにがいけないのでしょうか。 #include <stdio.h> #include <time.h> #include <string.h> int main(void){ char str[]="ABCDEFG "; //表示する文字列 time_t t; int len = strl...
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: 仮引数の省略でエラー
- 返信数: 8
- 閲覧数: 6779
Re: 仮引数の省略でエラー
第一引数の型が違っていた、ということですね。
省略できると習ったのは引数名でした。
ありがとうございました。
省略できると習ったのは引数名でした。
ありがとうございました。
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: 仮引数の省略でエラー
- 返信数: 8
- 閲覧数: 6779
仮引数の省略でエラー
授業で仮引数は省略しても構わないと習ったので次の様に省略したら error: conflicting types for ‘fill’ void fill(int vc[],int no,int x){ ^ note: previous declaration of ‘fill’ was here void fill(int,int,int); ^ というようにエラーが出ました。 仮引数をしっかりと書いた場合はコンパイルが通りました。 どういうことでしょうか。 #include <stdio.h> #define NUMBER 5 void fill(int,int,int); int mai...
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: fscanf コアダンプ
- 返信数: 2
- 閲覧数: 2594
Re: fscanf コアダンプ
ありがとうございます。解決しました。
- 10年前
- フォーラム: C言語何でも質問掲示板
- トピック: fscanf コアダンプ
- 返信数: 2
- 閲覧数: 2594
fscanf コアダンプ
以下のソースコードを実行するとコアダンプになってしますのですが、どこがおかしいのかわかりません。 dunhgeon.txtの中は 10 0 となっています。 #include <stdio.h> unsigned long int DSEED; int main(void){ FILE* fp; int number; if((fp=fopen("dungeon.txt","r"))!=NULL){ fscanf(fp,"%d %d",DSEED,number); printf("%d %d",DSEED,number); fclose(fp); } return 0; }
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: 入力した値と異なる値がでてくる
- 返信数: 4
- 閲覧数: 2625
Re: 入力した値と異なる値がでてくる
わかりました。ありがとうございます!
- 11年前
- フォーラム: C言語何でも質問掲示板
- トピック: 入力した値と異なる値がでてくる
- 返信数: 4
- 閲覧数: 2625
入力した値と異なる値がでてくる
#include <stdio.h>
int main(void){
float no;
printf("実数を入力してください :"); scanf("%f",&no);
printf("あなたは%fと入力しましたね\n",no);
return(0);
}
このプログラムで4.5などはそのまま4.500000と表示されるのですが、57.3などになると、57.299999など異なる値がでてくるのですがなぜでしょうか。
int main(void){
float no;
printf("実数を入力してください :"); scanf("%f",&no);
printf("あなたは%fと入力しましたね\n",no);
return(0);
}
このプログラムで4.5などはそのまま4.500000と表示されるのですが、57.3などになると、57.299999など異なる値がでてくるのですがなぜでしょうか。