大丈夫、あんたみたいな日本語でもちゃんと通じるように、いろんな書き方でも(辻褄が合っているなら)ちゃんと動く。
>>442 なるほど
さて、ゲ製作は全然進んで無い・・・・
とりあえず当たり判定を四角から多角形にしようと試みて
八角形にしようと座標を取って
線で結んでそれを自機の上に乗っけてみたかったのに
式が間違ってたらしく、自機が左上の0,0にいるときは確かに正しく乗ってるんだけど動かすと八角形の点結んだ線が拡大縮小した・・・
struct board {int idoo, x, y, w, h;};//自機スピードxy,width,height
struct board jiki = {5, 100, 100, 200, 200};
MoveToEx(hdc_mem, jiki.x+(jiki.w-jiki.x)/2, jiki.y, NULL);
LineTo(hdc_mem, jiki.x+(jiki.w-jiki.x)/2, jiki.y+(jiki.h-jiki.y));
MoveToEx(hdc_mem, jiki.x, jiki.y+(jiki.h-jiki.y)/2, NULL);
LineTo(hdc_mem, jiki.x+(jiki.w-jiki.x), jiki.y+(jiki.h-jiki.y)/2);
MoveToEx(hdc_mem, jiki.x+((jiki.w-jiki.x)/8), jiki.y+((jiki.h-jiki.y)/8), NULL);
LineTo(hdc_mem, jiki.x+((jiki.w-jiki.x)/8)+(jiki.w-jiki.x)-((jiki.w-jiki.x)/4), jiki.y+((jiki.h-jiki.y)/8)+(jiki.h-jiki.y)-((jiki.h-jiki.y)/4));
MoveToEx(hdc_mem, jiki.x+((jiki.w-jiki.x)/8)+(jiki.w-jiki.x)-((jiki.w-jiki.x)/4), jiki.y+((jiki.h-jiki.y)/8), NULL);
LineTo(hdc_mem, jiki.x+((jiki.w-jiki.x)/8), jiki.y+((jiki.h-jiki.y)/8)+(jiki.h-jiki.y)-((jiki.h-jiki.y)/4));
初めてこんな読みにくいもの書いたよ
ああ・・・・ほんと酷い。2時間くらいかかった・・・・
自分の頭を疑うよ・・・
でもこれで何とか当たり判定が四角じゃ無くなる・・・
これを式にするのもまた時間かかるから明日だ・・・・・・
MoveToEx(hdc_mem, jiki.x+jiki.w/2, jiki.y, NULL);
LineTo(hdc_mem, jiki.x+jiki.w/2, jiki.y+jiki.h); //頂点から真下
MoveToEx(hdc_mem, jiki.x, jiki.y+jiki.h/2, NULL);
LineTo(hdc_mem, jiki.x+jiki.w, jiki.y+jiki.h/2); //横真っ直ぐ
MoveToEx(hdc_mem, jiki.x+jiki.w/8, jiki.y+jiki.h/8, NULL);
LineTo(hdc_mem, jiki.x+7*jiki.w/8, jiki.y+7*jiki.h/8);//斜め1
MoveToEx(hdc_mem, jiki.x+7*jiki.w/8, jiki.y+jiki.h/8, NULL);
LineTo(hdc_mem, jiki.x+jiki.w/8, jiki.y+7*jiki.h/8);//斜め2
先に調べてからやるべきだったwwww
当たり判定を丸にするには丸の中心からの距離を調べればいいのか・・・
八角形にする意味ってあんまり無かった
まぁいいや・・・いつかこの経験は役に経つだろう・・・疲れた。作業時間長いわりに全然進まないんだぜ
もうほんとに寝るぽ
446 :
助けて・・・:2007/02/15(木) 16:51:48
■プログラム課題:最小値を算出するプログラムを作る
3つの整数を入力し,その内の最小値を出力するプログラムを作成せよ.
但し,最小値を算出する関数,"min3"を自分で作成し用いなさい.
また,最小値の出力はメイン文で行うこと.
-------------------------------------------
"表示結果の例"
3つの整数を入力してください。
整数1:5
整数2:-4
整数3:0
最も小さい整数は-4
-------------------------------------------
誰かお助けください!!
>>446 スレタイ見ろ
ここは「C言語を今日から始める」やつにしか教えないスレだ
ついでに言えばマルチするやつに明日の太陽を見る資格はない
#include <stdio.h>
int min3(int a, int b, int c)
{
if(a <= b) if(a <= c) return a; else return c;
else if(b <= c) return b; else return c;
}
int main(void)
{
int a, b, c;
printf("3つの整数を入力してください。\n");
printf("整数1\n");
scanf("%d", &a);
printf("整数2\n");
scanf("%d", &b);
printf("整数3\n");
scanf("%d", &c);
printf("最も小さい整数は%d\n", min3(a, b, c));
}
面倒だから scanf のエラーチェックをしていない。
そもそも scanf を使うなとかいう突っ込みはしないでね。
> 各自の課題であり,それぞれが自力でソースプログラムを作ること
これ消してマルチかよ・・・
宿題スレならこのメッセージがあったってノープロブレム
何かを押したらコマンドプロンプトが画面いっぱいになった
何を押しちゃったんだかわかりませんか?
Alt+Enter
本に載っていた自己参照的構造体のサンプルプログラムなんですが、
解説を繋ぎ合わせてみたんですが、コンパイルエラーになります。
どこがおかしいのか教えて下さい。できたら理由も。
コードが書いてあって解説、コードが書いてあって解説と
通してのコードが書かれてないので繋ぎ合わせたんです。
宜しくお願いします。
#include <stdio.h>
struct Node {
char name[20];
struct Node *next;
};
int main(void)
{
struct Node list[] = {
{"abe", NULL},
{"asou", NULL},
{"tanigaki", NULL}};
list[0].next = &list[1];
list[1].next = &list[2];
struct Node *p;
p = list;
while (p != NULL) {
printf("名前は%s\n", p->name);
p = p->next;
}
return 0;
}
struct Node *p;の位置が悪い。
宣言は代入とかの前になければいけないから。
454 :
452:2007/02/20(火) 21:23:56
>>453 レスありがとうございます。
無事コンパイル通りましたm(_ _)m
宣言は使う前にすればいいのかと思っていました。
違うんですね。
>>454 古いCコンパイラにはそういう制限がある。
ちゃんと新しいCコンパイラを使うか、C++としてコンパイルすればそんな下らない制限に引っ掛からないで済む。
456 :
452:2007/02/22(木) 20:45:55
>>455 コンパイラはVisual C++2005でvsvars32.batをホルダにコピーして
使ってるんですがエラーになりました…。
拡張子をcppとかにしないとC++としてコンパイルされないよ。
458 :
452:2007/02/22(木) 21:37:32
459 :
デフォルトの名無しさん:2007/03/29(木) 10:36:57
ヘッダーファイルの身の順番についておしえてくれ。
今のところ、
インクルード
マクロの定義
構造体、enumなどの宣言
プロトタイプ宣言
extern 変数宣言
の順番にしているのだけれど、こんな感じでいいかな?
何かアドバイスがあればよろしく。
460 :
デフォルトの名無しさん:2007/03/29(木) 10:37:41
>459
身 → 中身
でした。訂正。
>>459 最後のextern変数宣言はない方がいいな。
特に書いてないが、インクルードガードは忘れずに。
まあどうしても必要なときには、プロトタイプより先におくべきだと思う。
プロトタイプに比べればずっと数が少ないだろうし。
463 :
459:2007/03/29(木) 12:11:50
みなさん。アドバイスありがとさんです。
では皆さんどこでextern宣言されているんですか?
グローバル変数を全ソースで共通に使うなんて無いから
ヘッダには入れないなあ
どうしてもグローバル変数を使いたければ、それ専用のインクルードファイルを作るなぁ。
C言語書くソフトってどこにあるか教えてください
>>466 俺も初心者だが
bcpadとかで検索してみ
>>467 インストールしたんですが使い方がさっぱりわかりません
どうしたらいいんですか?
そのまま検索すれば分かりやすいサイトがすぐみつかるよ
470 :
デフォルトの名無しさん:2007/04/07(土) 07:38:41
さて、俺も今日からC言語を勉強してみようと思う。
プログラムの勉強自体初めてなんでwkwkだ。
471 :
デフォルトの名無しさん:2007/04/08(日) 02:19:12
じゃ、まず問1)フリーズするプログラムを作れ!
オリジナルのプログラムをお持ちの方いらっしゃいませんか?
この度クレジット決済でスムーズにダウンロード売買が
できるサイトを立ち上げました。
つhttp//web-cart.jp/
※会員登録&商品のうp全て無料です!
クオリティの高い商品のうpをお待ちしてますw
俺も2〜3日勉強中の身です。本で*が
キレイに並んでるのを見て
*****
****
***
**
*
↑こんなの作りたいなと思ったんですが
全然できません。
教えて頂けませんか?
int main(void)
{
printf("*****\n****\n***\n**\n*");
return 0;
}
475 :
デフォルトの名無しさん:2007/04/08(日) 03:16:34
>472ちげ〜よw
フツーに半角で
*****[Enterキー]****[Enterキー]***[Enterキー]**[Enterキー]*
で、おk
477 :
デフォルトの名無しさん:2007/04/08(日) 03:31:56
ごめんなす(:D)| ̄|_
478 :
デフォルトの名無しさん :2007/04/08(日) 06:26:34
>>473 こんな感じで良いか?
#include <stdio.h>
int main(int argc, char *argv[])
{
int i,j;
for(i = 5; i >= 0; i--){
for(j = 0; j <= i; j++){
putchar('*');
}
putchar('\n');
}
return 0;
}
>>473 こんな感じで良いか?
putC(int n){ if(n){ putchar('*'); putC(n-1); } else putchar('\n'); }
putL(int n){ if(n){ putC(n); putL(n-1); } }
main(){ putL(5); }
#include <stdio.h>
#define LEN (5)
int main()
{
char star[LEN];
for (int ic = 0; ic < sizeof(star); ++ic) star[ic] = '*';
for (int ic = sizeof(star); ic > 0; --ic) printf("%.*s", ic, star);
return 0;
}
#include <stdio.h>
int main()
{
char *p = "*****";
while(*p) puts(p++);
}
数字を使ってないってのが素適ですね
483 :
デフォルトの名無しさん:2007/04/08(日) 10:47:53
では>475を採用しまつ
484 :
473:2007/04/08(日) 18:49:59
皆さんありがとうございます。
また、多分わからんことだらけなので
色々勉強に来ます!
485 :
デフォルトの名無しさん:2007/04/16(月) 22:51:51
unionって、何に使うんですか?
使い道がわかりません。
>>485 unionを使うと例えば
float a = 1.3;
const char * p = (const char *) & a;
for (int ic = 0; ic < sizeof(a); ++ic) printf("%02x ", p[ic]);
とおなじことが
union {
float a;
char p[];
} u;
u.a = 1.3;
for (int ic = 0; ic < sizeof(u.p); ++ic) printf("%02x ", u.p[ic]);
と書けます。
487 :
名無し@沢村:2007/04/16(月) 23:52:39
488 :
デフォルトの名無しさん:2007/04/17(火) 00:55:19
プログラムってどんなソフトに書き込めばいいんだ?
489 :
デフォルトの名無しさん:2007/04/17(火) 00:59:17
書くだけでいいのであれば、なんでもいいので好きなテキストエディタに書け。
490 :
名無し@沢村:2007/04/17(火) 01:16:24
2ちゃんに書き込・・・ ごめん