C言語何でも質問掲示板


必ずお読み下さい → 規約と注意事項  アンケートはこちら  エラーで投稿できない方はこちら  過去ログ検索はこちら

 
   VMWARE  SERVER   
     ・[27772] Mist 
     ・[27773] JT 
     ・[27774] Mist 
     ・[27775] JT 
     ・[27776] Mist 
     ・[27777] たかぎ 
     ・[27778] JT 
     ・[27779] JT 
   これらのプログラムは ....   
     ・[27737] YuO 
     ・[27738] Dixq (管理人) 
     ・[27758] Naohiro19 
     ・[27761] s-rush 
   横スクロールのキャラ ....   
     ・[27750] Mist 
     ・[27751] YmNk 
     ・[27753] Mist 
     ・[27756] YmNk 
   ゲーム   
     ・[27485] non 
     ・[27486] MOM 
     ・[27488] Mist 
     ・[27489] non 
     ・[27490] non 
     ・[27491] Mist 
     ・[27492] MOMO 
     ・[27493] Mist 
     ・[27494] Mist 
     ・[27495] Mist 
     ・[27496] non 
     ・[27497] Mist 
     ・[27498] Mist 
     ・[27499] non 
     ・[27502] s-rush 
     ・[27505] Mist 
     ・[27508] s-rush 
     ・[27518] Mist 
     ・[27521] Dixq (管理人) 
     ・[27526] s-rush 
     ・[27542] MOMO 
     ・[27543] バグ 
     ・[27545] BEMANI 
     ・[27547] MOMO 
     ・[27551] BEMANI 
     ・[27552] toyo 
     ・[27558] やそ 
     ・[27585] Mist 
     ・[27754] やそ 
   アドレスについての質 ....   
     ・[27726] YuO 
     ・[27747] abc 
   PSPのゲームを作りたい ....   
     ・[27740] YuO 
     ・[27741] Dixq (管理人) 
     ・[27742] toyo 
     ・[27745] kazuoni 
   DXライブラリでプルダ ....   
     ・[27728] kazuoni 
     ・[27731] ムンバ 
     ・[27733] Dixq (管理人) 
     ・[27734] ムンバ 
     ・[27744] バグ 
   ネットで調べたソース ....   
     ・[27704] JT 
     ・[27705] たかぎ 
     ・[27706] 通りすがり 
     ・[27708] Haru 
     ・[27709] Haru 
   Windows API機能   
     ・[27679] JT 
     ・[27680] バグ 
     ・[27681] Mist 
     ・[27682] JT 
     ・[27683] JT 
     ・[27684] YuO 
     ・[27685] JT 
     ・[27686] Mist 
     ・[27687] JT 
     ・[27689] Mist 
     ・[27690] JT 
     ・[27691] Mist 
     ・[27693] JT 
     ・[27696] Mist 
     ・[27697] たかぎ 
     ・[27698] Mist 
     ・[27700] YuO 
     ・[27701] JT 
     ・[27703] JT 
   ユーザーアカウント   
     ・[27554] array 
     ・[27557] ibis 
     ・[27563] Justy 
     ・[27678] JT 
   久々のC言語。   
     ・[27517] たかぎ 
     ・[27523] サッピ 
     ・[27540] サッピ 
     ・[27541] Dixq (管理人) 
     ・[27548] サッピ 
     ・[27553] toyo 
     ・[27562] Justy 
     ・[27567] Mikan 
     ・[27571] たかぎ 
     ・[27596] サッピ 
     ・[27606] non 
     ・[27609] サッッピ 
     ・[27676] abc 
   質問です   
     ・[27439] 御津凪 
     ・[27440] non 
     ・[27443] バグ 
     ・[27668] ぽにょ 
     ・[27673] non 
     ・[27674] BEMANI 
   些細なことですが・・ ....   
     ・[27671] Dixq (管理人) 
   東方弾幕っぽいの作っ ....   
     ・[27534] Dixq (管理人) 
     ・[27556] 藍 
     ・[27565] 烏 
     ・[27669] 藍 
   背景画像について   
     ・[27410] Mikan 
     ・[27415] Dixq (管理人) 
     ・[27418] Mikan 
     ・[27419] Mikan 
     ・[27420] BEMANI 
     ・[27421] Mikan 
     ・[27423] BEMANI 
     ・[27424] Dixq (管理人) 
     ・[27425] BEMANI 
     ・[27426] Dixq (管理人) 
     ・[27427] BEMANI 
     ・[27428] Mikan 
     ・[27429] 御津凪 
     ・[27430] Mikan 
     ・[27432] BEMANI 
     ・[27434] Dixq (管理人) 
     ・[27435] 御津凪 
     ・[27436] Mikan 
     ・[27457] にょろ 
     ・[27459] Mikan 
     ・[27559] array 
     ・[27566] Mikan 
     ・[27626] Dixq (管理人) 
     ・[27636] array 
     ・[27661] Mikan 
   [雑談?]自作ヘッダを ....   
     ・[27380] hoge 
     ・[27475] kaiten 
     ・[27500] hoge 
     ・[27659] kaiten 
   再帰的関数によりnの階 ....   
     ・[27651] box 
     ・[27652] non 
     ・[27654] たかぎ 
   DxLib_VCについて   
     ・[27595] AC 
     ・[27597] s-rush 
     ・[27653] tomo 
   標準入力ストリームに ....   
     ・[27621] Justy 
     ・[27644] kazuoni 
   if文とswitch文の違い ....   
     ・[27623] ムンバ 
     ・[27625] Libra 
     ・[27627] BEMANI 
     ・[27629] array 
     ・[27630] ムンバ 
     ・[27632] ムンバ 
     ・[27633] BEMANI 
     ・[27634] ムンバ 
     ・[27635] BEMANI 
     ・[27637] ムンバ 
     ・[27638] Libra 
     ・[27639] ムンバ 
     ・[27640] Justy 
     ・[27642] ムンバ 
   龍神録(初期化)につ ....   
     ・[27601] こめかみ 
     ・[27602] Dixq (管理人) 
     ・[27610] たかぎ 
     ・[27612] kazuoni 
     ・[27613] たかぎ 
     ・[27620] saga 
   変数なんですが・・・   
     ・[27572] lbfuvab 
     ・[27573] box 
     ・[27574] たかぎ 
     ・[27575] スライク 
     ・[27576] スライク 
     ・[27577] たかぎ 
     ・[27582] non 
     ・[27583] toyo 
     ・[27584] toyo 
     ・[27587] スライク 
     ・[27588] box 
     ・[27589] toyo 
     ・[27591] たかぎ 
     ・[27607] box 
     ・[27611] たかぎ 
     ・[27614] box 
     ・[27615] たかぎ 
     ・[27616] box 
     ・[27618] たかぎ 
   メニューバーのデザイ ....   
     ・[27581] toyo 
     ・[27590] AC 
     ・[27594] 御津凪 
     ・[27599] AC 
   シーザー暗号   
     ・[27546] 御津凪 
     ・[27549] あつし 
     ・[27550] 御津凪 
     ・[27560] 通りすがり 
   ポインタを解説しない ....   
     ・[27509] 組木紙織 
     ・[27512] J 
     ・[27514] 組木紙織 
     ・[27515] たかぎ 
     ・[27522] Dixq (管理人) 
     ・[27525] J 
     ・[27530] Dixq (管理人) 
     ・[27537] たいちう 
     ・[27539] やそ 
   質問です。   
     ・[27234] non 
     ・[27236] へたれ 
     ・[27237] non 
     ・[27317] へたれ 
     ・[27323] non 
     ・[27324] Mist 
     ・[27378] フリオ 
     ・[27513] へたれ 
   関西周辺でオフ会?勉強 ....   
     ・[27211] ま〜く 
     ・[27212] Dixq (管理人) 
     ・[27214] 真等 
     ・[27215] Mist 
     ・[27217] Dixq (管理人) 
     ・[27218] BEMANI 
     ・[27219] Dixq (管理人) 
     ・[27220] BEMANI 
     ・[27221] Dixq (管理人) 
     ・[27222] ムンバ 
     ・[27230] YuO 
     ・[27231] s-rush 
     ・[27238] 組木紙織 
     ・[27242] ムンバ 
     ・[27243] s-rush 
     ・[27244] kazuoni 
     ・[27250] Dixq (管理人) 
     ・[27251] Dixq (管理人) 
     ・[27255] kazuoni 
     ・[27258] たかぎ 
     ・[27261] Dixq (管理人) 
     ・[27266] 藍 
     ・[27269] Dixq (管理人) 
     ・[27270] 藍 
     ・[27272] Dixq (管理人) 
     ・[27284] Mist 
     ・[27285] Mist 
     ・[27286] バグ 
     ・[27292] s-rush 
     ・[27299] たいちう 
     ・[27307] Dixq (管理人) 
     ・[27308] Dixq (管理人) 
     ・[27309] Mist 
     ・[27312] keichan 
     ・[27314] Dixq (管理人) 
     ・[27316] たかぎ 
     ・[27319] Mist 
     ・[27321] Dixq (管理人) 
     ・[27322] Dixq (管理人) 
     ・[27343] たかぎ 
     ・[27351] Dixq (管理人) 
     ・[27366] array 
     ・[27398] Dixq (管理人) 
     ・[27405] tkmakwins15 
     ・[27408] Mikan 
     ・[27412] Dixq (管理人) 
     ・[27413] Justy 
     ・[27433] Dixq (管理人) 
     ・[27479] ようすけ 
     ・[27480] Dixq (管理人) 
   MFC   
     ・[27371] Mist 
     ・[27372] ま〜く 
     ・[27381] ざこ 
     ・[27384] ま〜く 
     ・[27385] Mist 
     ・[27386] Mist 
     ・[27391] ざこ 
     ・[27397] ま〜く 
     ・[27404] ざこ 
     ・[27437] toyo 
     ・[27441] ざこ 
     ・[27445] ざこ 
     ・[27446] ま〜く 
     ・[27447] ざこ 
     ・[27448] バグ 
     ・[27450] バグ 
     ・[27460] ざこ 
     ・[27462] バグ 
     ・[27463] ざこ 
     ・[27466] Mist 
     ・[27468] ざこ 
     ・[27469] バグ 
     ・[27470] ざこ 
     ・[27472] バグ 
     ・[27473] バグ 
     ・[27477] ざこ 
   Textureが表示できない ....   
     ・[27456] にょろ 
   BitBlt()とWM_CLOSEメ ....   
     ・[27279] dic 
     ・[27295] AC 
     ・[27297] 御津凪 
     ・[27411] AC 
     ・[27416] 御津凪 
     ・[27422] AC 
   東京近辺での真面目な ....   
     ・[27206] YuO 
     ・[27208] Haru 
     ・[27213] JT 
     ・[27216] Dixq (管理人) 
     ・[27289] JT 
     ・[27290] たかぎ 
     ・[27301] Haru 
     ・[27414] Justy 
     ・[27417] Dixq (管理人) 
   同じプログラムを別の ....   
     ・[27171] lbfuvab 
     ・[27172] BEMANI 
     ・[27173] Libra 
     ・[27174] BEMANI 
     ・[27178] 御津凪 
     ・[27179] dic 
     ・[27180] BEMANI 
     ・[27181] 御津凪 
     ・[27182] BEMANI 
     ・[27184] 御津凪 
     ・[27185] BEMANI 
     ・[27187] 御津凪 
     ・[27223] BEMANI 
     ・[27393] BEMANI 
     ・[27395] 御津凪 
     ・[27406] BEMANI 
     ・[271701233312796] BEMANI 
   質問です。   
     ・[27117] Dixq (管理人) 
     ・[27118] kazuoni 
     ・[27120] Dixq (管理人) 
     ・[27121] SCI 
     ・[27122] kazuoni 
     ・[27123] Dixq (管理人) 
     ・[27124] Dixq (管理人) 
     ・[27399] ぽにょ 
   13章で詰まっていま ....   
     ・[27383] box 
     ・[27387] yu 
     ・[27388] エムエム 
     ・[27389] エムエム 
     ・[27396] Dixq (管理人) 
   無題   
     ・[27356] Dixq (管理人) 
     ・[27357] 御津凪 
     ・[27362] ざこ 
     ・[27363] kazuoni 
     ・[27364] non 
     ・[27365] 御津凪 
     ・[27369] kazuoni 
     ・[27376] フリオ 
     ・[27379] TT 
   ただいまスーパーマリ ....   
     ・[27350] Mist 
     ・[27367] kazuoni 
     ・[27370] ひよこ 
     ・[27373] kazuoni 
     ・[27374] Mist 
     ・[27375] ひよこ 
     ・[27377] s-rush 
   無題   
     ・[27061] lbfuvab 
     ・[27064] a 
     ・[27065] jag 
     ・[27066] a 
     ・[27067] Dixq (管理人) 
     ・[27077] non 
     ・[27084] a 
     ・[27086] kazuoni 
     ・[27090] non 
     ・[27093] a 
     ・[27094] Dixq (管理人) 
     ・[27245] a 
     ・[27247] Dixq (管理人) 
     ・[27248] a 
     ・[27257] Dixq (管理人) 
     ・[27320] a 
     ・[27325] Dixq (管理人) 
     ・[27329] a 
     ・[27331] Dixq (管理人) 
     ・[27333] a 
     ・[27334] YuO 
     ・[27339] non 
     ・[27341] non 
     ・[27347] a 
     ・[27349] non 
     ・[27352] a 
     ・[27354] Dixq (管理人) 
     ・[27355] a 
     ・[27359] Dixq (管理人) 
     ・[27360] non 
     ・[27361] a 
   無題   
     ・[27327] Dixq (管理人) 
     ・[27328] Dixq (管理人) 
     ・[27330] Dixq (管理人) 
     ・[27332] Dixq (管理人) 
     ・[27337] みかんのかわ 
     ・[27340] みかんのかわ 
     ・[27346] Dixq (管理人) 

Name: JT  ..かけだし(1,184ポイント)   Date: 2009/01/27(火) 14:42   No:27771       
Title: VMWARE  SERVER    
2.0を無償でダウンロードし、デスクトップにexeができたのですが起動せずエラーが出ます。(VMware-guest64check-5.5.0-18463.exe)コンパネでローカルディスクの管理権限を外しWindows再起動を行ってもエラーが出ました。原因についてわかるかたいらっしゃいませんか?

73ポイント を手に入れた。


Name: Mist  ..熟練のプログラマー(47,326ポイント)   Date: 2009/01/27(火) 14:45   No:27772     
Title: Re:VMWARE  SERVER    
> エラーが出ました。

どんなエラーが出たのか書いてください。


14ポイント を手に入れた。

Name: JT  ..かけだし(1,226ポイント)   Date: 2009/01/27(火) 14:51   No:27773     
Title: Re:VMWARE  SERVER    
MISTさんエラー内容は This host is NOT capable of running 64-bit guest operating system under this VMware product. と出ます 

42ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(47,440ポイント)   Date: 2009/01/27(火) 14:54   No:27774     
Title: Re:VMWARE  SERVER    
翻訳
このホストはこのVMware製品の下で64ビットのゲストオペレーティングシステムを実行できません。

あなたの実行しようとしているPCのCPUは64bitに対応していないんじゃないですか?

この手のツールはPCについて十分な知識がないのであれば使うのは無理です。
あと、英語が読めることも重要です。


114ポイント を手に入れた。

Name: JT  ..かけだし(1,259ポイント)   Date: 2009/01/27(火) 14:56   No:27775     
Title: Re:VMWARE  SERVER    
わかりました 結構きついことをおっしゃられるんですね 何様ですか

33ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(47,455ポイント)   Date: 2009/01/27(火) 15:03   No:27776     
Title: Re:VMWARE  SERVER    
> 何様ですか

ググればすぐわかるようなこと質問するからです。


15ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(82,306ポイント)   Date: 2009/01/27(火) 15:04   No:27777     
Title: Re:VMWARE  SERVER    
最近のJTさんの質問を見ていて思うのですが...

すでに読まれたとは思いますが、規約と注意事項を再度熟読することを強くお勧めします。
熟読する際は、大きな声で音読することをお勧めします。目で見る、声に出す、耳で聞くことにより、いっそう理解が進むはずです。

> 英語が読めることも重要です。

この程度の英語は中学生レベルです。
社会人になってしまえば、ある意味、漢字が読めるかどうかと大差ないはずですね。
あとは自分で読む気、自分で考える気、自分で調べる気があるかどうかです。


188ポイント を手に入れた。

Name: JT  ..かけだし(1,292ポイント)   Date: 2009/01/27(火) 15:05   No:27778     
Title: Re:VMWARE  SERVER    
もちろん質問する前に調べました。わかったのはあなたにはこの問題が解決できないということだけです

33ポイント を手に入れた。

Name: JT  ..かけだし(1,340ポイント)   Date: 2009/01/27(火) 15:06   No:27779 解決!     
Title: Re:VMWARE  SERVER    
ありがとうございました。参考にしませんが

2倍のポイントを手に入れた! 48ポイント を手に入れた。



Name: もり  ..ぴよぴよ(185ポイント)   Date: 2009/01/27(火) 02:40   No:27736       
Title: これらのプログラムはあっていますか?    
・0,1,2,3,4の数の中で偶数の数だけの和を求めるプログラム。

include<stdio.h>
int main(void){
int i,sum;

for(i=0;i<=4;i++){
if(i/2=0){
sum=sum+i;
}
}
printf("%d",sum);
return(0);
}

・配列s[5]={0,1,2,3,4}とあってそれらの平均値を求めるプログラム。

include<stdio.h>
int main(void){
int
for(i=0;i<5;i++){
average=average+s[i]
}
average1=average/5;
printf("平均=%d\n",average1);

return(0);
}

テストでこのような回答を書いたのですが50点満点だとしたら何点くらいでしょうか?


185ポイント を手に入れた。


Name: YuO  ..プログラマー(28,472ポイント)   Date: 2009/01/27(火) 02:45   No:27737     
Title: Re:これらのプログラムはあっていますか?    
どちらもコンパイルができないから0点かと。

12ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(972,371ポイント)   Date: 2009/01/27(火) 02:47   No:27738     
Title: Re:これらのプログラムはあっていますか?    
まず、間違い箇所を言いますと・・

一つ目
・イゲタ(最初に書くシャープ記号)が無い
・sumが初期化されていない
・ifの比較は=ではなく、==
・i/2ではなくi%2

二つ目
・イゲタ(最初に書くシャープ記号)が無い
・intの宣言がおかしい(変数名がかいてない)
・averageが宣言されていない
・s配列が用意されていない。
・s配列に数値が入っていない。
・average1が用意されていない
・int型に平均を入れても、小数点が入らない(これは仕様による)
・カウンタ変数iが用意されていない
・for文の計算式の後にセミコロンが無い


と言う事で、残念ながらコンパイル通りませんし、
厳しく採点するなら、部分点があったとしてもあまり期待できないかもしれません。

自分のPCにコンパイラは入ってますか?
今そのプログラムを自分でコンパイルしてみませんか?
もし出来る事なら、間違いの無いプログラムを完成させて見ましょう!

後私が採点するならプレタグで投稿されてないので1点減点。
・・というのは冗談で、コードを投稿するときはタグを使って下さい。
詳しくは利用規約をご覧下さい。


251ポイント を手に入れた。

Name: Naohiro19  ..ぴよぴよ(170ポイント)   Date: 2009/01/27(火) 11:40   No:27758     
Title: Re:これらのプログラムはあっていますか?    
配列の要素数分をループさせて偶数のみの合計を返すプログラムをつくってみました。
どうでしょうか?
引数にポインタを指定しているのはint型の配列の先頭番号を渡すためです。

int EvenSum(int* num, int loop)
{
int total = 0; //偶数合計格納用
for(int i = 0; num[i] < loop; i++){
if((num[i] / 2) == 0){
//偶数のみを合計
total += num[i];
}
}
//戻り値として偶数の合計を返す
return total;
}



163ポイント を手に入れた。

Name: s-rush  ..上級者(21,027ポイント)   Date: 2009/01/27(火) 12:00   No:27761     
Title: Re:これらのプログラムはあっていますか?    
1つ目のプログラムなんですけど、偶数の値だけを足していくのであれば
iの値を2ずつインクリメントしていくのでもいいのでは?

たとえばこんな感じに

#include <stdio.h>

int main(void)
{
int sum = 0;
int i;

for(i=0; i<=4; i+=2)
sum = sum+i;

printf("sum = %d\n", sum);
return 0;
}


すると
if(i%2 == 0)
という条件は必要なくなりますよ。

あとは管理人さんのおっしゃる通り、初期化はちゃんとしておきましょう。
でないと実行結果がおかしくなりますよ。
私も同じ意見で、採点結果はかなり厳しいかと思います。


140ポイント を手に入れた。



Name: YmNk  ..ぴよぴよ(90ポイント)   Date: 2009/01/27(火) 10:47   No:27749       
Title: 横スクロールのキャラクター移動    
初めて質問します。

横スクロール型のアクションゲームを作りたいと思って、
C言語を勉強しだしたのですが、どうもキャラクターの移動でつまずいてしまって先にすすみませんorz

止まってる状態と横に移動している状態の画像の切り替え(?)ができません。
→のキーを押すと、右にキャラクターが走りながら移動して、
何も押さないと止まるような・・

具体的にどういうようにプログラムを書けばいいのでしょうか?

C言語は猫でもわかるシリーズと14歳の・・などの本で少し勉強しました。


90ポイント を手に入れた。


Name: Mist  ..熟練のプログラマー(47,050ポイント)   Date: 2009/01/27(火) 10:57   No:27750     
Title: Re:横スクロールのキャラクター移動    
規約にあるとおり開発環境を明示していただけますか。

DXライブラリを使用しているのか、DirectX直接なのか、MFCなのか、.NETなのか、WinAPIオンリーなのか。
これらがわからないと回答できません。


59ポイント を手に入れた。

Name: YmNk  ..ぴよぴよ(95ポイント)   Date: 2009/01/27(火) 10:59   No:27751     
Title: Re:横スクロールのキャラクター移動    
すいません。

開発環境はBCC Developerを使っていて、DXライブラリを使っています。


5ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(47,312ポイント)   Date: 2009/01/27(火) 11:13   No:27753     
Title: Re:横スクロールのキャラクター移動    
やり方はいくらでもあると思いますが一番簡易な一例を示します。


int grh[3];
int cnt = 0;

grh[0] = LoadGraph(止まっているときの画像);
grh[1] = LoadGraph(右に動いている画像1);
grh[2] = LoadGraph(右に動いている画像2);

if (→キーが押されている) {
// 動いている
// 交互に表示することで手足が動いているように見せる
if (cnt < 1000) {
DrawGraph(grh[1]);
} else {
DrawGraph(grh[2]);
}
cnt++;
if (cnt < 2000) cnt = 0;
} else {
// 止まっている
cnt = 0;
DrawGraph(grh[0]);
}

ScreenFlip();



262ポイント を手に入れた。

Name: YmNk  ..ぴよぴよ(131ポイント)   Date: 2009/01/27(火) 11:26   No:27756     
Title: Re:横スクロールのキャラクター移動    
ありがとうございます。

画像が二枚ではなくそれ以上の場合は、
345..と追加して加工していけばいいのですね。

それと画像がつなげた場合はどうすればいいのでしょうか?


36ポイント を手に入れた。



Name: MOMO  ..ぴよぴよ(367ポイント)   Date: 2009/01/22(木) 18:07   No:27484       
Title: ゲーム    
今宿題で3桁の数を当てるというプログラムを作っているのですが最後に正解数を表示させるにはどうすればよいですか?
C言語初心者です。
よろしくお願いします。


#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void)
{
int secret_number[3];
int guess_number[3];
int hit;
int blow;
int count;
int again;
int point;
int i, n, k;
count= again = point = 0;
srand(time(NULL));

while(1){

k = 0;
secret_number[0] = rand () % 9 + 1;
secret_number[1] = rand () % 9 + 1;
secret_number[2] = rand () % 9 + 1;

for(i = 0;i < 3;i++){
for(n = 0;n < 3;n++){
if(i != n){
if(secret_number[i] != secret_number[n]){
k = k + 1;
}
}
}
}
if(k == 6){
break;
}
}

while(1){
hit = blow = again = 0;
printf("Make a guess the number\nChance is %d\n", (10 - count));
count++;
printf("Make the hundredth.");
scanf("%d", &guess_number[0]);
printf("Make the tenth.");
scanf("%d", &guess_number[1]);
printf("Make the oneth");
scanf("%d", &guess_number[2]);

if (guess_number != secret_number){
if (secret_number > guess_number){
printf("You missed.\nThe number is small\n");
}else{
printf("You missed.\nThe number is big.\n");
}
if (count == 10){
printf("You missed.\nThe correct number is %d",secret_number);
break;
}
}

for(i = 0;i < 3;i++){
for(n = 0;n < 3;n++){
if(i == n){
if(guess_number[i] == secret_number[n]){
hit = hit + 1;
}
}
else{
if(guess_number[i] == secret_number[n]){
blow = blow + 1;
}
}
}
}


printf("hit = %d , blow = %d\n",hit, blow);

if (hit == 3 ){
printf("Bingo\n");
point = point + (11 - count);
printf("This point is%d \n" ,(11 - count));
printf("Total point is%d\n", point);
printf("Do you try again(Yes 2, No 6)\n");
scanf("%d", &again);
if (again == 6){
break;
}
if (again == 1){
count = 0;
}
}
else if (count == 10){
printf("You bad.\n");
printf("Do you try again(Yes 2, No 6)\n");
scanf("%d", &again);
if (again == 6){
break;
}
else {
count = 0;

}
}
else if (hit < 3){
printf("You miss.\n");
}
}
}


367ポイント を手に入れた。


Name: non  ..プログラマー(32,007ポイント)   Date: 2009/01/22(木) 18:21   No:27485     
Title: Re:ゲーム    
質問ですが、3桁の数字は1桁づつ、配列にいれなければいけないのは、仕様ですか?
また、同じ数字が使われてはいけないのも仕様ですか?


38ポイント を手に入れた。

Name: MOM  ..ぴよぴよ(43ポイント)   Date: 2009/01/22(木) 18:24   No:27486     
Title: Re:ゲーム    
三桁の数字は一桁づつ、配列に入れなければいけないのは使用ではありません。
しかし三桁の数字がすべて異なっていなければいけません。
よろしくお願いします。


43ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(44,785ポイント)   Date: 2009/01/22(木) 18:30   No:27488     
Title: Re:ゲーム    
最後って言うのは1ゲームごとの終わり?
それとも、6を押して終了した時?

あと、規約にしたがってソースの字下げを行ってください。
読みにくいです。


62ポイント を手に入れた。

Name: non  ..プログラマー(32,279ポイント)   Date: 2009/01/22(木) 18:33   No:27489     
Title: Re:ゲーム    
次の質問です。
10の位や1の位に0は使ったらいけないのですね。

まだ、プログラムを全部見てないですが、正しく動いてないのは確かですよね。
原因の一つとして、
if (guess_number != secret_number){
これは、配列のアドレスを比較しているので、数字の大きさを比較しているわけではありません。


2倍のポイントを手に入れた! 272ポイント を手に入れた。

Name: non  ..プログラマー(32,359ポイント)   Date: 2009/01/22(木) 18:42   No:27490     
Title: Re:ゲーム    
とりあえず、3桁の数字にしたらどうでしょうか?
あとで、正解を出すときにも、役に立ちますし。

sec_num=secret_number[0]*100+secret_number[1]*10+secret_number[2];


80ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(44,879ポイント)   Date: 2009/01/22(木) 18:43   No:27491     
Title: Re:ゲーム    
if (guess_number != secret_number){
if (secret_number > guess_number){
printf("You missed.\nThe number is small\n");
}else{
printf("You missed.\nThe number is big.\n");
}

この部分で何をしたいのかは意味不明だけど、Hit & Blowとしては一応ちゃんと動くよ。


94ポイント を手に入れた。

Name: MOMO  ..ぴよぴよ(491ポイント)   Date: 2009/01/22(木) 18:43   No:27492     
Title: Re:ゲーム    
Mist ..熟練のプログラマーへ
1ゲームごとです。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void)
{
int secret_number[3];
int guess_number[3];
int hit;
int blow;
int count;
int again;
int point;
int i, n, k;
  
  count= again = point = 0;

  srand(time(NULL));
 
 while(1){

  k = 0;

  secret_number[0] = rand () % 9 + 1;
  
  secret_number[1] = rand () % 9 + 1;

 secret_number[2] = rand () % 9 + 1;


 for(i = 0;i < 3;i++){

 for(n = 0;n < 3;n++){

if(i != n){

if(secret_number[i] != secret_number[n]){

k = k + 1;

}

}

}

}

if(k == 6){

break;

}

}



while(1){

hit = blow = again = 0;

printf("Make a guess the number\nChance is %d\n", (10 - count));

count++;

printf("Make the hundredth.");

scanf("%d", &guess_number[0]);

printf("Make the tenth.");

scanf("%d", &guess_number[1]);

printf("Make the oneth");

scanf("%d", &guess_number[2]);



if (guess_number != secret_number){

if (secret_number > guess_number){

printf("You missed.\nThe number is small\n");

}else{

printf("You missed.\nThe number is big.\n");

}

if (count == 10){

printf("You missed.\nThe correct number is %d",secret_number);

break;

}
}


  for(i = 0;i < 3;i++){

  for(n = 0;n < 3;n++){

if(i == n){

if(guess_number[i] == secret_number[n]){

hit = hit + 1;

}

}

else{

if(guess_number[i] == secret_number[n]){

blow = blow + 1;
   }
}
   }
}



printf("hit = %d , blow = %d\n",hit, blow);

 
if (hit == 3 ){

printf("Bingo\n");

 point = point + (11 - count);
 
 printf("This point is%d \n" ,(11 - count));
 
 printf("Total point is%d\n", point);

 printf("Do you try again(Yes 2, No 6)\n");
 
 scanf("%d", &again);
  
  if (again == 6){

  break;

 }

 if (again == 1){

 count = 0;

 }

}

 else if (count == 10){
 
 printf("You bad.\n");

printf("Do you try again(Yes 2, No 6)\n");

scanf("%d", &again);

if (again == 6){

break;

}
  
  else {

 count = 0;

  }
 }
else if (hit < 3){

  printf("You miss.\n");

}

}

}


124ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(44,972ポイント)   Date: 2009/01/22(木) 18:45   No:27493     
Title: Re:ゲーム    
> とりあえず、3桁の数字にしたらどうでしょうか?

Hit & Blowというゲームの性質上、各桁はばらばらのほうが処理しやすいと思うよ。
HitはともかくBlowのチェックがめんどくさいよ。
Bitマスクとか使えばそれほど手間でもないけど、初心者ってことだし。


93ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(45,037ポイント)   Date: 2009/01/22(木) 18:52   No:27494     
Title: Re:ゲーム    
とりあえずご質問の回答。

正解数を記憶するための変数をひとつ追加。
最初に0をセットしておく。
printf("Bingo\n"); のところで正解数+1する
正解数を表示する。

それだけ。


65ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(45,166ポイント)   Date: 2009/01/22(木) 19:23   No:27495     
Title: Re:ゲーム    
なんとなくネット上で見つけたソースを切り貼りして作りました、って感じだけど他のおかしなところも指摘しておきます。

1.複数回プレイできるようになっているけど正解はみんな同じ
  正解を作る部分が最初の一回しか実行されないので何回プレイしても答えの数字は常に同じ。
2.下の部分は入力された各桁の数字が1〜9の範囲であるかをチェックするようにすべき。
  同じ答えを見たことがあるけど、そのプログラムとあなたのプログラムでは目的がそもそも違うからそのままパクっても意味がない。

if (guess_number != secret_number){

if (secret_number > guess_number){

printf("You missed.\nThe number is small\n");

}else{

printf("You missed.\nThe number is big.\n");

}

各プログラムの意味を理解して修正しないとこのまま出しても多分受け取ってもらえないですよ。


129ポイント を手に入れた。

Name: non  ..プログラマー(32,531ポイント)   Date: 2009/01/22(木) 19:41   No:27496     
Title: Re:ゲーム    
> if (guess_number != secret_number){
> if (secret_number > guess_number){
> printf("You missed.\nThe number is small\n");
> }else{
> printf("You missed.\nThe number is big.\n");
> }
>
> この部分で何をしたいのかは意味不明だけど、Hit & Blowとしては一応ちゃんと動くよ。

やりたいことは、入力した3桁の数字が、乱数で出しておいた答えと比較して大きいか
小さいか表示しているつもりだと思いますが・・・
どうして、一応ちゃんと動くの?
配列のアドレスを比較しているのだから、絶対一致することはなく、何度やっても同じ答えに
なるのでは?

MOMOさんがいう正解数とは、10回やっても当たらなかったときに、secret_number を
表示したいのかと私は思いました。





172ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(45,403ポイント)   Date: 2009/01/22(木) 20:20   No:27497     
Title: Re:ゲーム    
> どうして、一応ちゃんと動くの?
Hit & Blowというゲーム知りません?
上にも書きましたがここで本来行うべきエラーチェックはguess_number[0]〜[2]に一桁の1〜9までの数値がきちんと入力されているかどうかです。
で、間違った値が入力されている場合は再入力に戻るようにすることです。
全然出来ていませんけど。

ただ、現状のプログラムでも無駄な文章が毎回出力されるだけでbreakされているわけではないのでその後の処理が動きます。
そのため、”間違った入力がされることがなければ”という条件付でHit & Blowとしては正しく動作していますしゲームとして成立します。
そういう意味での”一応”です。

> まだ、プログラムを全部見てないですが、正しく動いてないのは確かですよね。
エラー処理は多分MOMOさんの意図どおり動いてないとは思いますが、正常系は動きますから動かないと断ずるのはちょっと可哀想かな、と思いました。
どこまでを”正しく”の範疇に含めるかの問題なのかもしれませんが。

> MOMOさんがいう正解数とは、10回やっても当たらなかったときに、secret_number を
> 表示したいのかと私は思いました。
ああ、なるほど。それは思いつきませんでした。
複数回実行できるようになってるから正解までたどり着いた回数かと。
それだったらprintf一個追加するだけですね。



237ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(45,477ポイント)   Date: 2009/01/22(木) 20:24   No:27498     
Title: Re:ゲーム    
ごめん。最後取り消し。

> MOMOさんがいう正解数とは、10回やっても当たらなかったときに、secret_number を
> 表示したいのかと私は思いました。

printf("You missed.\nThe correct number is %d",secret_number);

ここ直すだけか。

printf("You missed.\nThe correct number is %d %d %d",secret_number[0],secret_number[1],secret_number[2]);

だね。


74ポイント を手に入れた。

Name: non  ..プログラマー(32,604ポイント)   Date: 2009/01/22(木) 20:24   No:27499     
Title: Re:ゲーム    
Mistさんへ
風呂の中で、さきほどMistさんが書かれた、Hit & Blowは動いているという意味に気がつき、
風呂から、上がったら、MistさんからすでにRESが・・・大変失礼しました。



73ポイント を手に入れた。

Name: s-rush  ..上級者(17,019ポイント)   Date: 2009/01/22(木) 21:14   No:27502     
Title: Re:ゲーム    
横やりすいません。
>>複数回プレイできるようになっているけど正解はみんな同じ
>>正解を作る部分が最初の一回しか実行されないので何回プレイしても答えの数字は常に同じ。
確かにおっしゃる通り、正解を作る部分が1度しか実行されていないので、
何回プレイしても答えは常に同じ数次になります。
ですが、仮にその部分を修正して、ゲームやり直し時に乱数生成部から実行できるようにしても
rand()(だけ)で乱数を生成しているようなので、
何度実行したとしても同じ数値になるのではないでしょうか?

初めの数字を生成するところから少し不十分のような気がします。


121ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(45,529ポイント)   Date: 2009/01/22(木) 22:42   No:27505     
Title: Re:ゲーム    
> rand()(だけ)で乱数を生成しているようなので、
> 何度実行したとしても同じ数値になるのではないでしょうか?

どうしてそのように思われましたか?
何が不足していると思いますか?
「だけ」と書かれているのが非常に気になります。

3桁の重複しない数字ですから同じ数字になる確率は小さくないかもしれませんが、必ず同じになることはないと思います。



52ポイント を手に入れた。

Name: s-rush  ..上級者(17,053ポイント)   Date: 2009/01/22(木) 23:07   No:27508     
Title: Re:ゲーム    
すいません、少し勘違いしてました^^;

srand(time(NULL));
を見落としてました。


34ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(46,635ポイント)   Date: 2009/01/22(木) 23:37   No:27518     
Title: Re:ゲーム    
私の書き方が悪かったかもしれませんが、今回の「何度も実行」というのはプログラムを終了させず(正解、不正解の後2キーを押して)ゲームを継続した場合のことなので、乱数シードの初期化(srand)を行っているかどうかは関係ありません。
randが実行されるたびに乱数が返されますので、まず違う答えが出来ると思います。

プログラムを終了させてもう一度実行する場合には時間等を使ったシードの初期化行っておかないと、s-rushさんがおっしゃるとおりに1回目と2回目では同じ答えになります。(同じだったら"乱数"じゃねーな(^^;)

例:srandは行わない、乱数値は適当
プログラム自体の実行(1回目)
rand(1回)=1000
rand(2回)=5
rand(3回)=98
rand(4回)=325

プログラム自体の実行(2回目)
rand(1回)=1000
rand(2回)=5
rand(3回)=98
rand(4回)=325

プログラムの実行単位で見れば同じになりますが、内部単位でみれば同じにはなりませんので違う答えが作れます。
この違いは混同しないでください。


432ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(968,632ポイント)   Date: 2009/01/22(木) 23:50   No:27521     
Title: Re:ゲーム    
>>MOMOさん

細かいことですが、

>Mist ..熟練のプログラマーへ

お名前は「Mist」さんです。後、その方と特に深い付き合いをされていない場合は、敬称を付けるようにしてください。

また、プレタグを使うとコードが見やすくなります。
詳しくは規約をご覧下さい。


77ポイント を手に入れた。

Name: s-rush  ..上級者(17,337ポイント)   Date: 2009/01/23(金) 00:09   No:27526     
Title: Re:ゲーム    
>>プログラムを終了させてもう一度実行する場合には時間等を使ったシードの初期化行っておかないと、s-rushさんがおっしゃるとおりに1回目と2回目では同じ答えになります。
一応こういう意味で、同じになるのではないのかな?
って思いましたので^^;
もっと詳しく書くべきでした。
なので

>>プログラムの実行単位で見れば同じになりますが、内部単位でみれば同じにはなりませんので違う答えが作れます。
>>この違いは混同しないでください。

たぶん大丈夫です。
一応私もゲームで乱数を使いまくっている身なので^^



252ポイント を手に入れた。

Name: MOMO  ..ぴよぴよ(606ポイント)   Date: 2009/01/23(金) 12:19   No:27542     
Title: Re:ゲーム    
返事が遅くなりすいません。
Mist ..熟練のプログラマーへ
printf("You missed.\nThe correct number is %d %d %d",secret_number[0],secret_number[1],secret_number[2]);の部分を変えたら出てくるようになりました。
ありがとうございます。
しかし異なる数字にするにはrandだと3桁をいつも異ならせることは難しいのですが3桁を常に異ならせるいい方法はありますか?


115ポイント を手に入れた。

Name: バグ  ..ハッカー(144,088ポイント)   Date: 2009/01/23(金) 12:29   No:27543     
Title: Re:ゲーム    
0〜9の整数を格納した配列を用意して、ランダムに入れ替えて先頭の3つを採用する…とか?

36ポイント を手に入れた。

Name: BEMANI  ..初心者(6,743ポイント)   Date: 2009/01/23(金) 12:37   No:27545     
Title: Re:ゲーム    
>>MOMOさん
>異なる数字にするにはrandだと3桁をいつも異ならせることは難しいのですが・・・
取得したランダム値と、すでに取得されているランダム値を比較して
同じであればもう一度取得するという方法ではダメでしょうか?


上の記事に管理人さんも書かれていらっしゃいますが
以後、名前を呼ぶ時に「Mist ..熟練のプログラマーへ 」
という書き方は本当にしない方がいいです。(お友達などの関係であれば結構です)
もし違うのであれば、「Mistさん・Mist様」など呼び捨てにしないようにしましょう。


177ポイント を手に入れた。

Name: MOMO  ..ぴよぴよ(696ポイント)   Date: 2009/01/23(金) 12:49   No:27547     
Title: Re:ゲーム    
すいませんでした。
気をつけます。
取得したランダム値と、すでに取得されているランダム値を比較して
同じであればもう一度取得するという方法とはどのようにやるのですか?
C言語初心者なものでいろいろとすいません。


90ポイント を手に入れた。

Name: BEMANI  ..初心者(7,632ポイント)   Date: 2009/01/23(金) 13:51   No:27551     
Title: Re:ゲーム    
>>MOMOさん

MOMOさんの場合、
・乱数を三つ取得する
・正解・不正解を表示する
という流れが出来ていると思うので、

・それが同じかどうかを見る
・同じならもう一度取得し、違うのであれば三つの数字はすべて違うといえる
これをC言語という形で書いていきましょう。



secret_number[0]、[1]、[2]が同じでなければいいんですよね?
(間違ってたらごめんなさい;)


// まず、secret_number[0]と[1]と[2]の値を取得します。(これはもう出来ていますね)
secret_number[0] = rand () % 9 + 1;
secret_number[1] = rand () % 9 + 1;
secret_number[2] = rand () % 9 + 1;

// 次に、secret_number[0]と[1]が同じ値でないかを調べ、
// もし同じならもう一度取得します。
// ここで、取得した値がまたかぶってしまう可能性もあるのでwhileを使い
// 同じでなくなるまで取得します。
while(1)
{
  if(secret_number[0] == secret_number[1])
   secret_number[1] = rand()%9 + 1;
  else
   break;
}

// 最後に、secret_number[0]と[2]・[1]と[2]が同じ値でないかを調べ、
// もし同じならもう一度取得します。
// この条件が満たされれば、かぶらないと思います
while(1)
{
  if( (secret_number[0] == secret_number[2]) || (secret_number[1] == secret_number[2]) )
   secret_number[2] = rand()%9 + 1;
  else
   break;
}


今は三桁みたいですので、こんな方法でよいのなら・・・。
(ただし、この書き方は桁数が増えれば、増えるほど、しんどいやり方になります。
改良できるのであれば改良してみましょう。)


889ポイント を手に入れた。

Name: toyo  ..上級者(23,650ポイント)   Date: 2009/01/23(金) 14:03   No:27552     
Title: Re:ゲーム    
バグさんの書かれたランダムに入れ替えていく方法なら

int secret_number[] = {1,2,3,4,5,6,7,8,9};
int i, j, k, l;
for (i = 0; i < 10; i++) {
j = rand() % 9;
k = rand() % 9;
l = secret_number[ j ];
secret_number[ j ] = secret_number[ k ];
secret_number[ k ] = l;
}

トランプゲームのシャッフルでよく使われるかな


179ポイント を手に入れた。

Name: やそ  ..比類無きプログラマー(86,104ポイント)   Date: 2009/01/23(金) 16:48   No:27558     
Title: Re:ゲーム    
ちょっと横に逸れますが・・

TOYOさんの例をみても分かるとおり、

secret_number[0] = rand () % 9 + 1;
だと
0から9ではなく
1から9の乱数になりますが・・・
良いです?



98ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(46,648ポイント)   Date: 2009/01/24(土) 08:42   No:27585     
Title: Re:ゲーム    
> 0から9

と書いたのはバグさんでMOMOさんじゃないね。


13ポイント を手に入れた。

Name: やそ  ..比類無きプログラマー(86,337ポイント)   Date: 2009/01/27(火) 11:16   No:27754     
Title: Re:ゲーム    
>Mist さん
 > 0から9
 >と書いたのはバグさんでMOMOさんじゃないね。

うん、バグさんが0から9と書いているのは流れを読んで分かっていますです^^
ただ、MONOさんが想定している数字の範囲が0からなのか1からなのか、はっきりとした
回答が出ていなかったように見えましたので聞いてみた次第です。

nonさんの質問で
>10の位や1の位に0は使ったらいけないのですね。
というのもありましたし・・・

ランダム数字の決定でしたら、toyoさんの提示されたトランプシャッフルの手法が
分かりやすくて良さそうですね^^



233ポイント を手に入れた。



Name: abc  ..入門者(2,926ポイント)   Date: 2009/01/26(月) 18:12   No:27721       
Title: アドレスについての質問です。    
windowsで6.0Cコンパイラーを使っています.
HANDLE hComm=::CreateFile(.....)でハンドルを取得し、
if((m_pThread = AfxBeginThread(Recv, &hComm, 0,0,0,NULL)) == NULL)でスレッド生成する.

Recv関数は UINT Recv(LPVOID hComm)で宣言されていています。
AfxBeginThread(Recv, &hComm, 0,0,0,NULL))をAfxBeginThread(Recv, (HANDLE*)hComm, 0,0,0,NULL))に
するとうまくいくのですが、&と(HANDLE*)でやった時の違いを教えてもらいたいです。

ちなみに(HANDLE*)でやるとうまくいきます。

自分の考えでは両方アドレスなので問題ないように思ったのですが&だとうまくいきませんでした。
文章がわかりずらいかもしれませんがよろしくお願いします。



285ポイント を手に入れた。


Name: YuO  ..プログラマー(28,460ポイント)   Date: 2009/01/26(月) 19:11   No:27726     
Title: Re:アドレスについての質問です。    
・&hCommを渡す
 →ローカルのオブジェクトへのポインタを渡しているので,hCommが定義された関数から抜け出した場合,Recv関数からは利用できなくなる
 →Recv関数中でのhCommの実際の型はHANDLE *型
・(HANDLE *)hCommを渡す
 →値を渡しているので,hCommが定義された関数から抜け出しても,Recv関数からは利用できる
 →Recv関数中でのhCommの実際の型はHANDLE


110ポイント を落としてしまった。

Name: abc  ..入門者(2,972ポイント)   Date: 2009/01/27(火) 09:51   No:27747 解決!     
Title: Re:アドレスについての質問です。    
すいません解決しました。
結論から言うと、ハンドル=アドレスだったんですね><
実態と勘違いしていました。
YuOさんありがとうございました。



46ポイント を手に入れた。



Name: モンキー  ..ぴよぴよ(14ポイント)   Date: 2009/01/27(火) 04:11   No:27739       
Title: PSPのゲームを作りたいのですが‥    
趣味でPSPで遊べるゲームが作りたいと思っています。
あちこち見て回ったのですが、参考になりそうなサイトが見つかりません。
何を勉強したらPSPで遊べるゲームが作れるようになりますか?
そういうライブラリみたいなものはありませんか?


14ポイント を手に入れた。


Name: YuO  ..プログラマー(28,530ポイント)   Date: 2009/01/27(火) 04:41   No:27740     
Title: Re:PSPのゲームを作りたいのですが‥    
> 趣味でPSPで遊べるゲームが作りたいと思っています。

PSPのゲームを個人で開発することはできません。
まずは会社を作るところからになると思います。
# 個人相手に開発用の契約を結んでくれるとは思えませんので。

現行のゲーム機において,個人で手に入る開発環境が公式に提供されているのは,Xbox 360だけです。
これも,XNAという.NET Compact Frameworkのカスタム版上でMSILを実行する環境であり (言語はC#のみ対応),
本来の開発者に提供されている環境 (C++用と聞いています) とは別物で機能も劣る物になっています。


58ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(972,534ポイント)   Date: 2009/01/27(火) 04:49   No:27741     
Title: Re:PSPのゲームを作りたいのですが‥    
DXライブラリの掲示板でよくお見かけする憂煉さんが
PSPで動くDXライブラリ「DXライブラリPortable」を開発中らしいです。

http://hpcgi2.nifty.com/natupaji/aska.cgi (DXライブラリ掲示板)

http://yureeeeeeeeen.blog79.fc2.com/ (憂煉さんのHP)

使った事がないので、どんなものかよく知らないのですがどうでしょう。
ライセンス関係とか、何かSONYの許可が必要なのかとかその辺はよく知らないです、ごめんなさい。


147ポイント を手に入れた。

Name: toyo  ..上級者(24,127ポイント)   Date: 2009/01/27(火) 07:11   No:27742     
Title: Re:PSPのゲームを作りたいのですが‥    
非公式開発で情報も少ないのですが

PSP自作ソフトプログラミング/開発wiki
http://www7.atwiki.jp/pspprogram/


57ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(52,258ポイント)   Date: 2009/01/27(火) 09:33   No:27745     
Title: Re:PSPのゲームを作りたいのですが‥    
toyoさんの挙げられたページにも載っていますが、
PSPTOOLCHAINで一応動作しましたが、
関数が詳細に解説されているページが少なく、
ゲームと呼べる代物はDXライブラリポータブルが完成しないとなかなか厳しいです。
英語が読めれば何とかなるのですが・・・。

っと自分もちょっと諦めた人の一人です^^;


50ポイント を手に入れた。



Name: biodg  ..ぴよぴよ(119ポイント)   Date: 2009/01/26(月) 18:56   No:27724       
Title: DXライブラリでプルダウンメニューは可能?    
現在、DXライブラリを使ってゲームを作っているのですが
戦略が深いゲームで作戦を選ぶときに、サイトなどでよく見るプルダウンメニューが使えると便利だと思ったのですが、
このプルダウンメニューを表示し、その値を取得するような方法はありますか?


119ポイント を手に入れた。


Name: kazuoni [URL]  ..熟練のプログラマー(52,208ポイント)   Date: 2009/01/26(月) 19:50   No:27728     
Title: Re:DXライブラリでプルダウンメニューは可能?    
現在のDXライブラリではそのような関数はないかと思われます。
自作が一番手っ取り早いかと。。


48ポイント を手に入れた。

Name: ムンバ  ..上級者(24,523ポイント)   Date: 2009/01/26(月) 22:50   No:27731     
Title: Re:DXライブラリでプルダウンメニューは可能?    
こんばんは。

実は私もbiodgさんと同じ様に思ってました。
自分で作る知識が無いので、あればいいな〜って。^^;
解説されてるページがあるんじゃないかと探してみたのですが、見つかりませんでした。

3Dなのですが
「DXライブラリ3D 公式ダウンロードページ」(←本家ですが、今現在はTOP開けません。)
内の
http://fatalita.sakura.ne.jp/3DLib/Ref.htm#L25
↑こちらの
「ミニウインドウ操作関数」
まだ完成されて無い様なのですが、完成されれば使わせて頂きたいかと思い。
プルダウンメニューとは違うかもしれませんが、ご参考までに。<_ _>

kazuoniさんのおっしゃる通り、今は自作するしか無いみたいです。(涙


320ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(972,120ポイント)   Date: 2009/01/27(火) 01:08   No:27733     
Title: Re:DXライブラリでプルダウンメニューは可能?    
JEXさんのDXライブラリ3DのHPは閉鎖するようですよ・・。
事情があるのだとは思いますが、期待していただけに非常に残念です。


43ポイント を手に入れた。

Name: ムンバ  ..上級者(24,583ポイント)   Date: 2009/01/27(火) 01:26   No:27734     
Title: Re:DXライブラリでプルダウンメニューは可能?    
マジですか?本当に残念です。
って言いますか、私は人に頼りすぎかと・・・。(謝
できるだけ、自分でがんばってみます!
情報ありがとうございました。<_ _>


60ポイント を手に入れた。

Name: バグ  ..ハッカー(144,213ポイント)   Date: 2009/01/27(火) 08:41   No:27744     
Title: Re:DXライブラリでプルダウンメニューは可能?    
所謂、コンボボックスというやつですね。
DxLibを使用しているとはいえ、Windowには変わりないので、DxLibの中身をいじくれば出来ない事はないんじゃないかな…多分(^_^;)


67ポイント を手に入れた。



Name: JT  ..かけだし(1,093ポイント)   Date: 2009/01/26(月) 14:45   No:27702       
Title: ネットで調べたソースと自作のプログラムがかぶりました><    
内容を理解しているならそのまま使用してもいいですよね

13ポイント を手に入れた。


Name: JT  ..かけだし(1,111ポイント)   Date: 2009/01/26(月) 14:59   No:27704 解決!     
Title: Re:ネットで調べたソースと自作のプログラムがかぶりました><    


5ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,965ポイント)   Date: 2009/01/26(月) 15:10   No:27705     
Title: Re:ネットで調べたソースと自作のプログラムがかぶりました><    
> 内容を理解しているならそのまま使用してもいいですよね

どんな観点で「いいですね」なのか分かりませんが...

著作権については、まったく独自に作ったものが"たまたま"同じになった場合は違反ではありません。
ただし、係争になった場合、どうやって立証するかはまた別の問題です。

特許については、"たまたま"同じでもアウトです。


64ポイント を手に入れた。

Name: 通りすがり  ..中級者(13,868ポイント)   Date: 2009/01/26(月) 15:19   No:27706     
Title: Re:ネットで調べたソースと自作のプログラムがかぶりました><    
ネットで調べたソースがどんなソースかわかりませんが、
内容を理解していなければ、何らかの解説サイトの内容と一致したプログラムが出来上がる事はありませんよね。

また、何を目的として許可を求めているのか、何がどうかぶったのかこれではさっぱりわかりません。
前も同じことを言われていましたが、もう少し具体的に質問して下さい。

それから、解決したにしても「○」とだけ書いて解決にしておくのは見てあまり気持ちのいいものではありません。
仕事中だから時間が無いということですが、「○」と書くのも「解決しました」と書くのもほとんど時間は変わりませんよね。


209ポイント を手に入れた。

Name: Haru  ..上級者(23,120ポイント)   Date: 2009/01/26(月) 15:36   No:27708     
Title: Re:ネットで調べたソースと自作のプログラムがかぶりました><    
通りすがりさん

>ネットで調べたソースがどんなソースかわかりませんが、
>内容を理解していなければ、何らかの解説サイトの内容と一致したプログラムが出来上がる事はありませんよね

100%ありえない・・・。というわけではないでしょうが・・・
確かに Hello World レベルでない限りはまずないですよね。

>それから、解決したにしても○とだけ書いて解決にしておくのは見てあまり気持ちのいいものではありまん。
>仕事中だから時間が無いということですが、「○」と書くのも「解決しました」と書くのもほとんど時間は変
>わりませんよね

決して揚げ足を取るわけではないのですが、
一番最初の投稿の時点で解決ボタンを押されているようです





334ポイント を手に入れた。

Name: Haru  ..上級者(23,192ポイント)   Date: 2009/01/26(月) 15:45   No:27709     
Title: Re:ネットで調べたソースと自作のプログラムがかぶりました><    
>決して揚げ足を取るわけではないのですが、
>一番最初の投稿の時点で解決ボタンを押されているようです

うそです。
間違えました・・・orz
編集キー登録してなかったので、すいません


72ポイント を手に入れた。



Name: JT  ..ぴよぴよ(897ポイント)   Date: 2009/01/26(月) 11:06   No:27677       
Title: Windows API機能    
// 126.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"

#include <Windows.h>


void ShutdownWindows(BOOL bReboot, BOOL bForce);

int main(UINT ShutDownWindows)
{
ShutDownWindows(TRUE,TRUE);//void ShutdownWindowsを呼び出して再起動を行う(ここが駄目な箇所)

}



// [引数]
// bReboot : 終了後に再起動する場合はTRUE
// bForce : プロセスを強制的に打ち切る場合はTRUE
//
// [返値]
// 終了指示を発行した : TRUE
// 終了指示が失敗した : FALSE

void ShutdownWindows(BOOL bReboot = FALSE, BOOL bForce = FALSE)
{
DWORD ret;
HANDLE hProcess;
HANDLE hToken;
LUID Luid;
TOKEN_PRIVILEGES tokenNew, tokenPre;
UINT nFlag;

hProcess = GetCurrentProcess();

OpenProcessToken(hProcess,
TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hToken);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &Luid);

tokenNew.PrivilegeCount = 1;
tokenNew.Privileges[0].Luid = Luid;
tokenNew.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, &tokenNew,
sizeof(tokenPre), &tokenPre, &ret);

if (bReboot) {
nFlag = EWX_REBOOT; // 再起動
} else {
nFlag = EWX_POWEROFF; // 電源OFF
}

if (bForce) {
nFlag |= EWX_FORCE; // プロセス強制終了
}

ExitWindowsEx(nFlag, 0); // シャットダウン処理

return;
}
ShutdownWindowsを呼び出して再起動を行う処理が上手くいきません。どなたか教えてください





481ポイント を手に入れた。


Name: JT  ..ぴよぴよ(924ポイント)   Date: 2009/01/26(月) 11:30   No:27679     
Title: Re:Windows API機能    
インデント忘れてました、、、すいません><

18ポイント を手に入れた。

Name: バグ  ..ハッカー(144,146ポイント)   Date: 2009/01/26(月) 11:31   No:27680     
Title: Re:Windows API機能    
呼び出したい関数は、ShutdownWindows関数ですよね?

UINT ShutDownWindows // main関数の引数
void ShutdownWindows(BOOL, BOOL) // シャットダウンを行うのであろう関数


58ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(46,743ポイント)   Date: 2009/01/26(月) 11:34   No:27681     
Title: Re:Windows API機能    
規約をよく読んでそれに則った質問をしていただけませんか。
・ソースの字下げをしていない
・「上手くいきません。」ではわからない。もっと具体的に。


69ポイント を手に入れた。

Name: JT  ..ぴよぴよ(943ポイント)   Date: 2009/01/26(月) 11:34   No:27682     
Title: Re:Windows API機能    
ありがとうございます。ですがこれでもできませんでした


19ポイント を手に入れた。

Name: JT  ..かけだし(1,034ポイント)   Date: 2009/01/26(月) 11:36   No:27683     
Title: Re:Windows API機能    
int main(UINT ShutDownWindows)
{
   ShutDownWindows(TRUE,TRUE);//void ShutdownWindowsを呼び出して再起動を行う(ここが駄目な箇所)

}

ここで再起動処理の引数を渡し、実行したいのですができないのです。


91ポイント を手に入れた。

Name: YuO  ..プログラマー(28,396ポイント)   Date: 2009/01/26(月) 11:37   No:27684     
Title: Re:Windows API機能    
5つのWindows APIの呼び出しを行っていますが,一個もエラーチェックをしていませんね……。

・どこのAPI呼び出しで失敗しているのですか。
→各APIのMSDNの記述を読んで,APIごとに判別を行う
・また,その失敗についてGetLastError APIはどう言っているのですか。
→ルックアップツールとか,NET HELPMSGとかで確認もする


134ポイント を手に入れた。

Name: JT  ..かけだし(1,059ポイント)   Date: 2009/01/26(月) 11:42   No:27685     
Title: Re:Windows API機能    
APIにいく前の呼び出し処理の引数で失敗しています><

25ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(46,799ポイント)   Date: 2009/01/26(月) 11:44   No:27686     
Title: Re:Windows API機能    
UINT ShutDownWindows

メイン関数の上記の引数は何のためにあるんですか?
引数変数名と関数名が同じのためVC++2008ではコンパイルが出来ますがShutDownWindowsは関数として評価しないと警告が出ます。


56ポイント を手に入れた。

Name: JT  ..かけだし(1,067ポイント)   Date: 2009/01/26(月) 11:50   No:27687     
Title: Re:Windows API機能    
REBOOTをTRUEにする引数です

8ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(46,835ポイント)   Date: 2009/01/26(月) 12:00   No:27689     
Title: Re:Windows API機能    
関数名と同じ変数名を使っているのが間違い。
main関数の引数を自分勝手に決めているのが間違い。


36ポイント を手に入れた。

Name: JT  ..かけだし(1,048ポイント)   Date: 2009/01/26(月) 12:10   No:27690     
Title: Re:Windows API機能    
どう直せばいいかご教示お願いします

19ポイント を落としてしまった。

Name: Mist  ..熟練のプログラマー(46,866ポイント)   Date: 2009/01/26(月) 12:18   No:27691     
Title: Re:Windows API機能    
http://edu.inf.shizuoka.ac.jp/lecture/2007/A042/text/ex9c.html

上を読んで勉強してください。


31ポイント を手に入れた。

Name: JT  ..かけだし(1,057ポイント)   Date: 2009/01/26(月) 12:30   No:27693     
Title: Re:Windows API機能    
これはわかります

9ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(46,967ポイント)   Date: 2009/01/26(月) 12:43   No:27696     
Title: Re:Windows API機能    
JTさんはもっと質問の仕方を考えたほうがいいと思うね。
先にも書いたがぜんぜん具体的じゃない。

> これはわかります

とだけ返されても、「じゃあ何がわからないの?」としか返せません。

> どう直せばいいかご教示お願いします

一度でも自分でやってみてそれでもだめならともかく、最初から答えを欲しがるようでは成長しないよ?
自分でやってみたのだったら、どういうふうに直したのか、その結果どういう動作になったのかをもっと詳細にするべきです。


101ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,901ポイント)   Date: 2009/01/26(月) 12:53   No:27697     
Title: Re:Windows API機能    
> これはわかります

だとすると、mainの引数は、

int main(int argc, char *argv[])

でなければならないことが分かっているのですよね?
にもかかわらず、

int main(UINT ShutDownWindows)

とされている理由は何でしょうか?

もし、分かっていてあえてやっているとすると、考えられる可能性はひとつしかありません。
すなわち、WinMainから上記の非標準のmainを(直接的または間接的に)呼び出しているということです。
そうなのでしょうか?


185ポイント を落としてしまった。

Name: Mist  ..熟練のプログラマー(46,980ポイント)   Date: 2009/01/26(月) 13:06   No:27698     
Title: Re:Windows API機能    
最後のヒント

×:ShutDownWindows(TRUE,TRUE);

○:ShutdownWindows(TRUE,TRUE);

関数呼び出し部分をきちんと直せば再起動できます。(VC++2008EEで確認)


13ポイント を手に入れた。

Name: YuO  ..プログラマー(28,570ポイント)   Date: 2009/01/26(月) 13:11   No:27700     
Title: Re:Windows API機能    
どうも,
> 上手くいきません
を見て私は実行時のエラー (文法エラー等は単なるミス) と思っていたのですが,JTさんの発言を読んでいると,コンパイルエラーのような気がしてきます。


まず,何が起きているのかをちゃんと記述してください。
現在のところ,わかっているのは,
・JTさんが最初にあげたプログラムに対して「上手くいかない」と思っていること
のみです。

せっかく規約と注意事項の項目に質問用のテンプレートがあるのですから,
まずはこのテンプレートを埋めて質問をしてください。


174ポイント を手に入れた。

Name: JT  ..かけだし(1,080ポイント)   Date: 2009/01/26(月) 13:22   No:27701     
Title: Re:Windows API機能    
すみません><仕事中なので掲示板に投稿する文章を焦って入力しました

23ポイント を手に入れた。

Name: JT  ..かけだし(1,106ポイント)   Date: 2009/01/26(月) 14:51   No:27703 解決!     
Title: Re:Windows API機能    
ありがとうございました!もっと勉強します

13ポイント を手に入れた。



Name: JT  ..ぴよぴよ(119ポイント)   Date: 2009/01/23(金) 10:01   No:27538       
Title: ユーザーアカウント    
間違えて制限つきアカウントにしてしまってパソコンの管理者に戻したいんですがパスワードがわからずアカウントも一つしかありません。。。強制的にできないでしょうか?

68ポイント を手に入れた。


Name: array [URL]  ..熟練のプログラマー(46,645ポイント)   Date: 2009/01/23(金) 14:40   No:27554     
Title: Re:ユーザーアカウント    
強制的にアカウントを管理権限持つよう様にできてしまうと、アカウント制限の意味がなく、OSの不具合という事になりそうです。
Windowsがそんな致命的なバグを残すとは思えないので、無理だと思います。

最終手段はリカバリCDからのPC初期化でしょうか。メーカによって初期化方法は違うのでPCの取扱説明書を読むといいです。


141ポイント を手に入れた。

Name: ibis  ..上級者(17,549ポイント)   Date: 2009/01/23(金) 15:27   No:27557     
Title: Re:ユーザーアカウント    
Windowsではパスワードを記録してるファイルが見えないようになってるのですが、
他のOSを使うとそれが見えてしまうらしいですよ。
実際に確かめたことは無いですが。
FDやCDから起動できる無料のOS(例えばknopixとか)が便利です。


25ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(312,793ポイント)   Date: 2009/01/23(金) 20:37   No:27563     
Title: Re:ユーザーアカウント    
 意外と Administratorのパスワードを設定している人は少なかったりします。
 だめもとでセーフモードで起動して、Administratorで入ってみてはどうでしょうか。
 パスワードが設定されていなければ、それで入れると思いますが。


87ポイント を手に入れた。

Name: JT  ..ぴよぴよ(906ポイント)   Date: 2009/01/26(月) 11:07   No:27678 解決!     
Title: Re:ユーザーアカウント    
ありがとうございました

9ポイント を手に入れた。



Name: サッピ  ..ぴよぴよ(11ポイント)   Date: 2009/01/22(木) 22:48   No:27506       
Title: 久々のC言語。    
久々にC言語をやろうと思います。
パケットを解析するツールってどんなんがありますか?
そのツールの特徴も教えてもらえませんか?


11ポイント を手に入れた。


Name: たかぎ [URL]  ..比類無きプログラマー(81,120ポイント)   Date: 2009/01/22(木) 23:32   No:27517     
Title: Re:久々のC言語。    
> パケットを解析するツールってどんなんがありますか?

何のパケットでしょう?


11ポイント を手に入れた。

Name: サッピ  ..ぴよぴよ(25ポイント)   Date: 2009/01/22(木) 23:54   No:27523     
Title: Re:久々のC言語。    
何のパケット…。
よくわからないんですが、パケット…。


14ポイント を手に入れた。

Name: サッピ  ..ぴよぴよ(37ポイント)   Date: 2009/01/23(金) 11:47   No:27540     
Title: Re:久々のC言語。    
わかる人いなかったかぁ…。

12ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(969,330ポイント)   Date: 2009/01/23(金) 11:51   No:27541     
Title: Re:久々のC言語。    
普通にググって出てくるようなものじゃだめですか?
http://www.google.co.jp/search?hl=ja&q=%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%80%80%E8%A7%A3%E6%9E%90%E3%80%80%E3%83%84%E3%83%BC%E3%83%AB&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=


84ポイント を手に入れた。

Name: サッピ  ..ぴよぴよ(68ポイント)   Date: 2009/01/23(金) 12:59   No:27548     
Title: Re:久々のC言語。    
私も調べてみたのですが、
いまいちよくわからなくて…。
いっぱいかいてあって。


31ポイント を手に入れた。

Name: toyo  ..上級者(23,719ポイント)   Date: 2009/01/23(金) 14:26   No:27553     
Title: Re:久々のC言語。    
C言語をやろうと思ってからパケット解析ツールが必要になったいきさつはなんでしょうか。
ネットワークにつないでいるパソコンのパケットですよね。
ネットワーク管理者かハッカーぐらいしか使わないものだと思ってました。


69ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(312,706ポイント)   Date: 2009/01/23(金) 20:31   No:27562     
Title: Re:久々のC言語。    

>わかる人いなかったかぁ…。

 多分9割9分いないと思います。
 
 たかぎさんも仰っていますが、まず何のパケットなのでしょう?
 一口にパケットといってもネットワークだけでなく、USBとか ATAPIとか
何かしらの通信を伴うものはパケットというものが存在します。

 次に、環境(OS)は何でしょうか?
 Windowsなのか Linuxなのか、Macなのか、携帯電話その他 PDAなのか。

「WindowsXP上で、ネットワークのパケットをキャプチャしたい」と
ここまで特定できれば何かしら紹介はできると思いますが、
どちらも判らない状態では答えようがありません。



# toyoさん
>ネットワーク管理者かハッカーぐらいしか使わないものだと思ってました。

 ネットワークアプリを作っていると、普通によく使いますよ。


2倍のポイントを手に入れた! 818ポイント を手に入れた。

Name: Mikan [URL]  ..入門者(4,312ポイント)   Date: 2009/01/23(金) 22:09   No:27567     
Title: Re:久々のC言語。    
>何かしらの通信を伴うものはパケットというものが存在します。
補足ですが、
すこし噛み砕いて説明すると、データを全部送るのではなくデータを小分けにして
小包(パケット)をつくり、通信して送るということです。

携帯電話のパケット料金っていう言葉は、メールにしてもimodeのブラウザにしても全部データは
小さい単位で分割して送られてきているから、パケット料金(パケット通信料金)って名前がついたのだと思います(仮定)

なのでパケットが何か解らないので特定はできませんが、
通信関係で出てくるパケットと言う言葉は上記のような意味になります。


146ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,271ポイント)   Date: 2009/01/23(金) 23:06   No:27571     
Title: Re:久々のC言語。    
> すこし噛み砕いて説明すると、データを全部送るのではなくデータを小分けにして
> 小包(パケット)をつくり、通信して送るということです。

pack に縮小を意味する接尾辞 -et が付いたのが packet ですからね。

主に通信に使うわけですが、通信といっても、一般的に想像するようなものだけでなく、I2Cバスの通信なんかでもパケットの概念を使います。
ですから、何のパケットかがわからないと話になりません。

とりあえず利用規約を熟読した上で、改めて質問しなおすことを強くお勧めします。


151ポイント を手に入れた。

Name: サッピ  ..ぴよぴよ(75ポイント)   Date: 2009/01/24(土) 15:13   No:27596     
Title: フレーミングと解析    
OSはWindowsです。



7ポイント を手に入れた。

Name: non  ..プログラマー(32,673ポイント)   Date: 2009/01/24(土) 17:20   No:27606     
Title: 意味不明    
「フレーミングと解析」
要するに何かの実験?



21ポイント を手に入れた。

Name: サッッピ  ..ぴよぴよ(2ポイント)   Date: 2009/01/24(土) 17:52   No:27609 解決!     
Title: Re:すみません    
よくわからなくなってきたので、
この辺で一度終りにします。


2ポイント を手に入れた。

Name: abc  ..入門者(2,641ポイント)   Date: 2009/01/26(月) 10:45   No:27676     
Title: Re:すみません    
なんか終わっちゃいましたが、通信パケットならlan通信とかじゃないですかね??
勉強生ならAとBのパソコンをつないでパケットを送信したかっただけでは??


41ポイント を手に入れた。



Name: ぽにょ  ..かけだし(1,532ポイント)   Date: 2009/01/22(木) 07:05   No:27438       
Title: 質問です    
今、提示している問題をやろうと思っているのですが半日ほどかけて処理手順を考えてたのですが
まったく思い浮かびません、問題の意図すら微妙な感じです・・
ピリオドが入力されるまでループ(while)でループさせる・・・
これぐらいしか思いつきませんでした
こんな自分ですが、助言の方、よろしくお願いします。

-- 課題 --
行頭でピリオドが入力されるまで、入力された文字を出力するプログラムを作成
(ピリオド自身は表示しなくていい)

エラー仕様
行頭ピリオドの後に文字がある場合
対処
行頭でピリオドと認識しプログラムを終了

(12:46管理人により課題内容追加)


132ポイント を手に入れた。


Name: 御津凪 [URL]  ..熟練のプログラマー(52,036ポイント)   Date: 2009/01/22(木) 07:19   No:27439     
Title: Re:質問です    
短い問題文なら、添付せずに直接載せたほうがいいと思いますよ。
過去ログに入ってしまうと、添付したファイルは削除されますし。

コマンドラインでの入力が対象なら、getchar で読み込んで処理すればいいと思います。



#include <stdio.h>

int main(){
int ch;

ch = getchar();
while(ch != '.'){

ch = getchar();
}

return 0;
}


ヒントとして骨組み部分だけ書いておきます。


209ポイント を手に入れた。

Name: non  ..プログラマー(31,969ポイント)   Date: 2009/01/22(木) 08:35   No:27440     
Title: Re:質問です    
行頭のピリオドをチェックなら,私なら行単位で例えばgetsを使って入力したいです。


45ポイント を手に入れた。

Name: バグ  ..ハッカー(143,800ポイント)   Date: 2009/01/22(木) 09:25   No:27443     
Title: Re:質問です    
1行辺りの最大文字数が決まっていないのが気になりますね…
こちら側で勝手に決めていいのかな?


28ポイント を手に入れた。

Name: ぽにょ  ..かけだし(1,638ポイント)   Date: 2009/01/26(月) 00:09   No:27668     
Title: Re:質問です    
なるほど、次回からはそうします、ご指摘ありがとうございました

monさん
そうですね、行単位ならgetsの方がいいかもしれませんね
ありがとうございます

バグさん
文字数は・・・そうですね、今回はこちら側で決めてみようと思います
50とか。

御津凪さんのコードをヒントに
なんとなくですが書いてみました。



106ポイント を手に入れた。

Name: non  ..プログラマー(32,751ポイント)   Date: 2009/01/26(月) 08:35   No:27673     
Title: Re:質問です    
これって、コンパイル通らないでしょ。コンパイルしてみたらどうですか?


29ポイント を手に入れた。

Name: BEMANI  ..中級者(9,204ポイント)   Date: 2009/01/26(月) 09:20   No:27674     
Title: Re:質問です    
ピリオドをチェックと仰ってるんですが、ソース見たところ
>if(','=!str[0])
だと、ピリオドではなくカンマをチェックしていることになるのでは・・・。


25ポイント を手に入れた。



Name: A  ..かけだし(1,548ポイント)   Date: 2009/01/26(月) 00:40   No:27670       
Title: 些細なことですが・・・・    
はじめまして。いつも参考にさせていただいております。

龍神録プログラミングの館の21章「自機に当たり判定〜」と22章「ボムを〜」のところに


---- ini.cpp first_ini()関数内以下追加 ----

//例:弾0は76x76ピクセルで、5色あり、当たり範囲17ピクセル
input_bullet_info(&bullet_info[0],76, 76, 5,17.0);
input_bullet_info(&bullet_info[1],22, 22, 6, 4.0);
input_bullet_info(&bullet_info[2], 5,120,10, 2.5);
input_bullet_info(&bullet_info[3],19, 34, 5, 2.0);
input_bullet_info(&bullet_info[4],38, 38,10, 2.0);
input_bullet_info(&bullet_info[5],14, 16, 3, 3.5);
input_bullet_info(&bullet_info[6],14, 18, 3, 2.0);
input_bullet_info(&bullet_info[7],16, 16, 9, 2.5);
input_bullet_info(&bullet_info[8],12, 18,10, 1.5);
input_bullet_info(&bullet_info[9],13, 19, 3, 2.0);


とあるのですが、全く同じ内容のような・・・・・

些細なことですが気になったので投稿させていただきました。




354ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..伝説なるハッカー(970,592ポイント)   Date: 2009/01/26(月) 03:04   No:27671     
Title: Re:些細なことですが・・・・    
あ、そうですね、間違いのようです。
修正しておきます。
ご報告ありがとうございますm(_ _)m


41ポイント を手に入れた。



Name:  ..初心者(7,778ポイント)   Date: 2009/01/23(金) 02:25   No:27533       
Title: 東方弾幕っぽいの作ってみた2    
以前も東方っぽい弾幕を製作してアップしてましたが、卒論の方も終わりが見えてきたので息抜きに

QED「495年の波紋」っぽいもの作ってみました〜

http://www.nicovideo.jp/watch/sm5918910

Dxtoryの音ズレが厄介すぎて最初の部分だけですが、後半も後ほどアップしようと考えてます。

音ズレ修正してmp4変換でまた音ズレという・・・orz

今回は結構想像で作った部分が多々あるので、っぽい とつけてます本家と見比べるとおかしい部分が大量にあると思われますw



178ポイント を手に入れた。


Name: Dixq (管理人)  ..伝説なるハッカー(969,183ポイント)   Date: 2009/01/23(金) 02:50   No:27534     
Title: Re:東方弾幕っぽいの作ってみた2    
おぉ〜素晴らしい♪
自分の好きな弾幕真似するの楽しいですよね^^

そしてこれを速度「速」にしてノーミスで神プレイ動画にするわけですねw


75ポイント を手に入れた。

Name:  ..初心者(8,202ポイント)   Date: 2009/01/23(金) 14:51   No:27556     
Title: Re:東方弾幕っぽいの作ってみた2    
>>自分の好きな弾幕真似するの楽しいですよね^^

実は途中でどうやって作るかわからなくて投げた弾幕が何個か・・・ 特殊な動きになると一気にわからなくなる・・orz


>>そしてこれを速度「速」にしてノーミスで神プレイ動画にするわけですねw

本家すら避けきれないのに速にしたら・・・・逆によけれ!ナイナイ

速だとスピード最終的に10ぐらいになりますよw



2倍のポイントを手に入れた! 308ポイント を手に入れた。

Name:  ..入門者(4,789ポイント)   Date: 2009/01/23(金) 21:51   No:27565     
Title: Re:東方弾幕っぽいの作ってみた2    
素晴らしいですね。

速の発狂見て見たいですね〜w
そして神回避のパフォーマンスをするわけですかw
これは楽しみですn(ry

後半楽しみに待たせていただきます。


75ポイント を手に入れた。

Name:  ..初心者(8,290ポイント)   Date: 2009/01/26(月) 00:40   No:27669     
Title: Re:東方弾幕っぽいの作ってみた2    
http://www.nicovideo.jp/watch/sm5949050

>>鳥さん

後半できました〜 速は無理ですw

まず本家を避けれるようにならないと・・・その時点で私には無理なきが・・・・orz


88ポイント を手に入れた。



Name: Mikan  ..かけだし(1,772ポイント)   Date: 2009/01/22(木) 01:02   No:27409       
Title: 背景画像について    
現在、シューティングをC++の勉強がてら作っています。

ゲーム中に出てくる背景を新しくしたいと思っています。

東方や龍神録みたいな背景をつくりたいのですが

絵心の無い僕にもつくれますでしょうか?w

もしかしたら写真から加工するのかなぁ?とかも思いましたが

方法がわかりません^^;

ご教授おねがいします。

追伸

ホームページを作りましたので、興味のあるかたはぜひお立ち寄りください^^v

http://gardenofeden.bake-neko.net/

>管理人様
リンクフリーとの事なのでリンクを貼らせていただきました。
この場を借りて報告させていただきますね^^


204ポイント を手に入れた。


Name: Mikan  ..かけだし(1,797ポイント)   Date: 2009/01/22(木) 01:05   No:27410     
Title: Re:背景画像について    
訂正

>ご教授おねがいします。

ご教示おねがいします。


25ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(964,984ポイント)   Date: 2009/01/22(木) 01:47   No:27415     
Title: Re:背景画像について    
おぉ!本格的に出来上がっていますね♪
この絵どこかで見たことあるんですが、自作ですか?
うまいな〜・・私は絵がかけないんでうらやましいです・・。

まだ2面の途中まで一回遊んだだけなんですが、
コンテニュー後、パワーが少なすぎな状態になりません?
後、速いスピードで飛んできた弾との当たり判定きちんと計算できています?
2面途中の紫の大玉に当たり判定が最初無いのかと思いました。
毎回フレームごとに当たっているかを判定しただけでは、すれ違ってしまうかもしれませんので
「軌跡」を考慮する必要があります。
その辺実装されてたらすみません。

後、背景についてですが、私は絵心が無いので何もアドバイス出来ません・・。
ペンタブも持ってないんで、マウスでせっせこ書いて作りました;

しかも参考資料が無いとかけないので、例えば桜の絵にしても
グーグルで「桜」で画像検索して出てきた桜の絵を何枚か参考にしながら描きました。
ま〜時間かかるけど、ぼかしで書いていけばそれっぽくみえるかなという何ともやっつけな手法で書いてますw
う〜ん、あまりシューティングの背景について素材もなければ描き方も参考に出来そうなサイトないんですよね〜^^;

龍神録内部で使われているデータについてはご存知の方法で見れると思うので、参考にならないと思いますが、参考に出来るものならどうぞw



518ポイント を落としてしまった。

Name: Mikan  ..かけだし(1,865ポイント)   Date: 2009/01/22(木) 02:06   No:27418     
Title: Re:背景画像について    
>>管理人様
>この絵どこかで見たことあるんですが、自作ですか?
絵はひとつも描いていませんww
ネットの素材屋さんでせっせこ集めました^^
ほんと絵をかける人がうらやましいですw

>コンテニュー後、パワーが少なすぎな状態になりません?
そうなんですよw
死んだときにアイテムを散らす処理を入れようと思って忘れている状態ですw

>後、速いスピードで飛んできた弾との当たり判定きちんと計算できています?
その処理いれてないんですよw
そうなるとは知ってはいるんですが、一人で作ってるとなかなか進まなくて入れませんでしたw


さっそく着て頂いてありがとうございます。
PerfectCrimeはテスト第一弾ということで作りましたので中途半端すぎますが
色々修正や改良をくわえたプログラムを作っていますので、またよろしくお願いします^^

田舎で一人ぼっちでやってると大変w 本とHPをいったりきたりして少しずつですが進んでいます。
ありがとうございました(人´・ω・`o)感謝♪


68ポイント を手に入れた。

Name: Mikan  ..かけだし(1,887ポイント)   Date: 2009/01/22(木) 02:11   No:27419     
Title: Re:背景画像について    
ちなみに大玉は中心から5pixelしか判定つけてませんw

22ポイント を手に入れた。

Name: BEMANI  ..初心者(5,672ポイント)   Date: 2009/01/22(木) 02:19   No:27420     
Title: Re:背景画像について    
>>Mikanさん
自分が作るゲームに自作画像を使っていますので、
アドバイスくらいならできるかもしれないです。
ただ、期待はしないで下さいね;
(自分はPhotoShop7.0を使用しています。同じソフト持ってると凄くありがたいですが
さすがにそんな偶然はないですよね><)


ということで、画像作成ソフトは何を使用するとお考えでしょうか?



>絵心の無い僕にもつくれますでしょうか?w
どのような画像かによりますが、明確な目標があれば、このあたりはカバーできます。
(写真を参考にできたりするので)




80ポイント を手に入れた。

Name: Mikan [URL]  ..かけだし(1,955ポイント)   Date: 2009/01/22(木) 02:33   No:27421     
Title: Re:背景画像について    
>>BEMANI様
画像編集をほとんどしておらず、編集ソフトはGIMPをインストールしているものの
使用方法がほとんど理解できていませんので
いまから覚えようかという段階ですw


68ポイント を手に入れた。

Name: BEMANI  ..初心者(5,791ポイント)   Date: 2009/01/22(木) 02:45   No:27423     
Title: Re:背景画像について    
>>Mikanさん
GIMPというツール名を初めて聞きました><
試しに自分も落としてみました・・・。

どういった感じの絵に仕上げるかという、イメージ図などはありませんか?
GIMPというものを使ってやってみようと思うのですが・・・。


119ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(965,434ポイント)   Date: 2009/01/22(木) 02:51   No:27424     
Title: Re:背景画像について    
私もフォトショ7.0ですw
GIMPはフリーソフトにしてフォトショとほとんど変わらないほど色んなことが出来る素晴らしいソフトですよね。
フォトショを使い込むよりGIMP使い込んだ方がサンプル作り易いんでしょうけど、
なかなか慣れたインターフェイスは手放せない・・。


104ポイント を手に入れた。

Name: BEMANI  ..初心者(5,886ポイント)   Date: 2009/01/22(木) 02:58   No:27425     
Title: Re:背景画像について    
>>管理人さん
こんな所に同じソフトを使用している方がいらっしゃるとはw
なかなか慣れたインターフェイスは手放せないという気持ち凄くわかります><
PhotoShopかれこれ5年ほど使ってるので愛着湧き過ぎてどうしようというレベルですよ;


95ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(965,469ポイント)   Date: 2009/01/22(木) 03:01   No:27426     
Title: Re:背景画像について    
私はフォトショ7.0をVistaにいれたらインストールできなかったのでその為にVistaを消したという人間ですw


35ポイント を手に入れた。

Name: BEMANI  ..初心者(5,934ポイント)   Date: 2009/01/22(木) 03:05   No:27427     
Title: Re:背景画像について    
>>管理人さん
Vista色々不便そうですよね;
Vistaでよかった! という話を全然耳にしないです><


48ポイント を手に入れた。

Name: Mikan [URL]  ..かけだし(2,172ポイント)   Date: 2009/01/22(木) 03:21   No:27428     
Title: Re:背景画像について    
>>BEMANI様
>どういった感じの絵に仕上げるかという、イメージ図などはありませんか?
一応、夜の空にしたいなぁとおもってはいます。
あとは東方などのボス戦のときに背景の上に透過で切り抜いた模様みたいなエフェクトがかかるんですが
あんな感じの物もつくりたいと考えています。

フォトショはお金がないので断念しています。いつかは本腰をいれて勉強したいと思っていますが・・・

GIMPにフォトショとインターフェイスを同じにするプラグインがあったようなのでそれも入れて
フォトショの本とかサイトで勉強するのもいいのかな?とも考えています。


217ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(52,316ポイント)   Date: 2009/01/22(木) 03:24   No:27429     
Title: Re:背景画像について    
> どういった感じの絵に仕上げるかという、イメージ図などはありませんか?
> GIMPというものを使ってやってみようと思うのですが・・・。

ということなので、 GIMP を使っている私から一つ。

これは、

ファイル→画像の生成→ロゴ→星のきらめき

を選び、適当に設定しただけのものです。(背景色はなじむように微妙に修正)


> 私はフォトショ7.0をVistaにいれたらインストールできなかったのでその為にVistaを消したという人間ですw

今のバージョン(2.6.4)ならインストールできますよ。

フォトショはMDIなので、ショートカット操作に慣れていると、
GIMPの場合、対象ウインドウをアクティブにしてからでないと効かないのが大変です。


> Vistaでよかった! という話を全然耳にしないです><

私は Vista を使ってますが、たしかに良かったとは思ってませんね。
我慢してます。


168ポイント を手に入れた。

Name: Mikan  ..かけだし(2,245ポイント)   Date: 2009/01/22(木) 03:57   No:27430     
Title: Re:背景画像について    
>>御津凪様
説明どおりの手順で私もロゴを作成してみました。
簡単にできますね。このような機能で模様とか背景画像みたいなやつは生成できないのでしょうか?


73ポイント を手に入れた。

Name: BEMANI  ..初心者(6,566ポイント)   Date: 2009/01/22(木) 04:29   No:27432     
Title: Re:背景画像について    
>>Mikanさん

>このような機能で模様とか背景画像みたいなやつは生成できないのでしょうか?
望んだ夜空の背景になるかは解らないですが、
画面右下に「ブラシ」「パターン」「グラデーション」というタブが三つあると思います。
その中の「パターン」で、色々な画像があると思うので、それをキャンバスにドラッグすると
使えないかもしれませんが、背景っぽいのができました。
(そのパターンの中に宇宙っぽい雰囲気のものがあったので一度使ってみては如何でしょう;)


>あとは東方などのボス戦のときに背景の上に透過で切り抜いた模様みたいなエフェクトがかかるんですが
魔法陣とかあぁいうものですかね;
画像を作成した後に背景色を透明に設定するだけでいいのですぐにできると思います。


アドバイスついでに一つ・・・。
「レイヤー」という機能はめちゃくちゃ重要なのでどういうものか・・・
というだけでも覚えておいた方がいいです。
これから画像を作成するときは、レイヤーを作成し、そこに描くようにした方がいいと思います。
慣れてくると色々な使い方ができます。

新規作成すると、白いキャンバスが出てくると思います。
そこから「レイヤー」→「レイヤーを追加」→「レイヤー塗りつぶし方法 透明」→「OK」
とすると、画面右側の「背景レイヤー」の上に「新規レイヤー」が出来上がります。

画像を作る時は「新しいレイヤーを作成してから、そこに描く」という感じでやっていった方がいいです。
レイヤーは何枚でも作成することができます(ソフトによって上限があるかもしれませんが;)


632ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(967,526ポイント)   Date: 2009/01/22(木) 04:36   No:27434     
Title: Re:背景画像について    
レイヤー=直訳したら「層」ですがそのまんまの意味ですね^^
下のレイヤーいじってるときは、上の層に影響無いし、
独立した絵を重ねられるみたいな感じですね。
完成前にくっつけられると言う感じです。

GIMPやフォトショは使い方しだいでいくらでもプロっぽいことが出来ると思います。
ただ、使い方が難しい・・。
これぞまさしく「知識より知恵」機能の使い方がわかっていても、便利な応用方法を知らないと
宝の持ち腐れです。

mixiのフォトショップコミュとか結構技術共有しあってるので見てて勉強になりますよ。
GIMPとかもあるのかな?


259ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(51,827ポイント)   Date: 2009/01/22(木) 04:42   No:27435     
Title: Re:背景画像について    
メニューの、

ファイル→画像の生成

の中の下4つは選択後にでるパラメータを適当にいじるだけで簡単なものは出来ます。
(パターンは模様や背景画像に出来るかも)

あとは、色々弄ってみるのがいいと思います。

一応、夜空っぽい画像張っておきます。

この画像の大まかな手順は、
・ファイル→新しい画像           で新規作成。

・編集→描画色で塗りつぶす で(デフォルトで黒に)塗りつぶす。
・レイヤー→レイヤーを追加 で、新規作成(初期色は透明で)。
・フィルタ→ノイズ→浴びせ を選択、乱数度を1にする。
・レイヤー→レイヤーの拡大・縮小 で 300% に拡大。
・色→トーンカーブ でグラフをいじって適当な密度の点を残す。
・色→色相・彩度 で、下三つのスライドバーをいじって調整。
・完成。


です。
何か色々やっていますが、メニューからの操作だけです。

BEMANI さんの通り、レイヤーという概念は重要ですので、
ググって調べるなりして覚えていってください。

一応注意として、GIMP で調べると、古いバージョンのものが多く、
メニューなどが大きく違うので注意です。



489ポイント を落としてしまった。

Name: Mikan [URL]  ..入門者(2,532ポイント)   Date: 2009/01/22(木) 05:14   No:27436 解決!     
Title: Re:背景画像について    
>>BEMANI様
>「レイヤー」という機能はめちゃくちゃ重要なのでどういうものか・・・
レイヤーについては調べてみました。
たしかに他の層に影響がないので追加・修正が楽にできそうですね^^

>>管理人様
>GIMPやフォトショは使い方しだいでいくらでもプロっぽいことが出来ると思います。 ただ、使い方が難しい・・。

たしかに色々できそうな分、インターフェースが多すぎて混乱してしまいますw

>>御津凪様
>ファイル→画像の生成
>の中の下4つは選択後にでるパラメータを適当にいじるだけで簡単なものは出来ます。

初心者にはありがたい機能ですねw
いままで他のソフトでロゴなどは作っていたのですが、GIMPの方が簡単にできて見栄えがいいです^^


GIMPで背景画像作成の練習をしていきます♪

BEMANI様、管理人様、御津凪様
夜遅く?朝早く?までありがとうございました。


287ポイント を手に入れた。

Name: にょろ  ..ぴよぴよ(883ポイント)   Date: 2009/01/22(木) 12:34   No:27457     
Title: Re:背景画像について    
いちおうこういうフリーソフトもありまする
色々描ける
http://www.vector.co.jp/soft/win95/art/se385446.html
しかしまだアップ出来もしない僕に比べてすげ〜
シューティングゲームプログラミング(C++)の本を買ったら
タスクシステムとかC#で作ってるからメモリ無理
まさかunsafeでやらせるきか(つД`)とか
絵心ないので僕も凄く分かります。
CGの描き方→線画からスタートとかね…ドット絵がドットじゃないとか…
いまは線画の練習でしゃこしゃこ頑張ってます


120ポイント を手に入れた。

Name: Mikan  ..入門者(2,671ポイント)   Date: 2009/01/22(木) 13:23   No:27459     
Title: Re:背景画像について    
>>にょろ様
いえいえ、私もはじめてアップしましたが、
テスト仕様なので、まだまだですが、これからもよろしくお願いします。

>シューティングゲームプログラミング(C++)の本を買ったら
>タスクシステムとかC#で作ってるからメモリ無理
タスクシステムは面倒なんでSTLのlistにぶっこんで処理しています。

>いまは線画の練習でしゃこしゃこ頑張ってます
私も本日朝6時までしゃこしゃこしてましたw
GIMP便利ですね。みなさんが教えてくれたのでスムーズに作成できています^^v



139ポイント を手に入れた。

Name: array [URL]  ..熟練のプログラマー(46,866ポイント)   Date: 2009/01/23(金) 17:10   No:27559     
Title: Re:背景画像について    
いまさらではありますがPerfectCrimeを遊ばせてもらいました。

ドット絵も含め、良い画像を用意できたみたいで羨ましいです。エフェクトにも力を入れてますよね

ゲームプレイの感想ですが、1面のボスから強すぎやしませんか・・・。一度コンテニューした後の弾の弱さといったら、相当酷かったですw(1分で1mmくらい?)管理人さんと同じく、2面ボス戦までは行ったのですがコンテニュー時にミス(?)してタイトル画面に戻ってしまって終わりました。

あと、プログラム的な面も凄かったです。私も館を利用してゲームを作ってたのですが、調子良くてFPS50程度でした・・・。PerfectCrimeは常に60キープしてましたが何か工夫されてるのですかね。

プログラムの基礎となるところは殆ど完成していたみたいなので、今後のバージョンアップにも期待してます^^


221ポイント を手に入れた。

Name: Mikan [URL]  ..入門者(4,166ポイント)   Date: 2009/01/23(金) 21:55   No:27566     
Title: Re:背景画像について    
>>array様
同じ九州人同士ですね^^ よろしくお願いします。

PerfectCrimeは突貫工事状況となっておりまして、
ゲーム同様、プログラム内部は醜いものですw

年末は忙しくなりそうだったのと、気持ちを切り替えたいと思いまして、
突貫工事でVer1.0はとりあえず終了とさせていただきました^^;
(実のところバランスの調整等、一切やっておりませんw)
なので、プレイヤーが被弾したときにアイテムを散らしたり
軌跡計算など色々いれていません^^;
次のアップを期待しててくださいw

>ドット絵も含め、良い画像を用意できたみたいで羨ましいです。エフェクトにも力を入れてますよね
素材を使わせていただいたところはホームページにてリンクを張っていますので
ぜひ遊びにいってください^^


>PerfectCrimeは常に60キープしてましたが何か工夫されてるのですかね。
なにも工夫はしていません^^;
開発環境がCeleronM 1.5Ghz メモリー512MB
なので低環境で作成してるのがいいのでしょうか?w(私も謎ですw)
実のところ、現在もVerアップ作業は続いているんですが、
ソースファイルを整えるのに時間がかかって、アップできてない状態にありますww

とてもC++ソースとはおもえないほどひどいことになってましたものでw
ソースファイルが晒せる状態になったときには、晒させていただきますw


array様のホームページにリンクを張らせていただこうかと思っています。
なにとぞよろしくお願いしますm(_ _)m


2倍のポイントを手に入れた! 1,244ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(969,712ポイント)   Date: 2009/01/25(日) 00:41   No:27626     
Title: Re:背景画像について    
先日は時間がなくてほとんど遊べなかったので今改めて遊んでみようと思ったんですが、
リンクエラーでダウンロード出来ませんでした(T_T


34ポイント を手に入れた。

Name: array  ..熟練のプログラマー(47,685ポイント)   Date: 2009/01/25(日) 01:15   No:27636     
Title: Re:背景画像について    
どうやら、バージョンアップしたみたいですよw →ver1.01
UpLoaderから、ダウンロードページにはいけるのですが、パスワードが分からずDLできませんでした。


先日、DEMOというのが気になっていて、DLして(DEMO)ムービーだと思いながらワクワク気分で起動したら、ムービーじゃなくて軽くガックリきました

#処理速度(FPS)について
> なにも工夫はしていません^^;
そういえば、C++で書かれてたのですね。それが良いのですかね。
私もC++に手を出してみたいとは思ってるのですが、オブジェクト指向やら、クラスやらあって、なかなか手を出せません。
時間を見つけて、猫でもわかるさんのHPで少しずつ勉強していきたいと思います。
そして、C++で作るシューティングがイメージできれば、また、シューティング作成に挑戦したいです^^


あと、リンクありがとうございます♪
是非こちらからもリンクを張らせてもらいますね。


377ポイント を手に入れた。

Name: Mikan [URL]  ..入門者(4,891ポイント)   Date: 2009/01/25(日) 20:08   No:27661     
Title: Re:背景画像について    
>>Dixq様
>リンクエラーでダウンロード出来ませんでした(T_T
すみません、バグを修正したときにちょうどバッティングしてだと思います^^;
Ver1.01に修正しました。何度も足を運んでいただきありがとうございます。
近いうちに新しいのをバージョンアップしようと思っていますのでお願いいたします。

>array様
>ムービーじゃなくて軽くガックリきました
すみません、徐々にアップしていってるので変な形になったのだと思いますw
子連れプログラマーなもんで、時間が少ないんですが、まだまだバージョンアップしていきますので
よろしくお願いします。

>そういえば、C++で書かれてたのですね。それが良いのですかね。
C++は確かにいいんですが、オブジェクト指向を始めての人間にとって
グローバル変数の使い方など、少し難しい点が多すぎてPerfectCrimeも動いてるものの
ソースはメチャクチャな状態になっていますw
弾も400個を超えるとFPSもあやしいですw

>是非こちらからもリンクを張らせてもらいますね。
ありがとうございます。外部リンク初めてなのでうれしいです^^
今後ともよろしくお願いします。

P.S.
GIMPにだいぶなれてきて、背景作成もだいぶ進んでいる状況です。
再度、回答してくださった皆様にお礼を申し上げます。
ありがとうございました。


485ポイント を手に入れた。



Name: kaiten  ..初心者(8,116ポイント)   Date: 2009/01/21(水) 18:05   No:27336       
Title: [雑談?]自作ヘッダを公開してみる[Take2]    

SWITCH.h
http://dixq.net/code/SWITCH.h

また湧いてきました。kaitenです。
学校を病欠している間にSWITCH.hがそれなりに形になったのでまた晒しに来た次第です。
病欠で何故そんなことしてるって?いやだって退くt(ry

冗談はおいといて、今回もまた問題点などを挙げていただこうと思いこの場を借りさせていただきました。
前回ご指摘いただいた型指定の排除やS_ENDの排除が思った以上に難航しているのでそれについての解法も御教授いただければ幸いです。

まだreadmeを作ってないので仕様があやふやなのですが、基本的に使用法は前回と変わっていません。
変更点は、FALL(RUN)機能の廃止、REFINE系機能の廃止(REFINEなしで強制的に同等の効果があるはずです)、
DEFAULT機能の使用を選択式に変更、旧バージョンとの互換性破棄、continueに対応、速度面の大幅なパフォーマンス向上(BCCDeveloperにて計測したところ、DEFAULT機能不使用時に本家switchに勝る速度を確認)、
#pragma onceを使わず#ifでインクルードガードを行うよう変更したことです。


310ポイント を手に入れた。


Name: hoge  ..入門者(2,694ポイント)   Date: 2009/01/21(水) 20:11   No:27380     
Title: Re:[雑談?]自作ヘッダを公開してみる[Take2]    
>>前回ご指摘いただいた型指定の排除やS_ENDの排除が思った以上に難航しているので
>>それについての解法も御教授いただければ幸いです。
こんな感じかな。
使い方は以下の通り、ほぼswitch文と同じ。

SWITCH(i)
{
CASE(3): printf("3です\n"); break;
CASE(4): printf("4です\n"); break;
IN_CASE(7,10): printf("7から10です\n"); break;
DEFAULT: printf("その他\n"); break;
}


187ポイント を手に入れた。

Name: kaiten  ..初心者(8,395ポイント)   Date: 2009/01/22(木) 16:58   No:27475     
Title: Re:[雑談?]自作ヘッダを公開してみる[Take2]    
hogeさん、ありがとうございます。
dynamic_castを使えばこのような方法で可能なのですね。自分では思いつきもしませんでした。
それ以前に、breakとcontinueの両方に対応させるためにswitch文を内部で使うという発想自体がなかったです。

既に上げた自作の物はそのうちほぼそのまま自ページにて公開するつもりなのですが、添付していただいたものを参考にして作ったものも公開させていただいてよろしいでしょうか?自分で理解してから組みますが、どうしても似たような感じになってしまうと思うので……
御許可を頂けない場合は万に一つも添付して頂いたものを参考に作ったヘッダを公開するようなことは致しません。


279ポイント を手に入れた。

Name: hoge  ..入門者(2,700ポイント)   Date: 2009/01/22(木) 20:52   No:27500     
Title: Re:[雑談?]自作ヘッダを公開してみる[Take2]    
自由にどうぞ。

ぶら下がりelse対策ができていないけど。


6ポイント を手に入れた。

Name: kaiten  ..初心者(8,400ポイント)   Date: 2009/01/25(日) 16:33   No:27659     
Title: Re:[雑談?]自作ヘッダを公開してみる[Take2]    
ありがとうございます。

ぶら下がりelse対策ですか…こちらで考えてみます。


5ポイント を手に入れた。



Name: tkk  ..ぴよぴよ(142ポイント)   Date: 2009/01/25(日) 04:52   No:27649       
Title: 再帰的関数によりnの階乗を求めるプログラム    
#include<stdio.h>
int factorial(int);
int main(void){
int n,f,
scanf("%d",&n);
f=factorial(n);
printf("factorial=%d/n",f);
return(0);
}
int factorial(int n){
int f,
if(n<=1)
return(1)
else return n*factorial(n-1);
return(f);
}

のfactorialの関数の部分で、if文のelseの場合、n*factorial(n-1);
の結果をmain関数のfに返すのはわかるのですが、先ほどのn*factorial(n-1);
の下のreturn(f);について、fの値を返すというのはどういうことなのでしょうか?
factorial関数ではint fで変数fを宣言しているにもかかわらず使われていないように
見えるのですがこのプログラムは間違っていますか?


142ポイント を手に入れた。


Name: box  ..ハッカー(133,869ポイント)   Date: 2009/01/25(日) 07:24   No:27651     
Title: Re:再帰的関数によりnの階乗を求めるプログラム    
factorial関数でのfの定義とreturn f;は不要です。
その他、提示されたコードにはコンパイルに支障を来す記述が散見されます。


32ポイント を手に入れた。

Name: non  ..プログラマー(32,722ポイント)   Date: 2009/01/25(日) 08:19   No:27652     
Title: Re:再帰的関数によりnの階乗を求めるプログラム    
>else return n*factorial(n-1);

私なら、else を書きません。
return n*factorial(n-1); のみ。


49ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,743ポイント)   Date: 2009/01/25(日) 10:11   No:27654     
Title: Re:再帰的関数によりnの階乗を求めるプログラム    
> 下のreturn(f);について、fの値を返すというのはどういうことなのでしょうか?

最後にreturn文がないために発生するかもしれない警告を回避するためでは?
決してよいコードではないのは確かです。


52ポイント を手に入れた。



Name: tomo  ..ぴよぴよ(152ポイント)   Date: 2009/01/24(土) 12:10   No:27592       
Title: DxLib_VCについて    
こんにちは。
C言語を始めようと思って、このHPにある
Visual 2008 C++ Express Editionを使用した場合のDXライブラリの使い方
を参考にしながら設定していました。
5.までは出来たのですが、6.のプログラムをコピー&ペーストして
メニューからデバッグ→デバッグ開始をしたんですが

プロジェクトは変更されています ビルドしますか?

というのが出ずに、

C:Users\tomo\Desktop\test\Debug\test.exe を開始できません。
指定されたファイルが見つかりません。

と出てしまいます。
どこが問題なのでしょうか?
ファイルの置いてる場所がマズイのか・・・
ご助言よろしくお願いします。


152ポイント を手に入れた。


Name: AC  ..入門者(3,968ポイント)   Date: 2009/01/24(土) 15:13   No:27595     
Title: Re:DxLib_VCについて    
個人的には手順として

ソースを書く→ビルドの「(プロジェクト名)のビルド」→(ビルド成功時)デバッグ開始

というようにするのをお勧めします。
今回の現象の予測ですが、おそらくコンパイルエラーかリンクエラーかが起こっているのだと思います。
それと、5の後にtest.exeを削除しませんでしたか?
VC++2008EEの場合、ビルドせずにデバッグ開始すると、まずビルドを行います。
もし、そこでエラーが起きると、前回成功時にできたexeファイルを実行しようとします。
その時に、もし前回成功時のexeファイルがないと

C:Users\tomo\Desktop\test\Debug\test.exe を開始できません。
指定されたファイルが見つかりません。

と出るのだと思うのですが…違っていたらすみません。
とりあえずビルドをして、エラーが起きていたらソースの確認をしてみてください。


321ポイント を手に入れた。

Name: s-rush  ..上級者(17,594ポイント)   Date: 2009/01/24(土) 15:22   No:27597     
Title: Re:DxLib_VCについて    
ACさんのおっしゃる通りおそらくコンパイルエラーのために実行ファイルが作成されていないんだと思います。

一度メニューバーのビルドから
「ソリューションのビルド」
を実行してみてください。

コンパイルエラーが出ていなければ実行ファイルが作られてるはずなので、
デバッグ(なし)で開始してみてください。

もしコンパイルエラーが出てしまっていたら、設定に不備があるんだと思います。
(コピー&ペーストが失敗しているとも考えられますが・・・
 たとえば最後の } が抜けているとか)

もう一度設定のところを見直してみてください。


172ポイント を手に入れた。

Name: tomo  ..ぴよぴよ(202ポイント)   Date: 2009/01/25(日) 09:59   No:27653 解決!     
Title: Re:DxLib_VCについて    
再インストールして、もう一度よく見直してみたら
解決しました!
ありがとうございます。
自分の不手際なのに申し訳なかったです・・・

また問題に直面することがあればよろしくお願いします。


50ポイント を手に入れた。



Name: kazuoni [URL]  ..熟練のプログラマー(51,591ポイント)   Date: 2009/01/24(土) 22:48   No:27619       
Title: 標準入力ストリームにファイルを指定した時のデバッグ    
お邪魔します。

いつもながらかなり初歩的な質問なんですが・・・
タイトルの通り、
標準入力ストリームにファイルを指定した時のデバッグについてなのですが、
なぜデバッグなしで実行で正常に動き、
デバッグで実行すると正常に動かないのですか?

環境はvista,
visual c++ 2008です。

[プロジェクト]→[(プロジェクト名)のプロジェクト]→[デバッグ]
のコマンド引数のところに
< a.txt > b.txt
と指定し、以下のコードをビルドします。
#include<stdio.h>

int main()
{
printf("テスト\n");
int c=getchar();
char i[2];
i[0]=c;
i[1]='\0';
printf("%s",i);
return 0;
}

a.txtの中はabcとだけ書いてあります。b.txtは中身なしです
この状況で
[デバッグ開始]をするとgetcharを呼び出したら何も返ってきません。
printf("テスト")が実行画面に出ているので、
うまく指定できてないと分かりました。
そこで、[デバッグなしで開始]を実行するとうまくいきます。

これはなぜでしょうか?
ブレイクポイントを立てたかったのですが、立てれません。。
何か良い解決方法はあるのでしょうか?

よろしくお願いします。

23:52修正


383ポイント を手に入れた。


Name: Justy  ..伝説なるハッカー(312,823ポイント)   Date: 2009/01/24(土) 23:58   No:27621     
Title: Re:標準入力ストリームにファイルを指定した時のデバッグ    

>これはなぜでしょうか?

 バグじゃないですかね、デバッガの。

Can't redirect stdin/stdout for debugging
ttp://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=333493

 でも、SP1で直っているようです。

List of changes and fixed issues in Visual Studio 2008 Service Pack 1 for Express Editions
ttp://support.microsoft.com/?scid=kb%3Ben-us%3B950264&x=9&y=9


 ちなみにデバッガのタイプを混合にすると
< a.txt くらいはうまくいったりするようです。


30ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(51,730ポイント)   Date: 2009/01/25(日) 01:57   No:27644 解決!     
Title: Re:標準入力ストリームにファイルを指定した時のデバッグ    
やっと再インストール終わりました。
Justyさんのおっしゃる通りバグだったようです。。
再インストールしたらきっちり動きました。
SP1のversionが古かったのでしょうか^^;
よく分かりませんが、無事解決しました!

ご回答いただきありがとうございました。
またよろしくお願いします。


139ポイント を手に入れた。



Name: ムンバ  ..上級者(23,445ポイント)   Date: 2009/01/25(日) 00:02   No:27622       
Title: if文とswitch文の違い(区別?)につきまして    
こんばんはっ!

どちらをどの様な時にどの様に使ったらいいのか解らないので、ご意見お願い致します。^^;

if (cat.flag == 1){

/*if (cat.muki == 0)
cat.y++;
else if (cat.muki == 1)
cat.x--;
else if (cat.muki == 2)
cat.x++;
else if (cat.muki == 3)
cat.y--;*/

switch (cat.muki){
case 0: cat.y++; break;
case 1: cat.x--; break;
case 2: cat.x++; break;
case 3: cat.y--; break;

default: break;
}
}


この様なソースの場合、if文とswitch文の、どちらを使うのがいいのでしょうか?
どちらでも、コンパイルして実行すると同じ動きをするのです。^^;

このソースは、switch文を使ってる場合なので、if文を/* */でコメントしてます。

宜しくお願い致します。<_ _>


323ポイント を手に入れた。


Name: ムンバ  ..上級者(23,511ポイント)   Date: 2009/01/25(日) 00:12   No:27623     
Title: Re:if文とswitch文の違い(区別?)につきまして    
言葉が足りなくて、すみません。

今、猫を主人公にしてRPGを作りたいと思ってます。
ですので、「猫」が構造体となってますので、「cat」を使ってます。
(猫でもわかる・・・とは関係ない事だという事です。^^;)
宜しくお願いします!

-----------------------------------------------------------------------------------------
編集にて追加です。
龍神録プログラミングの館→プロジェクトと素材を用意しよう→http://dixq.net/rp/img/1/5.png
の直下
「今後章ごとにダウロードしたファイル」
誤字かと思われます。(謝
-----------------------------------------------------------------------------------------


66ポイント を手に入れた。

Name: Libra  ..初心者(8,070ポイント)   Date: 2009/01/25(日) 00:35   No:27625     
Title: Re:if文とswitch文の違い(区別?)につきまして    
自分はこの場合におけるifとswitchは見やすさの違いだと思いました。


#include <stdio.h>

#define DOWN 0
#define RIGHT 1
#define LEFT 2
#define UP 3

typedef struct CAT{
int flag;
int muki;
int x,y;
}Cat_t;


int main(void){
Cat_t cat;

cat.flag = 1 ;
cat.muki = DOWN ;
cat.x = 200 ;
cat.y = 200 ;

if (cat.flag == 1){
switch ( cat.muki ){
case DOWN: cat.y++;break;
case LEFT: cat.x--; break;
case RIGHT: cat.x++; break;
case UP: cat.y--; break;
default: break;
}
}

printf("x = %d y = %d ", cat.x , cat.y ) ;
return 0;
}


私はこの場合であればdefineとswitchを使って、分けた方が見やすいと思いました。


208ポイント を手に入れた。

Name: BEMANI  ..初心者(7,878ポイント)   Date: 2009/01/25(日) 00:41   No:27627     
Title: Re:if文とswitch文の違い(区別?)につきまして    
比較の回数が違うのでは・・・と思いました。

21ポイント を手に入れた。

Name: array [URL]  ..熟練のプログラマー(47,308ポイント)   Date: 2009/01/25(日) 00:45   No:27629     
Title: Re:if文とswitch文の違い(区別?)につきまして    
私もこれは、謎に思ってました。
自分なりの解釈では、処理速度の違いだと思ってます。


----------- if文の場合 -----------

if (cat.muki == 0)
cat.y++;
else if (cat.muki == 1)
cat.x--;
else if (cat.muki == 2)
cat.x++;
else if (cat.muki == 3)
cat.y--;

if文の場合、もし「else if (cat.muki == 3)」まで一致しなかったら、4回判定する事になります。

cat.muki=「0」でもない「1」でもない「2」でもない「3」でもない、だと処理が長いです・・・


----------- switch文の場合 -----------
switch (cat.muki){
case 0: cat.y++; break;
case 1: cat.x--; break;
case 2: cat.x++; break;
case 3: cat.y--; break;
default: break;
}

switch文だと、if文と違って「cat.mukiは何と一致するか」を判定してると思います。

cat.muki=「何と一致するか」のみで、処理は短いはず・・・。



------ 結果 ------
結論は、switch文を使った方が良いと思われます。



----追記
判定じゃなくて比較ですね。


442ポイント を手に入れた。

Name: ムンバ  ..上級者(23,583ポイント)   Date: 2009/01/25(日) 00:50   No:27630     
Title: Re:if文とswitch文の違い(区別?)につきまして    
Libraさん、早速のご解説ありがとうございます。

Key[KEY_INPUT_DOWN]
Key[KEY_INPUT_LEFT]
Key[KEY_INPUT_RIGHT]
Key[KEY_INPUT_UP]

の部分

#define DOWN KEY_INPUT_DOWN
#define LEFT KEY_INPUT_LEFT
#define RIGHT KEY_INPUT_RIGHT
#define UP KEY_INPUT_UP



Key[DOWN]
Key[LEFT]
Key[RIGHT]
Key[UP]

の様な感じで宜しいでしょうか?


2倍のポイントを手に入れた! 72ポイント を手に入れた。

Name: ムンバ  ..上級者(23,647ポイント)   Date: 2009/01/25(日) 00:55   No:27632     
Title: Re:if文とswitch文の違い(区別?)につきまして    
BEMANIさん、arrayさん、ご解説ありがとうございます。

if文だと4回、switch文だと5回・・・何となく解ります。^^;

自分が好きな方で、うまく動作する方を選んだ方がいいということですかね?(汗


64ポイント を手に入れた。

Name: BEMANI  ..初心者(8,216ポイント)   Date: 2009/01/25(日) 01:06   No:27633     
Title: Re:if文とswitch文の違い(区別?)につきまして    
沢山条件分岐が出るのであれば、switchの方が早いです。
ifはとりあえず、条件が何であれ比較します。

switchは switch(値)・・・
この「値」をみて、該当する「case 値」にジャンプするので比較の回数が少ないです。

もし、御時間が許されているのであれば、

cat.muki = 3; という値を入れて、
if文 と switch〜case をれぞれ一行一行にブレイクポイントをうち、デバッグしてみてください。
上にも書いてますが、ifはとりあえず、条件に合うまで比較します。
switchは、case ? にすぐ飛んでいきます。


127ポイント を手に入れた。

Name: ムンバ  ..上級者(23,759ポイント)   Date: 2009/01/25(日) 01:09   No:27634 解決!     
Title: Re:if文とswitch文の違い(区別?)につきまして    
うっ!比較ですね。<_ _>

すごく悩んでたので助かりました。
どうもありがとうございました。(謝


2倍のポイントを手に入れた! 112ポイント を手に入れた。

Name: BEMANI  ..初心者(8,262ポイント)   Date: 2009/01/25(日) 01:12   No:27635     
Title: Re:if文とswitch文の違い(区別?)につきまして    
ただ、見やすさというのは非常に重要なので、その辺りも考慮してあげて下さい^^
一概にswitchの方がいい! とは言い難いので;
二・三個程度の比較ならif文で十分ではないかな〜と思います^^


46ポイント を手に入れた。

Name: ムンバ  ..上級者(23,831ポイント)   Date: 2009/01/25(日) 01:18   No:27637 解決!     
Title: Re:if文とswitch文の違い(区別?)につきまして    
BEMANIさん、ありがとうございます!

今日は、眠くて自爆ですみません。^^;
起きたら、試してみます。(謝

皆さんのご解説のスレッド保存して
今後、読み返しながら勉強したいと思います。

ずっと悩んでいた事なので助かりました。
どうもありがとうございました。(謝

編集で追加です。
switch文を使った方が自分なりに見た目もカッコいい〜♪
的な感じで、いいのでしょうかね?^^
どうもありがとうございました。<_ _>


72ポイント を手に入れた。

Name: Libra  ..初心者(8,103ポイント)   Date: 2009/01/25(日) 01:21   No:27638     
Title: Re:if文とswitch文の違い(区別?)につきまして    
> if文だと4回、switch文だと5回・・・何となく解ります。^^;
>
自分もそう思ってました。同じなら見やすさの問題かなと。
勉強になります。m(_ _)m


33ポイント を手に入れた。

Name: ムンバ  ..上級者(23,891ポイント)   Date: 2009/01/25(日) 01:30   No:27639 解決!     
Title: Re:if文とswitch文の違い(区別?)につきまして    
こちらこそ、勉強になります。^^
重ね重ね、どうもありがとうございました。(謝


2倍のポイントを手に入れた! 60ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(312,877ポイント)   Date: 2009/01/25(日) 01:39   No:27640     
Title: Re:if文とswitch文の違い(区別?)につきまして    
 参考までに。

メモリ効率の向上 : Y's Software Library
ttp://ww4.tiki.ne.jp/~yosshie-k/programming/techniques/memory.html#if_or_switch


54ポイント を手に入れた。

Name: ムンバ  ..上級者(24,059ポイント)   Date: 2009/01/25(日) 01:47   No:27642 解決!     
Title: Re:if文とswitch文の違い(区別?)につきまして    
ttp://ww4.tiki.ne.jp/~yosshie-k/programming/techniques/memory.html
こっ これは・・・。(激汗
Justyさん、ありがとうございます。^^
お気に入りに登録です!

ありがとうございました。おやすみなさい♪


2倍のポイントを手に入れた! 168ポイント を手に入れた。



Name: saga  ..ぴよぴよ(33ポイント)   Date: 2009/01/24(土) 14:01   No:27593       
Title: 龍神録(初期化)について    
初めまして、龍神録プログラミングの館で疑問に思ったところを質問させてください。

URL : http://dixq.net/rp/19.html

この19章でeffectの登録・計算を行っていますが

void calc_del_effect(){
int k;
for(int i=0;i<DEL_EFFECT_MAX;i++){
if(del_effect[i].flag>0){
if(del_effect[i].cnt%2==0){// 1/30秒ずつセット
if((k=search_effect())!=-1){//空き番号検索
memset(&effect[k],0,sizeof(effect_t));//初期化
effect[k].flag=1;//フラグを立てる
effect[k].brt=255;//輝度を最大値に



この初期化を行う意味を教えてもらえないでしょうか。

22章-ボムを撃ってみよう
では同じようなところの初期化では書かれていないみたいで、使い分けなど有ったら知りたいので。


33ポイント を手に入れた。


Name: こめかみ  ..熟練のプログラマー(41,198ポイント)   Date: 2009/01/24(土) 16:19   No:27601     
Title: Re:龍神録(初期化)について    
違ってたらごめんなさい。


エフェクトを消滅させる関数なので、
次のエフェクト処理に使いまわすのに備えて、
エフェクト構造体を初期化しています…多分。


エフェクトの処理のためにいろいろ使われたデータを
エフェクトを消す処理のついでに初期化しています。


すみません…自信ないです。
次にシューティングに取り掛かるときは
また一章からやり直しかなあ


142ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(969,617ポイント)   Date: 2009/01/24(土) 16:53   No:27602     
Title: Re:龍神録(初期化)について    
memsetで構造体の中身を全て0にしておけば、
=0;
と書かないといけない処理がスキップ出来るのです。
例えば
{
int x,y;
int flag;
}
の3つを持つ構造体があったとし、これを全部

.x=0;
.y=0;
.flag=0;

としなくても、memsetで領域全部を0にしてやれば1行で済むわけです。
また、初期化漏れによるバグ発生の可能性も減らせます。

ここで、意味がある処理であったかどうかわかりませんが、
もし意味が無ければ今後変数が増えた時の為に付けていた処理だったかもしれません。

また、構造体に値を代入する時は、値代入用の関数を作ってもいいと思います。


268ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,465ポイント)   Date: 2009/01/24(土) 19:02   No:27610     
Title: Re:龍神録(初期化)について    
memsetによる初期化の問題点は、下記で説明しています。
http://www.kijineko.co.jp/tech/superstitions/initialization-by-memset.html
まあ、今回の場合は、処理系を特定しているので実害はでませんが...。

> =0;
> と書かないといけない処理がスキップ出来るのです。

これが目的であれば、

effect[k] = effect_t();

で十分ですね。


84ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(51,208ポイント)   Date: 2009/01/24(土) 19:38   No:27612     
Title: Re:龍神録(初期化)について    
たかぎさんの会社のホームページにある
[迷信]シリーズ大体読破していますw
C++のコラムはまだ読むだけになっているので
時間を見つけて実践していきたいと思ってます^^
(ライブラリ開発入門・・・更新が待ち遠しいですw)

話それました。。失礼しました。(最近コメントそれすぎかなぁ・・・。)


154ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,555ポイント)   Date: 2009/01/24(土) 19:41   No:27613     
Title: Re:龍神録(初期化)について    
話がそれたついでに...

> (ライブラリ開発入門・・・更新が待ち遠しいですw)

大体要望が多いものから順に更新していますので、今月中には何らかの更新ができると思います。
# 最近忙しくて...


58ポイント を手に入れた。

Name: saga  ..ぴよぴよ(85ポイント)   Date: 2009/01/24(土) 23:07   No:27620 解決!     
Title: Re:龍神録(初期化)について    
こめかみさん、管理人さん、たかぎさん、kazuoniさん
ありがとうございます。
memsetを最近知った素人ですので助かります。



52ポイント を手に入れた。



Name: スライク  ..ぴよぴよ(550ポイント)   Date: 2009/01/23(金) 23:05   No:27570       
Title: 変数なんですが・・・    
#include<stdio.h>
#include<float.h>
int main(void)
{
double pai=3.14159265358979;
int mon=2;
float flt=1.2f;

printf("%5.2hf\n",flt);
printf("%-5.2f\n",flt);
printf("%05.2f\n",flt);
printf("%+08.2f\n",flt);
printf("%-08.2f\n",flt);

printf("%d\n",mon=3);

printf("%e\n",pai);

printf("%08.2f\n",pai);
printf("%05d\n",mon);

printf("円周率は%fです\n",pai);
printf("円周率は%1fです\n",pai);
printf("もう少し詳しい値は%10.81fです\n",pai);
printf("もう少し詳しい値は%15.131fです\n",pai);
printf("もう少し詳しい値は%20.18fです\n",pai);
printf("円周率は%010.2f\n",pai);
printf("円周率は%-10.2f\n",pai);
printf("円周率は%10.2f\n",pai);
return 0;
}

これなんですがどうしても結果が本通りになりません。
本だと
もう少し詳しい値は3.14159265です
もう少し詳しい値は3.1415926535898です
もう少し詳しい値は3.141592653589790000です
と表示されるはずなのですが・・・他は本どおりに表示されたのですがどこが間違っているかわかりません。

アドバイスよろしくお願いします。


352ポイント を手に入れた。


Name: lbfuvab  ..上級者(15,020ポイント)   Date: 2009/01/23(金) 23:07   No:27572     
Title: Re:変数なんですが・・・    
そちらの環境ではどう表示されたのでしょうか?

25ポイント を手に入れた。

Name: box  ..ハッカー(133,717ポイント)   Date: 2009/01/23(金) 23:09   No:27573     
Title: Re:変数なんですが・・・    
1(数字のイチ)とl(英小文字のエル)を取り違えていませんか?

25ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,259ポイント)   Date: 2009/01/23(金) 23:11   No:27574     
Title: Re:変数なんですが・・・    
> 1(数字のイチ)とl(英小文字のエル)を取り違えていませんか?

どっちにしても間違いの可能性が大ですが...


12ポイント を落としてしまった。

Name: スライク  ..ぴよぴよ(646ポイント)   Date: 2009/01/23(金) 23:16   No:27575 解決!     
Title: Re:変数なんですが・・・    
>>lbfuvabさん
あっ結果載せてなかったですね。
すみません!

3.141592650000000000000000000
3.14159265358980000000000000000000000
3.1415926535897900000000000000000000000000000000000

こんな感じで表示されました。


96ポイント を手に入れた。

Name: スライク  ..ぴよぴよ(670ポイント)   Date: 2009/01/23(金) 23:18   No:27576 解決!     
Title: Re:変数なんですが・・・    
>> boxさん
>>たかぎさん

指摘ありがとうございます!

1とLを間違ってたみたいです。


24ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,276ポイント)   Date: 2009/01/23(金) 23:20   No:27577     
Title: Re:変数なんですが・・・    
> 1とLを間違ってたみたいです。

%10.8Lf にしたということですか?
だとすると未定義の動作になりますよ。


17ポイント を手に入れた。

Name: non  ..プログラマー(32,652ポイント)   Date: 2009/01/24(土) 08:06   No:27582     
Title: Re:変数なんですが・・・    
>printf("%5.2hf\n",flt);
hfってのはどんな指定なんですか?始めてみました。


>他は本どおりに表示されたのですが
参考までに、本の題名を教えて下さい。



48ポイント を手に入れた。

Name: toyo  ..上級者(23,849ポイント)   Date: 2009/01/24(土) 08:25   No:27583     
Title: Re:変数なんですが・・・    
%lfはしょっちゅう見かけますが%hfは、はじめて見ました

>ストライクさんへ
printfでは%lfも%hfも使わないようにしましょう
float型でもdouble型でも%fで表示します
本に書いてあることにも間違いはあります


106ポイント を手に入れた。

Name: toyo  ..上級者(23,873ポイント)   Date: 2009/01/24(土) 08:32   No:27584     
Title: Re:変数なんですが・・・    
>nonさんへ

検索してみたところ「猫でもわかる」の本のようです。


24ポイント を手に入れた。

Name: スライク  ..ぴよぴよ(827ポイント)   Date: 2009/01/24(土) 09:36   No:27587     
Title: Re:変数なんですが・・・    
>>たかぎさん
未定義にはならなくちゃんとコンパイルされたんですけどね・・・・。
おかしいですね。%10.8Lfにしましたよ。

>>nonさん
hf・・・・わかんないです。
何なんでしょうねw初心者にはこの本は難しすぎます!
本はtoyaさんが調べてくれた通り「猫でもわかるC言語プログラミング」です。

>>toyoさん
なるほど・・・。
ありがとうございます!


157ポイント を手に入れた。

Name: box  ..ハッカー(133,668ポイント)   Date: 2009/01/24(土) 10:00   No:27588     
Title: Re:変数なんですが・・・    
> 未定義にはならなくちゃんとコンパイルされたんですけどね・・・・。
> おかしいですね。%10.8Lfにしましたよ。

未定義とは、コンパイルできたとしても、
実行時にどういう振る舞いをするかがわからない、という意味です。
%10.8LF
の場合の実行結果はどうなりましたか?


49ポイント を落としてしまった。

Name: toyo  ..上級者(24,070ポイント)   Date: 2009/01/24(土) 10:10   No:27589     
Title: Re:変数なんですが・・・    
%Lfはlong double型の変換子になります。
%Lfでdouble型を表示するのは未定義動作であるという指摘ですね
未定義なのでコンパイラによってはちゃんと表示されることはありますが違うコンパイラを使ったときに不具合が出る可能性があります。

scanf( )でdouble型を入力するのは %lf なので printf( )でも間違って %lfを使う人が多いようです。
あとshort型でもunsigned型でも整数なら %d オンリーだったり。
%hdや%uもありますよといいたいです。


197ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,381ポイント)   Date: 2009/01/24(土) 11:43   No:27591     
Title: Re:変数なんですが・・・    
> 未定義にはならなくちゃんとコンパイルされたんですけどね・・・・。
> おかしいですね。%10.8Lfにしましたよ。

codepadで試すと、次のような結果になりました。

1.20
1.20
01.20
+0001.20
1.20
3
3.141593e+00
00003.14
00003
円周率は3.141593です
円周率は3.141593です
もう少し詳しい値は-0.00000000です
もう少し詳しい値は-0.0000000000000です
もう少し詳しい値は3.141592653589790007です
円周率は0000003.14
円周率は3.14
円周率は 3.14


105ポイント を手に入れた。

Name: box  ..ハッカー(133,805ポイント)   Date: 2009/01/24(土) 17:23   No:27607     
Title: Re:変数なんですが・・・    

gccだとこんな風になりました。

1.20
1.20
01.20
+0001.20
1.20
3
3.141593e+000
00003.14
00003
円周率は3.141593です
円周率は3.141593です
もう少し詳しい値は3.14159265です
もう少し詳しい値は3.1415926535898です
もう少し詳しい値は3.141592653589790000です
円周率は0000003.14
円周率は3.14
円周率は 3.14


137ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,497ポイント)   Date: 2009/01/24(土) 19:06   No:27611     
Title: Re:変数なんですが・・・    
> gccだとこんな風になりました。

codepadもGCCなのですが...
GCCのバージョンが古くないですか? あるいはi386以外のターゲットだとか。


32ポイント を手に入れた。

Name: box  ..ハッカー(133,820ポイント)   Date: 2009/01/24(土) 19:59   No:27614     
Title: Re:変数なんですが・・・    
当方のgccは3.4.5です。最新版ではありません。

15ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,588ポイント)   Date: 2009/01/24(土) 20:15   No:27615     
Title: Re:変数なんですが・・・    
> 当方のgccは3.4.5です。最新版ではありません。

MinGW(またはCygwinで-mno-cygwinオプション付加)ではないですか?
MinGWはlong double型に不具合があります。


33ポイント を手に入れた。

Name: box  ..ハッカー(133,837ポイント)   Date: 2009/01/24(土) 20:21   No:27616     
Title: Re:変数なんですが・・・    
MinGWです。
その不具合があるということを承知した上で
使っていきます。


17ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,691ポイント)   Date: 2009/01/24(土) 21:49   No:27618     
Title: Re:変数なんですが・・・    
一応補足しておくと...

MinGWのprintf系関数やscanf系関数は、Visual C++のものを流用しています。
Visual C++では、(16ビット版のバージョン1.xを除き)long double型は64ビットでdouble型と同じ精度です。
それに対して、MinGWのlong double型は80ビット(ただし、sizeof(double)は12バイト)ですので、矛盾があります。
結果として、MinGWのprintf/scanf系関数でlong double型を扱おうとすると不具合に遭遇します。


103ポイント を手に入れた。



Name: AC  ..入門者(3,308ポイント)   Date: 2009/01/24(土) 04:53   No:27580       
Title: メニューバーのデザイン    
ただいまWin32API学習中の者です。
また、こちらのフォーラムで質問させていただきます。

さて、本題ですがタイトル通りメニューバーのデザインがちょっとした書き方の違いで変わることが分かりその原因を知りたいのです。
もともと以下のソースで付加していて、この時は立体的なデザインでした(メニューのリソース名をIDR_MENUとします)。

// 立体的なメニューバーになる場合(ウィンドウプロシージャ部分のみ)
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
static HMENU hMenu;
switch(msg)
{
case WM_CREATE:
hMenu = LoadMenu(NULL, _T("IDR_MENU"));
SetMenu(hWnd, hMenu);
break;
case WM_DESTROY:
DestroyMenu(hMenu);
SetMenu(hWnd, NULL);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wp, lp);
}
return 0;
}

で、上のソースを見ていてメニュー付加の部分だけを関数化できそうだったので

BOOL CreateMenuBar(HWND hWnd)
{
HMENU hMenu;
hMenu = LoadMenu(NULL, _T("IDR_MENU"));
SetMenu(hWnd,hMenu);
return DestroyMenu(hMenu);
}

のようにして、CreateWindow()の直後に呼んでみたのですが、その結果メニューバーのスタイルがフラットになってしまいました。
また、WNDCLSSEX構造体で直接指定した場合は立体的なスタイルでした。

自分の考えとしては
CreateWindow()→WM_CREATEメッセージ送信(一度しか呼ばれない)→メニューセット→…
という流れだと思っているのでやってることは一緒じゃないのかなぁと思うのですが、どうなのでしょう?

もし原因のわかる方がいらっしゃいましたら、ご回答いただけたらと思います。
また、もしあとからCreateMenuBar()のようにして付加する場合で立体的なメニューバーを作成する方法があるのならば、その方法も教えていただけたらと思います。
よろしくお願いします。


163ポイント を手に入れた。


Name: toyo  ..上級者(23,743ポイント)   Date: 2009/01/24(土) 07:39   No:27581     
Title: Re:メニューバーのデザイン    
DestroyMenu(hMenu);
で壊してるからではないでしょうか。


24ポイント を手に入れた。

Name: AC  ..入門者(3,647ポイント)   Date: 2009/01/24(土) 11:37   No:27590     
Title: Re:メニューバーのデザイン    
toyoさん回答ありがとうございます。

BOOL CreateMenuBar(HWND hWnd)
{
HMENU hMenu;
hMenu = LoadMenu(NULL, _T("IDR_MENU"));
return SetMenu(hWnd,hMenu);
}

のようにしたところ、立体的なデザインになりました。
今MSDN見てみましたが、DestroyMenu()をしなければならない条件は「どのウィンドウにも割り当てられていないメニュー」ということですので、↑のような場合はSetMenuでhWndのウィンドウに割り当てられているので明示的に解放する必要はなかったのですね。

ただDestroyMenu()をするのとしないので何が変わっているのでしょうか?
なぜメニューのメモリを開放しないでおくと立体的なデザインのままで、解放するとフラットになるのでしょうか?
DestroyMenu()をしても、コントロールとしての機能は失われていないようなので(WM_COMMANDメッセージは送信されているようです)、そこの部分がどうも納得いかないのですが…。

それと、LoadMenu()第一引数はインスタンスハンドルをちゃんと指定した方が良いのでしょうか?

すこし細かい話ですが、よろしくお願いいたします。


339ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(52,705ポイント)   Date: 2009/01/24(土) 15:00   No:27594     
Title: Re:メニューバーのデザイン    
LoadMenu で取得したルリソースデータは、プログラムが終了するまでメモリ上に残り続けます。
なので、 DestroyMenu() を呼んだら開放されるわけではなく、
恐らく開放されない原因(バグ?)でフラットになっていると思いますがちょっと分かりません。

> それと、LoadMenu()第一引数はインスタンスハンドルをちゃんと指定した方が良いのでしょうか?

第一引数が NULL の場合、自分自身を指すので、外部DLLで読み込む場合以外は NULL で大丈夫です。


160ポイント を手に入れた。

Name: AC  ..入門者(4,028ポイント)   Date: 2009/01/24(土) 15:25   No:27599 解決!     
Title: Re:メニューバーのデザイン    
御津凪さん、的確な回答いつもありがとうございます。

なるほど、バグっぽいですか。納得しました。

これで解決に致します。
回答してくださった皆様どうもありがとうございました。


60ポイント を手に入れた。



Name: あつし  ..ぴよぴよ(422ポイント)   Date: 2009/01/23(金) 12:34   No:27544       
Title: シーザー暗号    
大学の課題で今シーザー暗号を作っています。
一様プログラムはできたのですがprintf("3と入力してください: ");で3と入力せずに3こづらしたいのですがどのようにこのプログラムを改良すればよいですか?

  

 #include <stdio.h>

  #include <string.h>


 char *shift_char(char x[], int y){

 static const char table[] =

 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

 "abcdefghijklmnopqrstuvwxyz"

 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

 "abcdefghijklmnopqrstuvwxyz";

 static const int table_len = (sizeof(table)-1) / 2;

 char *p;

 y %= table_len;


 for(p=x;*p;p++)

 *p = *(strchr(table, *p) + y);

 return x;

 }

 int main(void){

  char input[301];

  int count;

  printf("アルファベットを入力してください: ");

  scanf("%s", input);

  printf("3と入力してください: ");

  scanf("%d", &count);

    printf("%s", shift_char(input, count));

  return 0;

}


422ポイント を手に入れた。


Name: 御津凪 [URL]  ..熟練のプログラマー(52,103ポイント)   Date: 2009/01/23(金) 12:42   No:27546     
Title: Re:シーザー暗号    
printf("%s", shift_char(input, 3));



これで良いのでは?


67ポイント を手に入れた。

Name: あつし  ..ぴよぴよ(538ポイント)   Date: 2009/01/23(金) 13:01   No:27549     
Title: Re:シーザー暗号    
ありがとうございました。もう一つ質問があるのですがabc100と printf("アルファベットを入力してください: "); の所に入力すると、defと3桁シフトはするのですが100という数字が表示されません。3桁シフトして、数字はそのままにするにはどうしたらよいですか?




#include <stdio.h>

  #include <string.h>


 char *shift_char(char x[], int y){

 static const char table[] =

 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

 "abcdefghijklmnopqrstuvwxyz"

 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

 "abcdefghijklmnopqrstuvwxyz";

 static const int table_len = (sizeof(table)-1) / 2;

 char *p;

 y %= table_len;


 for(p=x;*p;p++)

 *p = *(strchr(table, *p) + y);

 return x;

 }

 int main(void){

  char input[301];

  int count;

  printf("アルファベットを入力してください: ");

  scanf("%s", input);

  printf("%s", shift_char(input, 3));

  printf("%s", shift_char(input, count));

  return 0;

}



116ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(52,545ポイント)   Date: 2009/01/23(金) 13:19   No:27550     
Title: Re:シーザー暗号    
for 文内で、シフト対象外(英字以外)の文字はそのまま出力するようにすれば良いでしょう。

この場合なら、 strchr を使って先に table 内に含まれているかどうかをチェックし、
含まれていたらシフト処理を実行する方法が楽でしょう。
if(strchr(table,*p) != NULL){

// 含まれている
}


こんな感じで。

strchr は含まれていない文字があれば NULL を返すので、
*(strchr(table, *p) + y) はおかしなことになります。

(規約の方に書いていますが、出来るならソースコードはプレタグで囲ってください)


2倍のポイントを手に入れた! 442ポイント を手に入れた。

Name: 通りすがり  ..中級者(13,659ポイント)   Date: 2009/01/23(金) 18:06   No:27560     
Title: Re:シーザー暗号    
老婆心ながら、「一様」とは「様子が同じであるさま」のことです。
「ひとまず」「とりあえず」の意味で使うのは
「一応(いちおう)」です。


51ポイント を落としてしまった。



Name: J  ..上級者(16,925ポイント)   Date: 2009/01/22(木) 22:42   No:27504       
Title: ポインタを解説しないといけないのですが・・・    
お久しぶり&あけましておめでとうございます
明日、学校でC言語におけるポインタについて30分ほど解説しないといけないのですが
自動変数の有効範囲と自作関数から入って、ポインタの必要性と利便性について語るという手順でよろしいでしょうかね。
私はこれがベストかなと思っているのですが。あんまり自信ないです><
どなたかアドバイスをくださると嬉しいです。お願いします。


21ポイント を手に入れた。


Name: 組木紙織 [URL]  ..熟練のプログラマー(69,035ポイント)   Date: 2009/01/22(木) 23:08   No:27509     
Title: Re:ポインタを解説しないといけないのですが・・・    
C言語の言語仕様のうちポインタに関する部分を解説するのか、ポインタというものの利点を解説するのかで
解説内容は変わってきます。



49ポイント を手に入れた。

Name: J  ..上級者(16,947ポイント)   Date: 2009/01/22(木) 23:15   No:27512     
Title: Re:ポインタを解説しないといけないのですが・・・    
そうでしたね
内容は適当にこちらが決めていいのですが。。
どれが一番やりやすそうですかね?


22ポイント を手に入れた。

Name: 組木紙織 [URL]  ..熟練のプログラマー(69,154ポイント)   Date: 2009/01/22(木) 23:25   No:27514     
Title: Re:ポインタを解説しないといけないのですが・・・    
人によって知識の質と量が違う&聞き手のレベルも分からないので、一概には言えないです。
どれでもお好きなのをすればいいと思います。

私だったらポインタの落とし穴を話すかな。


95ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(81,073ポイント)   Date: 2009/01/22(木) 23:27   No:27515     
Title: Re:ポインタを解説しないといけないのですが・・・    
ポインタの使い方は、突き詰めていくと...

1. オブジェクトまたは関数の参照
2. 配列要素へのアクセス
3. 動的オブジェクトの保持

ではないかと思います。
これがそのまま利点にもなっています。

2.の配列要素のアクセスについては、ポインタを使わなくても a[i] のようにすればよいと考えるかもしれませんが、a[i] は *(a + i) のシンタックスシュガーですので、やはりポインタが絡みます。


175ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(968,677ポイント)   Date: 2009/01/22(木) 23:52   No:27522     
Title: Re:ポインタを解説しないといけないのですが・・・    
何故そのポインタの説明の必要があるかで変わってくるんじゃないでしょうか?
学生に教える為に必要なのか、卒論発表や学会発表などで必要なのか・・。


45ポイント を手に入れた。

Name: J  ..上級者(17,093ポイント)   Date: 2009/01/23(金) 00:05   No:27525     
Title: Re:ポインタを解説しないといけないのですが・・・    
いえいえ(笑
そんなに重要なものでも無いですよ管理人さん
先生の思いつきの授業内の発表ですから
まあ、「学生に教える為に必要」ですね
だからそんなに深いことは必要ないです
「ポインタ」としか題は決めていないんで、どうしようかと思いまして。
ポインタの概要をちょっとでも理解してくれればいいんですけどね


146ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(968,957ポイント)   Date: 2009/01/23(金) 00:57   No:27530     
Title: Re:ポインタを解説しないといけないのですが・・・    
それなら一連のポインタの説明に加え、
利点の説明などには
自分がプログラム書いてて「あ、こういうときポインタって便利だな」と思ったこと並べるような感じでいいんじゃないでしょうか?

私が一番ポインタ便利だなって思ったのは、初めて関数ポインタ使ったときでした。
例えば弾幕シューティングで言えば

弾幕001();
弾幕002();
弾幕003();
....
弾幕150();

とか似たような関数が何百ってあるんですよね。
それをイチイチ個別に呼び出していたのではめんどくさいってことで、
関数のアドレスを配列に入れておいて、番号で呼べるようにしました。
こうすることで、すごく簡単に関数が呼べるようになりました。

自分の経験を混ぜて説明すれば説得力ある説明が出来ると思います。

後、「ポインタ 利点」とかで検索してもいい情報が得られるかもしれません。


280ポイント を手に入れた。

Name: たいちう  ..上級者(22,510ポイント)   Date: 2009/01/23(金) 09:27   No:27537     
Title: Re:ポインタを解説しないといけないのですが・・・    
関数の引数としてオブジェクトのコピーを渡さないですむという利点の説明はどうですか?
それだけだと多分30分も持たないので、後はリスト構造の説明とか。


39ポイント を手に入れた。

Name: やそ  ..比類無きプログラマー(86,006ポイント)   Date: 2009/01/23(金) 10:09   No:27539     
Title: Re:ポインタを解説しないといけないのですが・・・    
ポインタの利点・・・
殆どは皆さんが語っている点で間違いないと思います。
わたしも関数ポインタにはお世話になりました^^

で良く初心者向けの本に載っているポインタの利点として解説されているのは、
関数だと戻り値はひとつしか返せないけど、ポインタを使えば複数の値を返すことが出来る。
ってところを最初に習った気がします。



134ポイント を手に入れた。



Name: へたれ  ..ぴよぴよ(462ポイント)   Date: 2009/01/20(火) 18:07   No:27233       
Title: 質問です。    
いつもお世話になっています。今回もアドバイスを頂きたく質問させてもらいます。
まず、このソースファイルを見てもらいたいのですが


main(void){
char filename1[256], filename2[256];
FILE *fd1, *fd2;
int i, m, n;
fprintf( stderr, "入力ファイル: " );
scanf( "%s", filename1 );
fd1 = fopen( filename1, "r" );
if( fd1 == NULL ){
puts( "Error: File doesn't open it. \n" );
exit(1);
}

fprintf( stderr, "出力ファイル: " );
scanf( "%s", filename2 );
fd2 = fopen( filename2, "r" );
if( fd2 == NULL ){
puts( "Error: File doesn't open it. \n" );
exit(1);
}
}

これはファイルの入出力のプログラムなのですが、この状態だと入力ファイルの名前はもちろんのこと、出力ファイルの名前も打ち込まなければなりません。
自分としては出力ファイルの名前の入力を省略したいのですが…

例としては、入力ファイルの名前をabc.txtとしたら、
出力ファイルの名前をabc1.txtのようにしたいのですが、やり方がいまいちわかりません。
strcpyを使うのかな?とかも思うのですが…

分かる方がいらっしゃいましたら、ぜひご教授をお願いします。


306ポイント を落としてしまった。


Name: non  ..ぴよぴよ(212ポイント)   Date: 2009/01/20(火) 18:20   No:27234     
Title: Re:質問です。    
こんなんで、どうでしょう。ただ、拡張子がない場合(ピリオドがない場合など)のエラー処理を
加えるべきだとは思います。

#include <stdio.h>
void makefilename(char *s1,char *s2)
{
while(*s1!='\0'){
if(*s1=='.')
*s2++='1';
*s2++=*s1++;
}
*s2='\0';
}

int main(void)
{
char filename1[256], filename2[256];
fprintf( stderr, "入力ファイル: " );
scanf( "%s", filename1 );
makefilename(filename1,filename2);
puts(filename2);
return 0;
}



212ポイント を手に入れた。

Name: へたれ  ..ぴよぴよ(581ポイント)   Date: 2009/01/20(火) 19:41   No:27236     
Title: Re:質問です。    
non様、回答ありがとうございます。
これで数字はつけることが出来ました。
しかし、文字をつけようとすると

'=' : 'const int ' から 'char ' へ切り詰めます。

と、エラーが出てしまうのですが、どうすればいいでしょうか?
度々申し訳ありません。


119ポイント を手に入れた。

Name: non  ..プログラマー(31,398ポイント)   Date: 2009/01/20(火) 20:12   No:27237     
Title: Re:質問です。    
> しかし、文字をつけようとすると
>
> '=' : 'const int ' から 'char ' へ切り詰めます。
>
> と、エラーが出てしまうのですが、どうすればいいでしょうか?

意味がわかりません。プログラムを載せて下さい。
または、具体的にどの様な文字をつけたいのか書いて下さい。


26ポイント を手に入れた。

Name: へたれ  ..ぴよぴよ(712ポイント)   Date: 2009/01/21(水) 17:17   No:27317     
Title: Re:質問です。    
説明不足で申し訳ありませんでした。
文字というのは

while(*s1!='\0'){
if(*s1=='.')
*s2++='1';
*s2++=*s1++;

の'1'の部分を's1'などにしたいのですが、上記のエラーが出てしまい
実行結果としてはs1はつかず、1だけついてしまうのですが…


131ポイント を手に入れた。

Name: non  ..プログラマー(31,465ポイント)   Date: 2009/01/21(水) 17:24   No:27323     
Title: Re:質問です。    
元のファイル名が
test.txtの場合tests1.txtにしたいということでしょうか?
そうならこうなります。

while(*s1!='\0'){
if(*s1=='.'){
*s2++='s';        
*s2++='1';
}
*s2++=*s1++;


67ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(43,791ポイント)   Date: 2009/01/21(水) 17:24   No:27324     
Title: Re:質問です。    
"s1"の場合、2文字ですからchar一個(1バイト)にはおさまりません。
入れるためには2バイト必要ですので以下のようにしてみるとか。

if(*s1=='.') {
*s2++='s';
*s2++='1';
}


78ポイント を手に入れた。

Name: フリオ  ..プログラマー(29,015ポイント)   Date: 2009/01/21(水) 19:30   No:27378     
Title: Re:質問です。    
 
 タイトルは、内容がわかるようにしてほしいです。

 "sprintf"を使って、こんな感じでどうでしょうか。

#include <stdio.h>
#include <string.h>

void MakeFilename(char *s1, const char *s2, const char *s3)
{
int i = strlen(s2);

while(i --){
if(s2[i] == '.') break;
}
if(i < 0) sprintf(s1, "%s%s", s2, s3);
else sprintf(s1, "%.*s%s%s", i, s2, s3, s2 + i);
}

int main(void)
{
char s1[32], s2[32];

printf("File Name :");
scanf("%s", s2);
MakeFilename(s1, s2, "_out");
puts(s1);
return 0;
}


315ポイント を手に入れた。

Name: へたれ  ..ぴよぴよ(877ポイント)   Date: 2009/01/22(木) 23:19   No:27513 解決!     
Title: Re:質問です。    
まずお返事が遅れたことを謝罪します。
そして、回答・アドバイスを提案してくれた
non様、Mist様、フリオ様本当にありがとうございます。

non様とMist様の方法も、フリオ様の方法も試してみたところ
プログラムを思い通りに実行する事ができました。

知識不足でお恥ずかしいのですが、自分で出来る限り努力してみて
疑問に思ったことがあれば今後もご教授のほどをお願い致します。

タイトルは今後気をつけます。


165ポイント を手に入れた。



Name: Dixq (管理人) [URL]  ..伝説なるハッカー(957,844ポイント)   Date: 2009/01/20(火) 14:02   No:27207       
Title: 関西周辺でオフ会?勉強会?しませんか?    
トピ「Pthreadについて」で「関西で何かするなら参加するよ!」と言って下さった方が多かったので、トピ立ててみました^^

まだ開催するかどうかはわかりませんが、人数が集まったら本当に開催してみようかな?と思います^^
元々「勉強会」って事で話が始まったのですが、内容はどうします?

(1). マジで勉強会
(2). 勉強会もやり〜の、飲み会
(3). 普通に飲み会
(4). 勉強会でも飲み会でもない会 (皆さん共通で興味あるスポーツとかあればそういうのも?)
(5). ツーリンg・・(ry

参加希望の方はもし支障がなければ

(a). だいたいのお住まいの場所(例:「京都駅近くですよ」「奈良県北部ですよ」)
(b). だいたいの年齢(例:「20代後半ですよ」)
(c). 参加出来そうな日時(例:「土日ならOK」「普通日の夜がいい」「2月中旬なら暇」)

を添えて頂けると企画がしやすいかもしれません。

しかしオフ会ってやったことないんで、何してどういう流れでスケジュール組めばいいのかよくわからないです^^;
詳しい人いたら仕切ってくださいw


325ポイント を手に入れた。


Name: ま〜く  ..初心者(8,397ポイント)   Date: 2009/01/20(火) 14:45   No:27211     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
なんで東京周辺じゃないの〜T_T

2倍のポイントを手に入れた! 32ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(957,852ポイント)   Date: 2009/01/20(火) 14:55   No:27212     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
新幹線でお越しください♪

8ポイント を手に入れた。

Name: 真等  ..ぴよぴよ(20ポイント)   Date: 2009/01/20(火) 15:13   No:27214     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
 なんで東京ry

 qさんが女装でもしていけば、スケジュールなんて無くても大丈夫かと。


20ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(43,392ポイント)   Date: 2009/01/20(火) 15:39   No:27215     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
> 元々「勉強会」って事で話が始まったのですが、内容はどうします?
> (1). マジで勉強会
> (2). 勉強会もやり〜の、飲み会
これをすると定期的な開催になるのでちと遠方の私は無理ですね〜。
場所の確保も難しいような〜。
飲み会は飲み屋の予約だけで住むけど、マジ勉強会は(参加人数によるけど)会議室的なものがいりますよね。

> (3). 普通に飲み会
まぁ、OFF会だったらこれでしょうか。懇親会って事で(^-^;

> (4). 勉強会でも飲み会でもない会 (皆さん共通で興味あるスポーツとかあればそういうのも?)
これは参加者が集まりにくくなりそう(--;
みんなで集まってWiiスp(ry

> (5). ツーリンg・・(ry
ママチャリですか?w



143ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(958,301ポイント)   Date: 2009/01/20(火) 15:52   No:27217     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>真等さん

なんで私が女装趣味なのをご存j・・(ry
・・いやありえませんからw
う〜ん、関西の方が多いのかと思いきや、やっぱ東京方面の方も多いですよね^^;

>>Mistさん

勉強会って・・これだけ専門家が集まって何を勉強するのだろうという気がしますが・・w
やったとしても討論系?
私は完全リスナー側で自重してますw

まぁ普通に(3)が無難ですかね?
あ、後からこのトピご覧になった方がご意見出しにくくならないよう、まだ決定しないでおきますので。

ただ、よくリアル懇親会するんですが、人数が多いと、飲み屋で4人テーブルとかにわかれてしまうと、
その4人しか結局話さないんですよね(´〜`;)
それならチーム戦でビリヤードとかやれば話も出来て・・いや、ないですよねw
案の一つとして項目に書いただけです^^;

>>みんなで集まってWiiスp(ry

こうなったら全員うちに集まって宴k・・、いや同好会のノリと間違いましたw

> (5). ツーリンg・・(ry

滋賀は3月でさようならなので、お別れに走っておきたいんですよねぇ(´〜`;)
琵琶湖の湖岸道路走ると爽快ですよ〜♪
滋賀は比叡山ドライブウェイとか奥琵琶湖パークウェイとか伊吹山ドライブウェイとかいいとこありまくりっす♪


396ポイント を手に入れた。

Name: BEMANI  ..入門者(4,069ポイント)   Date: 2009/01/20(火) 16:10   No:27218     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
管理人さんは、女装して、ママチャリでツーリングするのが趣味なんですか><
凄いっす><


28ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(958,316ポイント)   Date: 2009/01/20(火) 16:12   No:27219     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
えぇ、一体私はどういうイメージ?! Σ( ̄△ ̄;)

ちなみに、チャリ持ってないです^^;


15ポイント を手に入れた。

Name: BEMANI  ..入門者(4,095ポイント)   Date: 2009/01/20(火) 16:16   No:27220     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
女装も龍神級なんでしょうか;
この時期にツーリングという体力と根性は本当凄いと思います;


26ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(958,379ポイント)   Date: 2009/01/20(火) 16:19   No:27221     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
メイクしてもらったことはありますが、女装したことはないんでw
てかする気も無いんでw

ツーリングはもちろんチャリじゃなくバイクですよw
この時期寒いですが、バイク好きなら関係ないっす^^
ここでツーリングメンバー集めようとは思っていませんが^^;


63ポイント を手に入れた。

Name: ムンバ  ..上級者(22,973ポイント)   Date: 2009/01/20(火) 16:21   No:27222     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
(こんにちはっ!)
女装してママチャリで関西を走りまくるqさん・・・!<^0^>(メモメモ


24ポイント を手に入れた。

Name: YuO  ..プログラマー(27,736ポイント)   Date: 2009/01/20(火) 16:57   No:27230     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
知っている勉強会が,わんくま同盟さん勉強会くらいしかないのですが,一応数回,非登壇者側としてながら参加した立場から。


> 勉強会って・・これだけ専門家が集まって何を勉強するのだろうという気がしますが・・w

わんくま同盟さんの勉強会は,全体としては(2).のスタイルで,勉強会部分は登壇者が基本的には話をするスタイルでした。
# わんくま同盟さんには,C++標準化委員会に所属しているような専門家の方もいらっしゃいます。

そこでの経験からだと,
・専門の異なる分野の話を聞ける
私の場合,主にVB/C#, WinForms/WebApplication, SQL Serverの組み合わせで開発しているのですが,
JavaやOracle,さらにはLL関係の話が出てきたり,近くてもWPFの話が聞けたりなど,知らない分野は多い物です。
・懇親会ではさらに色々な話を聞ける
基本的にプログラムの勉強会ですから,その後の懇親会 (飲み会) の話題もそれが中心になります。
テーマの縛りがなくなるので,いろいろな話を聞けます。
# 去年のTech EDの後にあった某懇親会の後,帰りの湘南新宿ラインの中でも一緒になった方と話をし続けていた覚えが……。
・登壇側も勉強が必要
場合によっては,勉強してそれを発表するという強者も。
Text Services Frameworkについて発表していたもいました。
# 資料がなくて大変だ,とか言われていました。後述のNyaruru氏のDiaryが異常に詳しいとか。


> まぁ、OFF会だったらこれでしょうか。懇親会って事で(^-^;

何のOFF会にするかでしょうね。
Nyaruruさん主催のXNAオフ会では,(2).形式でした。
# XNAに興味のある人のOFF会というえらく広い範囲のOFF会ということもあるでしょうが。
このときは,米MSからひにけにXNAの伊藤さんが来られて,セッション1つ担当していました。


一応,最初に却下されそうな条件を書いておきます。
> (c). 参加出来そうな日時(例:「土日ならOK」「普通日の夜がいい」「2月中旬なら暇」)
大晦日or正月3が日なら。


906ポイント を手に入れた。

Name: s-rush  ..上級者(16,201ポイント)   Date: 2009/01/20(火) 16:57   No:27231     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
バイクの免許は持ってるんですけど、
バイク持ってないですorz
親に乗るな、と止められているので(涙

オフ会は単純に飲み会的なものでもいいのではないでしょうか??


52ポイント を落としてしまった。

Name: 組木紙織 [URL]  ..熟練のプログラマー(68,732ポイント)   Date: 2009/01/20(火) 20:18   No:27238     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
私としては本気の勉強会をやってもらいたいと思うのですが、
色々と準備が大変そうなので今回は飲み会的なものでもいいかと。
(どのくらい人数集まるか分からないし)

(b)年齢は20代で、
(a)現在地は西日本の真ん中あたりよりちょっと東側です。
(c)日付が早めに決まればあけることは可能(だと思う)ので、いつでもいいです。


>琵琶湖の湖岸道路走ると爽快ですよ〜♪
>滋賀は比叡山ドライブウェイとか奥琵琶湖パークウェイとか伊吹山ドライブウェイとかいいとこありまくりっす♪
バイクでは走ったことはありませんが、あのあたりは景色が綺麗な場所ですよね。

#仕切りをする人が出てこないとこのまま流れてしまいそうです。



48ポイント を手に入れた。

Name: ムンバ  ..上級者(23,122ポイント)   Date: 2009/01/20(火) 21:57   No:27242     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
こんばんはっ!(個人的な希望です。w)

(3). (最初は)普通に飲み会

(a). 位置:神奈川県 北東寄り
(b). 年齢:40代(既婚済み。たくさんの方々と知り合いたいだけです。^^)
(c). 参加出来そうな日時:土曜日とか、カレンダーで赤い日の前日です。

仕切るとかはできませんが、できれば皆さんとお目にかかりたいです。


149ポイント を手に入れた。

Name: s-rush  ..上級者(16,297ポイント)   Date: 2009/01/20(火) 22:19   No:27243     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
私の情報をまだ言っていませんでしたね^^;

(a). 位置:平日は滋賀の南草津、土日は大阪のかなり奈良よりです。
(b). 年齢:21歳の大学生です。
(c). 参加出来そうな日時:バイトさえ入っていなければいつでも大丈夫です。

やっぱり初めてなので、最初は飲み会みたいなものでいいのではないでしょうか??


96ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(50,341ポイント)   Date: 2009/01/20(火) 22:24   No:27244     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
(2)or(3)希望ですw

(a).イチローの故郷の愛知
(b).今年成人を迎えました
(c).ムンバさんと同じく赤い日ですね^^;

tkさんが最年少で自分がその次ぐらいですかね^^;
にしてもすごい流れで勉強会(という名の飲み会)のアンケートしてますねw



103ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(959,594ポイント)   Date: 2009/01/20(火) 23:35   No:27250     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>皆様

多分純粋に飲み会したい人と、純粋に勉強会したい人はきっと参加したい動機が異なると思うんですよね。
純粋な勉強会は学会っぽいような感じになるんじゃないかと思ってます。
その後懇親会になると思いますが純粋にワイワイやりたいだけだ!って人は前半退屈でしょうし、
趣旨をどっちにするかはっきり決めたほうがいいかもしれませんね。
「より知識を深めたい!専門的な勉強会をしたい」
なのか
「みんなと親睦を深めたい。飲んだり遊んだりしながら色んな人と話がしたい」
なのか、どっちにしましょう?
私は専門的な話も聞いてみたいし、親睦も深めたいので、どちらでも構わないです^^


>>YuOさん

お〜、プレゼンのように発表するような形式もあるんですね。
専門的な内容だし、なんか学会みたいですねw
学会も厳粛な雰囲気で発表→懇親会って流れですもんね。
自分の興味ある分野の専門的な話が聞けると面白いですね。
非定型な要求の分析手法的な発表とか聞いてみたいな・・。
後は、どうやれば美しい弾幕が作れるかという発p(ry

>大晦日or正月3が日なら。

1年後ってことですね^^;
まぁ今回開く会がよければまた開催してもいいんじゃないでしょうか?


>>s-rushさん

免許あるのに・・ですか^^;
親に内緒で買っちゃいましょw
それか、ニケツw

>南草津

めっちゃ近いじゃないですか!私は玉川高校の近く住んでますよw


>>組木紙織さん

何をテーマにした勉強会かですよね。
やっぱ専門的な話になってくると、かなり細分化されてくるでしょうし、
一口にソフトウェア開発といっても、営業的な仕事から要求分析、設計、運営まで幅広いでしょうし、
自分が専門としている部分も例えば同じ設計でも色々あるでしょうし。
自分が直接関わらない分野の勉強会でもいいんでしょうけど、やっぱ一番興味ある分野の勉強会したいですよね。

多分勉強会って、 誰かがプレゼン的に発表→みんなで討論 って感じじゃないと難しいんじゃないかな?
と思いますがどうでしょう・・。
突然会議室みたいなところでさぁ何か話しましょうってのも難しいですよね。
勉強会参加したことないんで、どうやってるのかわかりませんが^^;
Yuoさんが教えてくださった内容をもうちょっと詳しく調べてみようと思います。

>バイクでは走ったことはありませんが、あのあたりは景色が綺麗な場所ですよね。

いいですよ!是非機会があったらいらしてください〜♪


>>ムンバさん

あぁ、今回は関西周辺ということなので神奈川での開催はちょっと無理です、ごめんなさい。


>>kazuoniさん

西日本の方がいらっしゃるので、開催は大阪がいいかな?とか思ったりするんですが、
愛知から大丈夫ですかね?
京都の方がいいかな?

>年

全体からみたらそんなことないと思うんですが(アンケート結果からみても高校・大学で全体の6割位占めてる)、
質問者=若い
回答者=年配・・とまで言わないけど大人より
という傾向にあることと、
参加される方は後者に多め?じゃないかなと思うので、メンバーの中ではその可能性はあるかもしれませんね^^;
でも20も24も変わらないですよw


1,105ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(959,610ポイント)   Date: 2009/01/20(火) 23:35   No:27251     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
後、たかぎさんの仰る勉強会ってどういうイメージでしょう?

16ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(50,397ポイント)   Date: 2009/01/21(水) 00:01   No:27255     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
日程が合えば京都でも、大阪でも大丈夫です♪
学生なんでお金がないため、(w
鈍行で揺られながら向かいたいと思います


56ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(80,198ポイント)   Date: 2009/01/21(水) 00:06   No:27258     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
かなり出遅れてしまいました。

> 後、たかぎさんの仰る勉強会ってどういうイメージでしょう?

最初からあまり頑張っても仕方がないので、懇親会でも良い気がしますが、普通は

> 多分勉強会って、 誰かがプレゼン的に発表→みんなで討論 って感じじゃないと難しいんじゃないかな?
> と思いますがどうでしょう・・。

これが一番やりやすいでしょうね。
といっても、資料を作るのも大変ですし、プロジェクタなどの機材が必要だったりと、それなりに準備の手間とコストもかかります。

あと、私の情報ですが...

(a). 大阪市のほぼ南端です。
(b). 40台
(c). できれば3月がよいのですが、それ以前でも何とか時間を空けます。
  ただ、出張や会議や来客の予定が入っている日もある(土日でも!)ので、その日は無理です。

人数にもよりますが、大阪でやるなら(そして機材が不要なら)場所は何とかしますよ。


152ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(961,208ポイント)   Date: 2009/01/21(水) 00:17   No:27261     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>kazuoniさん

ありがとうございます^^
場所的に大阪がやりやすいですかね〜?
京都ならバイクでいくんですがw

>>たかぎさん

さすが社長!頼もしいです♪
すると場所はもしかして・・(御社の会議室とか?!)
こんなことなら就職先長野にするんじゃなかったですorz
最初は懇親会だけでもいいかもしれませんが、
やはりこれだけ専門家が集まると専門的な技術の紹介や、
自分こだわりのテクニックなどの発表聞いてみたいですね。
学会では発表されないようなマニアックな物とか、もっと身近なもの、現場ならではのものとか
そこでしか聞けないようなものもあっても面白いかもしれませんね。
う〜ん、4月以降も何か学会的に継続的に開催されるなら新幹線乗ってでも参加します!

そして発表を聞いて誰か有能な人物だと評価されたら社長から引き抜きのお誘いがあるかも・・w

掲示板毎日見てるわけじゃないって人も参加して下さるかもしれないので、
トピはもう少しこのまま雑談的な感じにしておきますね。


456ポイント を手に入れた。

Name:  ..初心者(7,665ポイント)   Date: 2009/01/21(水) 01:27   No:27266     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
おっと何この楽しそうなイベント参加したいです!

(a). Dixqさんとあんま変わらない場所
(b). 22歳
(c).2月は最終週以外3月も最終週以外なら問題ないかと
4月以降は社会人になるのでまったく予定がわかりません。

Dixqさん宅近くで飲み会なら10〜15人ぐらいの人数なら入れる居酒屋とか予約とれますよっと


108ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(961,733ポイント)   Date: 2009/01/21(水) 01:38   No:27269     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
藍さんキター。
その居酒屋どこか予想付きますよw
ただそこに集まれというのは結構酷な気がします・・w
いつか個人的にお邪魔したいです^^


64ポイント を手に入れた。

Name:  ..初心者(7,600ポイント)   Date: 2009/01/21(水) 01:40   No:27270     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>ただそこに集まれというのは結構酷な気がします・・w

ですよねー 駅も近くないから微妙に不便なんですよw

>>いつか個人的にお邪魔したいです^^

いつでもいってくださいよ!全然おkなんで!


65ポイント を落としてしまった。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(962,122ポイント)   Date: 2009/01/21(水) 01:43   No:27272     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
じゃいつか居酒屋にバイクで行きます(飲めないw

15ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(43,621ポイント)   Date: 2009/01/21(水) 10:32   No:27284     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
顔も合わせたことない人間同士で最初から本格的な勉強会は無理と思いますので、1回目は懇親会で(継続するのであれば)そのとき次回のテーマを決めるという流れでいいような。
もしくは、ここのHPの趣旨に沿ったところで誰かが作ったアプリケーション(ゲーム等々)の発表会とかなら1回目でもできるかもしれないですね。
しょぼくていいならプロジェクターは私が用意できます。

以下、私の情報
> (a). だいたいのお住まいの場所
近畿で一番南のど田舎県の県庁所在地です。

> (b). だいたいの年齢(例:「20代後半ですよ」)
アラ30

> (c). 参加出来そうな日時(例:「土日ならOK」「普通日の夜がいい」「2月中旬なら暇」)
出張とかも多いので平日はまず無理です。
開催日が1〜2週間まえぐらいに決定していれば土日は都合付けられると思います。


189ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(43,659ポイント)   Date: 2009/01/21(水) 10:35   No:27285     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
あ〜、この業界に入ろうと志す学生達に、業界の暗黒面を永遠語りつくす会でもいいですお(w

38ポイント を手に入れた。

Name: バグ  ..ハッカー(143,642ポイント)   Date: 2009/01/21(水) 10:44   No:27286     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
そんな、夢も希望もないオフ会って…w

11ポイント を手に入れた。

Name: s-rush  ..上級者(16,375ポイント)   Date: 2009/01/21(水) 11:06   No:27292     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>あ〜、この業界に入ろうと志す学生達に、業界の暗黒面を永遠語りつくす会でもいいですお(w
少し興味あります(笑
やっぱり第一線で働いていらっしゃる方の話は学生にとってとても貴重だと思うので。


78ポイント を手に入れた。

Name: たいちう  ..上級者(22,471ポイント)   Date: 2009/01/21(水) 12:43   No:27299     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
たいちうです。

情報処理関係の勉強会に何度か参加したことがあります。
公民館とかの会議室を1日借りて行いました。
自習がメインで、分からないところを上級者に聞くような感じ。
5時に会議室を追い出されてからは、食事会や飲み会になることが
多かったです。


さて今回の勉強会ですが、参加者の力量に大人と子供ほどの差があるんですよね。
自分の知らない話題がなかった、今の自分に理解できる話題がなかった、
というリスクを覚悟して参加する必要があるでしょう。

参加者の力量よりも大事なのが、勉強会のテーマです。
需要がありそうなのは、『シューティングゲームをメインとしたゲーム全般』、
『Cプログラミング初級講座』、『業界の暗黒面』等でしょうか?
第一回目ということですので、特に決めずに開催しても良いかもしれませんが。

内容を調整した30分程度の発表が3つ位あればベストかな。
プロジェクタがあれば色々便利ですが、
ない場合はPowerPointやソースコードのレジュメ。


最後に私の情報
(a) 滋賀県在住
(b) 30代後半
(c) 休日なら多分OK


246ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(963,521ポイント)   Date: 2009/01/21(水) 13:51   No:27307     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>>Mistさん

なるほど、作品の発表会だったら「難しすぎてわからない」ってこともなく、
誰もが気軽に参加出来そうですね。
よし、そうなら龍神録を紹k・・(え、いまさら?!)

第一回は先生的なポジションの方が見本をお見せになるというのもいいかも。
なんか、「C言語何でも質問学会」とでも命名して会の会長を決めたいところですねw

>あ〜、この業界に入ろうと志す学生達に、業界の暗黒面を永遠語りつくす会でもいいですお(w

おぉ興味ありますw 参考になりそうですw

>おそらく和歌山

・・となると京都開催は辛いですよね?
確か奈良を通ってまっすぐ北にあがる路線がなかったような・・。
関西開催なら大阪が無難ですかね〜?


>>>バグさん

バグさん色んな職種の色んな一面をご存知そうじゃないですかw


>>>たいちうさん

そうですよね。
ついこのまえCを始めた人から、骨の髄まで研究し尽くした人までいらっしゃるわけでしょうし・・。
集まるメンバーが常連・回答者が多いことを考えると・・、若干具体的なことを言っても大丈夫かも・・?
その時はプレゼンみたいな資料に前提知識の説明沢山いれて、なるべくみんなにわかりやすく説明する必要がありそうです。

>『シューティングゲームをメインとしたゲーム全般』『Cプログラミング初級講座』

あ〜なるほど。
アンケート見てもここに来る人のほとんどはゲーム制作目的のようですし、
そういうのも需要あるのかもしれませんね。
ただこういうテーマだと勉強会というより、「講義」的なイメージになりそうですね。
「何をテーマにするか」で呼びかける対象を変えればいいですかね。
完全に聞き手として参加する気満々でしたが、弾幕の作り方位なら・・w

まぁ一つの話題について少々時間を短くとって、色んな話題について話し合えば、
興味ある無い、の問題がちょっと軽減されるかも知れませんね。


488ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(963,609ポイント)   Date: 2009/01/21(水) 14:00   No:27308     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
この会合に名前を付けて、そのホームページ設立してみましょうか?!
・・ということで、このなんちゃって学会というか、勉強会というか、懇親会というか・・。・・の
名前募集です!

「○○研究会」とか「○○交流会」とか他のでもなんでもいいです☆


88ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(43,886ポイント)   Date: 2009/01/21(水) 14:15   No:27309     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
> ・・となると京都開催は辛いですよね?

私のことは気にしてもらわなくても大丈夫ですよ。
平日の夜とかだと無理ですけど、土日だったら京都でも滋賀でもOKです。
草津ぐらいまでだったら電車で行っても3時間あれば余裕で着きますので。

> 確か奈良を通ってまっすぐ北にあがる路線がなかったような・・。
一応あります。
和歌山市から奈良へ行って最終的に草津線で草津駅に到着するというルートが。
ただ、ローカル線ばかりを通るのですごい時間がかかるらしいですけどw
地図でみると遠回りですが、和歌山→大阪→京都→大津/草津と行くほうが断然早いんですよね。


189ポイント を手に入れた。

Name: keichan  ..プログラマー(30,756ポイント)   Date: 2009/01/21(水) 15:31   No:27312     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
#かなり乗り遅れた感が
関西でOFFがあるのであれば私も参加したいです。

(a). だいたいのお住まいの場所
大阪の北の方

(b). だいたいの年齢
20代後半

(c). 参加出来そうな日時
休日であれば参加できます。




113ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(963,564ポイント)   Date: 2009/01/21(水) 16:22   No:27314     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>>皆様

wikipediaで「学会」調べてみると


学会としての機能を持っていない団体・集団が「〜学会」と自称している場合もある。
(中略)
学会と名乗ることに対して規制や資格は存在しない。


特に決まりも無く、「学会とは科学的妥当性をオープンな場で検討論議する場である」とあるので、
今開こうとしている会合も学会と呼べるんですかね〜?
学会と名づけると堅苦しい感じがしますが、名称として付けても良さそうな気がしますね。

名前どうしましょう。
以前「電子情報通信学会ソフトウェアインタプライズモデリング研究会」に参加したことあるんですが、
これ名前長すぎですよね〜w

かといってうちのサイト名+学会とかサイト名+研究会、勉強会って名前じゃダサイ・・。


>>>keichanさん

ご参加ありがとうございます^^
やはり開催地は大阪が妥当ですかねぇ?


>>>Mistさん

電車で3時間?!
大阪で開いた方がよさそうですね^^;

う〜ん、是非関東の方ともご一緒したいですが、地理的な関係で無理そうですね・・。
中を取って名古屋にしたとしても、大阪から名古屋はまだしも、東京から名古屋は遠そうです;

となると開催場所を大阪、東京でかわりばんこにするとかでしょうか。
交通費大変そうだな〜^^;



45ポイント を落としてしまった。

Name: たかぎ [URL]  ..比類無きプログラマー(80,554ポイント)   Date: 2009/01/21(水) 16:56   No:27316     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
名称について...

「学会」というのは、「株式会社」とか「非営利活動法人」とか「一般社団法人」なんかと違って、勝手に名乗ってもかまいません。
ただ、誤解をまねく表現なのは確かですので、「研究会」、「勉強会」、「同好会」、「委員会」程度の方がよいでしょう。

場所について...

仮に大阪で行うとした場合、大阪駅下車徒歩○分とか新大阪駅下車徒歩○分というわけにはいきません。
そこから、環状線なり地下鉄なりに10分〜30分乗って、下車○分になります。
単なる飲み会なら、大阪とか新大阪でもありでしょうけど。

京都の場合はまだ京都駅下車○分とか山科駅下車○分という場所も見つかる可能性があります。

最寄り駅はなるべく新快速が止まる駅にした方がよいでしょうね。


270ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(43,713ポイント)   Date: 2009/01/21(水) 17:18   No:27319     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
いや、だから全然気にしないで(^^;
他のみなさんの都合も考慮して京都や滋賀のほうが集まりやすいようならそれで全然かまいませんから。

社会人にとって3時間くらいは屁でもないのです。(私だけ!? でも、首都圏だと通勤時間2〜3時間は珍しくないんじゃないかな)
今は違うけど去年の春は仕事の都合で毎日京都まで通っていましたし。
北京や上海に行くことに比べれば近いですよ(マテ
東京でも関空から飛行機使えば3時間かからないし、最近は片道4〜5時間ないと遠くまでいった気がしないなぁ(汗
慣れって怖いね(TvT;

> 会の名前
ネーミングセンスナッシングなのでほかの方にお任せします。



173ポイント を落としてしまった。

Name: Dixq (管理人)  ..伝説なるハッカー(963,988ポイント)   Date: 2009/01/21(水) 17:21   No:27321     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>>たかぎさん

そうですね、まずは「研究会」としておきましょう!

>仮に大阪で行うとした場合、大阪駅下車徒歩○分とか新大阪駅下車徒歩○分というわけにはいきません。

駅近くのホテルの会議室借りたらどうでしょう?
大阪に、どんなのがあるかなと思って「大阪 会議室」で検索すると、
わんさか貸し会議室出てきました。

試しにメルパルク見てみたら30人ほど入る会議室が2時間12000円で、手ごろでした。
http://www.mielparque.jp/osk/rooms/r12/index.html
・・が!プロジェクターレンタル3万とか・・^^;

新大阪から一番近いホテルの会議室
http://www.hso-plan.net/room.php?rid=3

この辺アクセスよさそうですね。
すごくたくさん貸し会議室ありそうなので、好きな条件で選べそうです。


>>>皆様

・・で、名前なんですが、適当に

・ソフトウェアプログラミング研究会
・HTソフトウェア開発研究会
・ソフトウェア技術研究会
・ソフトウェアハイテク技術研究会
・ハイテクプログラミング研究会

思いっきり語彙力が無いのバレバレですが、何か適当に考えてググって被ってないか確かめた奴並べてみました^^;
C言語何でも質問研究会とかじゃおかしいしなぁ・・w
う〜ん、、、。


375ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(964,084ポイント)   Date: 2009/01/21(水) 17:24   No:27322     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>>Mistさん

ありがとうございます^^;
やはり社会人は忙しそうですね^^;

まぁ会議室借りたり懇親会したりするのも大阪の方がやりやすいかな?
とか思ったりするので、大阪でもいいかもしれません。
皆さんのお住まい場所を考慮して決めてみようと思います。




96ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(80,681ポイント)   Date: 2009/01/21(水) 18:18   No:27343     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
> 駅近くのホテルの会議室借りたらどうでしょう?
> 大阪に、どんなのがあるかなと思って「大阪 会議室」で検索すると、
> わんさか貸し会議室出てきました。

いや、そんな高額な会議室を借りるぐらいなら、うまいものでも食べましょう。
ちょっと環状線か地下鉄に乗れば、
http://www.creo-osaka.or.jp/west/w_meetingroom.html
↑のようなところがあるわけですから(ただし、競争率高し)。

名前はその場で決めてもよいですね。
初回の予約に必要なだけなら、何でもかまいません。


127ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(964,876ポイント)   Date: 2009/01/21(水) 18:33   No:27351     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
せ、千円台とかやっす^^;
こんな所もあるんですね。

まぁ12000円かかったとしても15人集まれば一人800円ですね。
もしちょっと辺鄙なところにしかないようなら、環状線や地下鉄の料金、交通の便やキレイさを考えると、ホテルでもいいかも・・?とか思ったりもしますが・・・
案外クレオ大阪ってどこもわりと行き易い所にあるんですねw


157ポイント を手に入れた。

Name: array [URL]  ..熟練のプログラマー(46,504ポイント)   Date: 2009/01/21(水) 18:50   No:27366     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
本当に開催できそうな勢いですね♪
私は九州在住なので無理なのですが、開催できたら後から感想や、集まってどんな事をしたのか報告があれば、参加できなかった側も嬉しいと思います。

なので、その際は是非写真なんかをw



名前募集中みたいなので、管理人さんからの候補からだと
ソフトウェア技術研究会が一番良いかな。と思いました。

自分的には、掲示板利用者の交流が目的にも思えたので
ソフトウェア技術交流会
これにも一票いれときますw(検索したら、高品質ソフトウェア技術交流会というのは既存してるみたいです)



2倍のポイントを手に入れた! 444ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(965,237ポイント)   Date: 2009/01/21(水) 22:33   No:27398     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
arrayさんにも是非出席して頂きたかったですが、残念です><
バグさんも四国だし、Mikanさんも四国ですね。

あ、そうだ、せっかくIT関係詳しい人達の集まりなんだから、
オンライン研究会であってもよさそうですねw
北九州・大阪・東京で開いてLive通信するとかw

発表内容や活動内容はHPに記載していこうとおもいます^^
今そのプロトタイプ作ってるところです!

名前の件、投票ありがとうございます^^


175ポイント を手に入れた。

Name: tkmakwins15 [URL]  ..比類無きプログラマー(94,181ポイント)   Date: 2009/01/21(水) 23:44   No:27405     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
かなり開催まで近づいてますね。ぜひその内容についてはHPアップしてくださいね。
(在住は関西なのですが、身分が身分だけに、参加できそうにないです。)

名称は、arrayさんと同じく「ソフトウェア技術交流会」に一票。


77ポイント を手に入れた。

Name: Mikan  ..かけだし(1,568ポイント)   Date: 2009/01/22(木) 00:41   No:27408     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>バグさんも四国だし、Mikanさんも四国ですね。

いつのまにか四国人になってるww
arrayさんと一緒の九州です^^

お酒が大好きなので(そっちかw)ぜひ参加したかったんですが、
やはり遠いので無理です( ;∀;)

arrayさんと関西方面に向かってカンパイだけ参加しますよw


95ポイント を落としてしまった。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(965,502ポイント)   Date: 2009/01/22(木) 01:15   No:27412     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
>>>tkさん

う〜ん、そうなんですかね。
社会勉強?というか新しい世界を見る勉強にもなるんではw
高校生以下は参加費半額とかいう学割的な設定してもいいですねw


>>Mikanさん

あ、「九州」って変換したら「吸収」になったんで、一回消したところまでは覚えているんですが、
何故か四国になってしまってたようです、すみません(T_T

う〜ん、九州、四国で開催すると人数集まりそうにないですね;
中を取って広島とか・・にしてもらえると出身地なのでありがたかったり・・w

全国同時のLive研究会なんてのも本気で考えてもいいかもしれません!
まずは第一回が成功するように頑張りますw


225ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(311,544ポイント)   Date: 2009/01/22(木) 01:34   No:27413     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
 私は、関東なのでいけませんが、何かしらの報告を楽しみにしています。

115ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(967,267ポイント)   Date: 2009/01/22(木) 04:29   No:27433 解決!     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
ありがとうございます!
Justyさんも研究会ご参加頂けると嬉しく思います^^

どなたか続いてコメントされる場合は、
「☆ソフトウェア技術研究会設立☆参加メンバー募集!! <飲み会のみも可>」トピの方へお願いします。


34ポイント を落としてしまった。

Name: ようすけ  ..入門者(3,192ポイント)   Date: 2009/01/22(木) 17:34   No:27479     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
久しぶりに覗いたら何かワイワイとおもしろい事になってますね。

私は埼玉なんで行けませんが、東京とかで開催してくれれば

行ってみたいです☆



25ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(968,383ポイント)   Date: 2009/01/22(木) 17:37   No:27480     
Title: Re:関西周辺でオフ会?勉強会?しませんか?    
お久しぶりです☆。
ご参加ありがとうございます。
関東地区でも、人数が集まったら開催しようと思っています。
「☆ソフトウェア技術研究会設立☆参加メンバー募集!! <飲み会のみも可>」トピの方に続き書いているので、
よければそちらご覧下さいm(_ _)m
続きのコメントをされる場合はそちらにお願いします。


55ポイント を落としてしまった。



Name: ざこ  ..中級者(13,707ポイント)   Date: 2009/01/21(水) 18:53   No:27368       
Title: MFC    
MFCのダイアログサイズの変更の仕方がわかりません。
プログラムのときには端っこドラッグして引っ張れば大きくなったら小さくなったりできますが
ビルド→実行してからだとサイズが変更できないです。ウィンドウの大きさにあわせてダイアログ内のアイテムの位置が変わるようにしたいのですが調べてもわかりません。教えて下さい。


132ポイント を手に入れた。


Name: Mist  ..熟練のプログラマー(43,920ポイント)   Date: 2009/01/21(水) 18:59   No:27371     
Title: Re:MFC    
ググる先生を有効活用しましょう。

http://7ujm.net/vc.html

の真ん中くらい。


22ポイント を手に入れた。

Name: ま〜く  ..初心者(8,701ポイント)   Date: 2009/01/21(水) 19:04   No:27372     
Title: Re:MFC    
ちょっと意味がわからないのですが、ダイアログのリソースでボーダーを「サイズ変更枠」にするのではなく、動的にサイズ変更可能にしたいのですか?

*リース作成時に変更可能とする場合
ダイアログのプロパティにボーダー属性があるので、それを「サイズ変更枠」にする

*動的に変更可能とする場合
ModifyStyle で WS_THICKFRAMEを指定
ただし、システムメニューに「サイズ変更」がない状態なので、必要であればメニューに
SC_SIZEを追加する。


ダイアログ内のコントロールを再配置する場合は、WM_SIZE等のメッセージハンドラ内で
コントロールを移動すればよいと思います。
MoveWindow、SetWindowPosなどで


304ポイント を手に入れた。

Name: ざこ  ..中級者(13,833ポイント)   Date: 2009/01/21(水) 20:29   No:27381     
Title: Re:MFC    
まだその辺の単語うまく理解できてないんですが
ダイアログベースとかでプログラムを組みビルドして実行するとダイアログでてきますよね。
そのときにサイズ変更したいんです。プログラム内でサイズ変えるのではなくて実行してから画面の
端っこをひっぱりして変更したいのですができないのかな?もしかして。その可能性を考えてませんでした。
ModifyStyle で WS_THICKFRAMEはやってみたいんですけどどうもうまくいかなかったですね。
Mistさんの張られているHPも見たんですけどわからなかったです。


126ポイント を手に入れた。

Name: ま〜く  ..初心者(8,770ポイント)   Date: 2009/01/21(水) 21:01   No:27384     
Title: Re:MFC    
とりあえず、リソースで設定しておきたいと判断します^^;

ダイアログのリソース編集ってわかりますか?
ダイアログにコントロールをぺたぺた貼り付けられる画面のことです。
(VCの中に出てくるやつです)

あ・・VCのバージョンはいくつですか?


69ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(44,040ポイント)   Date: 2009/01/21(水) 21:08   No:27385     
Title: Re:MFC    
あ〜、言いたいことが理解できた。

出来るダイアログボックスと、できないダイアログボックスがあるみたい。

http://www.relief.jp/itnote/archives/001030.php

試してないけど、やり方はこれかしら。

http://mcn.oops.jp/wiki/index.php?%B2%BE%C3%D6%A4%AD%BE%EC%2F%A5%EA%A5%B5%A5%A4%A5%BA%B2%C4%C7%BD%A4%CA%A5%C0%A5%A4%A5%A2%A5%ED%A5%B0%A4%CE%BA%EE%C0%AE(MFC)


101ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(44,083ポイント)   Date: 2009/01/21(水) 21:10   No:27386     
Title: Re:MFC    
あ、下のアドレスは(MFC)というところまでアドレスに含まれていないと表示できません。

43ポイント を手に入れた。

Name: ざこ  ..中級者(13,917ポイント)   Date: 2009/01/21(水) 21:26   No:27391     
Title: Re:MFC    
多分mistさんのが正解だと思います。ちょっと試せる環境にないので明日試してみますね。
バージョンはVC++6.0です
そのペタペタのほうじゃなくて実際に動かしてみる時ですね。ペタペタはるときにダイアログを伸ばしたり
縮めたりするのはできるんですけどね。プログラムではなく手動です。
ありがとうございました。


84ポイント を手に入れた。

Name: ま〜く  ..初心者(8,819ポイント)   Date: 2009/01/21(水) 22:31   No:27397     
Title: Re:MFC    
うわ><まだ理解できない僕って・・・

Mistさんの提示したURLを確認したんですけど、コモンダイアログの事ですか?
下のURLは最初にぼくが説明した感じだし・・・


49ポイント を手に入れた。

Name: ざこ  ..中級者(14,001ポイント)   Date: 2009/01/21(水) 23:29   No:27404     
Title: Re:MFC    
いや私の説明が悪いんです。御二方共わかりずらそうでしたのでそうだと思います。
ま〜くさんに教えていただいたのとmistさんに教えていただいたのを検証して取り組んで見ます。
普通のダイアログの方かなとは思います。下の方のURLだったと思うのでま〜くさんに説明していただいたとおりかな?まぁ明日試してわからなかったら最後質問させていただきます。


84ポイント を手に入れた。

Name: toyo  ..上級者(23,471ポイント)   Date: 2009/01/22(木) 07:02   No:27437     
Title: Re:MFC    
「サイズ枠変更」はこれのことですよ

15ポイント を落としてしまった。

Name: ざこ  ..中級者(14,045ポイント)   Date: 2009/01/22(木) 09:11   No:27441     
Title: Re:MFC    
上記のやり方でできました。ありがとうございました。
後はサイズ変更に伴ってボタンの位置も移動する方法ですがま〜くさんの意見やmistさんに貼り付けていただいたサイトがまさにこれっぽいので試して見ます。


44ポイント を手に入れた。

Name: ざこ  ..中級者(14,311ポイント)   Date: 2009/01/22(木) 10:00   No:27445     
Title: Re:MFC    
お二方の意見を参考にしてとあるhpに
フォームのリサイズと同じ比率でコントロールをリサイズします


bool flg = false;//起動時にイベントが発生してサイズを変えると落ちるため、回避のためのフラグ

void CtestDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

// TODO: この位置にメッセージ ハンドラ用のコードを追加してください

if(flg) GetDlgItem(IDC_STATIC)->MoveWindow(cx/10,cy/10, cx/2,cy/2);//動的なサイズの変更
flg = true;
}


とやり方が載ってました。これかなと思って試した結果サイズを変更しようと端をドラッグすると
問題が発生しました。作業を終了します
となります。やり方がおかしいのでしょうか?
※上記のソースはdialogのクラスでWM_SIZEのメッセージを使ってます。


266ポイント を手に入れた。

Name: ま〜く  ..初心者(8,888ポイント)   Date: 2009/01/22(木) 10:19   No:27446     
Title: Re:MFC    
できてよかったですね^^

問題はIDC_STATICにあると思います。
IDC_STATICではコントロールを特定できないので、
たとえば IDC_LABEL1 のように 別のIDをつけてみてください。

ちなみに flg による判定はうまくいくと思いますが、見た感じが微妙ですね^^;


69ポイント を手に入れた。

Name: ざこ  ..中級者(14,965ポイント)   Date: 2009/01/22(木) 10:28   No:27447     
Title: Re:MFC    
とんでもないことに気づきました。そのままパクッて貼り付けたんですがSTATICをダイアログ内で使用してませんでした・・
それでif(flg) GetDlgItem(IDC_STATIC)->MoveWindow(cx/10,cy/10, cx/2,cy/2);//動的なサイズの変更を

if(flg) GetDlgItem(IDC_IDOK)->MoveWindow(cx/10,cy/10, cx/2,cy/2);//動的なサイズの変更
if(flg) GetDlgItem(IDC_CANCEL)->MoveWindow(cx/10,cy/10, cx/2,cy/2);//動的なサイズの変更
if(flg) GetDlgItem(IDC_LIST1)->MoveWindow(cx/10,cy/10, cx/2,cy/2);//動的なサイズの変更

にすると今度はドラッグする前、
詳しくは今SDIベースでメニューのとある欄を押すとダイアログが表示され、そのダイアログをいじくったりの作業を
今しています。それでメニューの所を押した時点で問題が発生しました。作業を終了します
とでます。何が問題なのかさっぱりです。





2倍のポイントを手に入れた! 654ポイント を手に入れた。

Name: バグ  ..ハッカー(143,889ポイント)   Date: 2009/01/22(木) 10:33   No:27448     
Title: Re:MFC    
flg変数は、OnSize関数の中で毎回trueにしなくても、OnInitDialog関数の中で一度だけtrueにしてやればいいと思いますよ(^-^)

OnInitDialog関数の中でButtonやStaticなんかのコントロールの初期化を行っているようなので、この初期化が終了してしまわない内に、コントロールに対して何か操作しようとするとエラーが出るようです。


89ポイント を手に入れた。

Name: バグ  ..ハッカー(143,984ポイント)   Date: 2009/01/22(木) 10:37   No:27450     
Title: Re:MFC    
あ、追記です。
前述のflg変数ですが、Dialogクラスにメンバ変数として追加しておいた方がよいですよ。
グローバル変数でも構わないといえばそうなのですが、Dialog内でしか使わないものですから、Dialog内でしか使えないようにしておいた方が、可読性の向上を考えると良いと思います。


95ポイント を手に入れた。

Name: ざこ  ..上級者(15,154ポイント)   Date: 2009/01/22(木) 13:55   No:27460     
Title: Re:MFC    
なんとかできました。最後の作業なんですが1度起動してダイアログのサイズを変更して終了します。
次また起動したときに終了したサイズで始める。というプログラム取り入れたいんです。最初は一定の値いれといて終了時にウィンドウのサイズをどっかに入れ次回起動時にそのサイズではじめる という感じかなとは思いますが
プログラムって1回終了したらデータ失われますよね。失われず続きからできるなら上記の作業いらないのかな
とは思います。お手数ですが教えて下さい。


189ポイント を手に入れた。

Name: バグ  ..ハッカー(144,060ポイント)   Date: 2009/01/22(木) 14:04   No:27462     
Title: Re:MFC    
ファイルにTop, Bottom, Left, Rightの値を保存しておくのがいいかと思います。
で、ダイアログを閉じる際のイベントハンドラ内(OnCloseとかOnDestroyかな?)で、値を更新保存する…というのでいけるんではないでしょうか?


76ポイント を手に入れた。

Name: ざこ  ..上級者(15,180ポイント)   Date: 2009/01/22(木) 14:29   No:27463     
Title: Re:MFC    
どうやらレジストリというものを使うっぽいのでちょっと勉強してみます。

26ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(44,721ポイント)   Date: 2009/01/22(木) 15:08   No:27466     
Title: Re:MFC    
勉強のために作られているソフトだったらいいんですけど、完成後他の人に使ってもらうことを考えておられるのであればなるべくレジストリは使わないほうがいいと思います。
(テキストファイルやバイナリファイルで十分な気もします)

理由は
1.レジストリに設定を残す(=レジストリを汚す)ソフトは嫌われる傾向にある
  このソフトがレジストリを使用していることの銘記は必要になる
  よほどのことがない限り大丈夫と思いますが、レジストリを破壊するようなことがあるとOS再インストールということになる
2.アンインストール時に、レジストリから情報を消す手段が必要になる
  アンインストーラが必要になる
  レジストリを使用していなければ実行ファイルのフォルダ丸ごと削除だけですむ
3.他のPCで同じソフトを使用したい場合に設定を引き継がせにくい

特にVistaだとUACの影響でレジストリが使えなかったり、仮想化されてXPとは違う動きになったりしますしね。


252ポイント を手に入れた。

Name: ざこ  ..上級者(15,538ポイント)   Date: 2009/01/22(木) 16:03   No:27468     
Title: Re:MFC    
.iniファイルに保存する形式にしました。まず初期サイズ作ってたんです。
DialongクラスにOnInitDailog関数作ってそこで
CRect WinRect;
WinRect.left=AfxGetApp()->GetProfileInt("memo","left",200);
WinRect.top=AfxGetApp()->GetProfileInt("memo","top",200);
WinRect.left=AfxGetApp()->GetProfileInt("memo","right",622);
WinRect.bottom=AfxGetApp()->GetProfileInt("memo","bottom",310);
MoveWindow(WinRect);
としてたんです。これで初期設定は出来ていました。

それでその後にです。ダイアログが閉じるときにそのサイズを保存しようとして
ダイアログのクラスにOnDestroy関数つくりそこに
CRect WinRect;
WinRect.left=AfxGetApp()->WriteProfileInt("memo","left",WinRect.left);
WinRect.top=AfxGetApp()->WriteProfileInt("memo","top",WinRect.top);
WinRect.left=AfxGetApp()->WriteProfileInt("memo","right",WinRect.right);
WinRect.bottom=AfxGetApp()->WriteProfileInt("memo","bottom",WinRect.bottom);
MoveWindow(WinRect);


としたんです。すると意味不明なことに
メニューから【ダイアログ】←※メニューからダイアログを呼びだす場所
押すとプログラムが動かなく閉じることもできなくなります。再起動してDestroy関数を消去しても同じ結果になり
InitDialogの方消せば動かなくなるのは止まりました。何が悪いのでしょうか?


358ポイント を手に入れた。

Name: バグ  ..ハッカー(144,076ポイント)   Date: 2009/01/22(木) 16:12   No:27469     
Title: Re:MFC    
ちなみに、WinRectに数値は入っているんですよね?

16ポイント を手に入れた。

Name: ざこ  ..上級者(16,018ポイント)   Date: 2009/01/22(木) 16:25   No:27470 解決!     
Title: Re:MFC    
動かなくなるのは私のミスだと思います。ただ間違いはDestoy関数なはずなのに何故消去してもなるのかと・・
>>CRect WinRect;
WinRect.left=AfxGetApp()->WriteProfileInt("memo","left",WinRect.left);
WinRect.top=AfxGetApp()->WriteProfileInt("memo","top",WinRect.top);
WinRect.left=AfxGetApp()->WriteProfileInt("memo","right",WinRect.right);
WinRect.bottom=AfxGetApp()->WriteProfileInt("memo","bottom",WinRect.bottom);
MoveWindow(WinRect);

の部分を

CRect WinRect;
GetWindowRect(&WinRect);
AfxGetApp()->WriteProfileInt("memo","left",WinRect.left);
AfxGetApp()->WriteProfileInt("memo","top",WinRect.top);
AfxGetApp()->WriteProfileInt("memo","right",WinRect.right);
AfxGetApp()->WriteProfileInt("memo","bottom",WinRect.bottom);
にしました。するととりあえずおかしくなることはなくなりました。

>>WinRectに数値は入っているんですよね?
Destroyの中のWinRectの中を見るとちゃんとサイズ変更した値が入っていました。
ちゃんと起動しました。ありがとうございました。




480ポイント を手に入れた。

Name: バグ  ..ハッカー(144,008ポイント)   Date: 2009/01/22(木) 16:42   No:27472     
Title: Re:MFC    
ソースの全体を見ていないので推測ですが、OnDestroyの中でMoveWindowを呼び出していたのが原因ではないかと思います。既に破棄されたWindowに対して、なんらかの処理を行おうとしたために暴走してしまったのではないでしょうか?

68ポイント を落としてしまった。

Name: バグ  ..ハッカー(144,052ポイント)   Date: 2009/01/22(木) 16:57   No:27473     
Title: Re:MFC    
あと1つ気になったんですが、iniファイルに書き込むのって、WriteProfileIntでいいんでしたっけ?
WritePrivateProfileStringじゃなかったっかな?違ってたらすみません(^_^;)


44ポイント を手に入れた。

Name: ざこ  ..上級者(16,061ポイント)   Date: 2009/01/22(木) 17:17   No:27477     
Title: Re:MFC    
これは"新VisualC++6.0 入門シニア偏"に載っていました。
その方法でもできるかもしれませんね。ありがとうございました。


43ポイント を手に入れた。



Name: にょろ  ..ぴよぴよ(799ポイント)   Date: 2009/01/21(水) 21:24   No:27390       
Title: Textureが表示できない    
はじめまして
C#のManagedDirectXですがアドバイスいただければと思い質問させてください
シューティングゲームを作りたいと思い
最初はSpriteで描画していました。
速度的な問題がありDevice描画に変更しようと思い
ついでにその描画方法がどれほどの速度が出るか調べたかったのでベンチマークテストを作ろうと思ったのですが…
何故か(自分のせいなのは分かっています)テクスチャが描画されません。
(もしかしたら変なところに描画されているのかも…)

色々なサイトのソースを試したのですが…
関係ありそうなコードだけ下に(その他はFPS描画などです。)
どこかおかしいところ(修正するところ)はありませんか。
ここのFPS計算のソースもそのまま入ってますが

VC# XPです。


class Loop
{
Device device;
Texture tex;

//終了させて良いか?というフラグ
bool Cont = true;


public Bitmap bmp;
int width, height;

public Thread th;

public Loop(Device device)
{
this.device = device;

bmp = new Bitmap(@"C:\enemy.png");
      SetTexture(out tex, bmp);

//テクスチャ初期設定[
vert = new VertexBuffer(typeof(CustomVertex.PositionTextured),
4, device, Usage.None, CustomVertex.PositionTextured.Format, Pool.Managed);
verts = new CustomVertex.PositionTextured[4];

th = new Thread(Run);
th.Start();
}

    //Texture描画
void DrawTexture(Texture tex,int x,int y)
{
verts[0] = new CustomVertex.PositionTextured(x - width / 2, y - height / 2, 0.0f, 0.0f, 0.0f);
verts[1] = new CustomVertex.PositionTextured(x + width / 2, y - height / 2, 0.0f, 1.0f, 0.0f);
verts[2] = new CustomVertex.PositionTextured(x - width / 2, y + height / 2, 0.0f, 0.0f, 1.0f);
verts[3] = new CustomVertex.PositionTextured(x + width / 2, y + height / 2, 0.0f, 1.0f, 1.0f);
device.SetTexture(0, tex);
DrawRectPrim(verts);
}
void DrawRectPrim(CustomVertex.PositionTextured[] verts)
{
if (device == null) return;

GraphicsStream stm = vert.Lock(0, 0, 0);
stm.Write(verts);
vert.Unlock();
device.SetStreamSource(0,vert,0);
device.VertexFormat = CustomVertex.PositionTextured.Format;
device.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 2);
}
public void Run()
{
while(true)
{
//デバイス消失の確認(省略)

//ループ
// 描画内容を単色でクリア
this.device.Clear(ClearFlags.Target, Color.White, 1.0f, 0);
device.BeginScene();
DrawTexture(tex, 200, 200);
device.EndScene();
device.Present();

Sleep();
}
}
void Sleep()
{
      //省略
}
/// <summary>
/// テクスチャ生成
/// </summary>
/// <param name="img">貼り付けるBitMap</param>
protected void SetTexture(out Texture tex,Bitmap img)
{
int w = 1, h = 1;
width = img.Width;
height = img.Height;

while (w < width) { w = w * 2; }
while (h < height) { h = h * 2; }
width = w;
height = h;

//サイズを考慮したbitmapへ〜
Bitmap bmp = new Bitmap(w, h);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Transparent);
g.DrawImage(img, 0, 0);
g.Dispose();
tex = new Texture(device, w, h, 0, Usage.Dynamic, Format.A8R8G8B8, Pool.Default);
      SurfaceDescription desc = tex.GetLevelDescription(0);
UInt32[,] buf = (UInt32[,])tex.LockRectangle(typeof(UInt32), 0,LockFlags.None, desc.Height, desc.Width);
//Bitmap→byte
BitmapData bmpdata = bmp.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite,PixelFormat.Format32bppArgb);
IntPtr ptr = bmpdata.Scan0;
byte[] temp = new byte[bmpdata.Width * bmpdata.Height * 4];
//ptr→tempコピー
Marshal.Copy(ptr, temp, 0, bmpdata.Width * bmpdata.Height * 4);
//アンロック
bmp.UnlockBits(bmpdata);
for (int i = 0; i < bmpdata.Height; i++)
{
for (int j = 0; j < bmp.Width; j++)
{
//byte*4→UInt32
//縦横逆にする
buf[i, j] = (UInt32)temp[i * bmpdata.Width * 4 + j * 4]
+ (UInt32)temp[i * bmpdata.Width * 4 + j * 4 + 1] * 256
+ (UInt32)temp[i * bmpdata.Width * 4 + j * 4 + 2] * 256 * 256
+ (UInt32)temp[i * bmpdata.Width * 4 + j * 4 + 3] * 256 * 256 * 256;
}
}
tex.UnlockRectangle(0);
}





799ポイント を手に入れた。


Name: にょろ  ..ぴよぴよ(763ポイント)   Date: 2009/01/22(木) 12:20   No:27456 解決!     
Title: Re:Textureが表示できない    
表示できましたので報告までに
PositionTextured→TransformedColoredTexturedでとりあえず
しかし何故?


36ポイント を落としてしまった。



Name: AC  ..かけだし(2,021ポイント)   Date: 2009/01/21(水) 04:43   No:27278       
Title: BitBlt()とWM_CLOSEメッセージ    
ただいまWin32APIを勉強中なのですが、ちょっと原因不明なことが起きましたので質問させていただきます。
とりあえずソースから。ウィンドウプロシージャ部分です。

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
// ビットマップハンドル
static HBITMAP hBitmap, hPrevBitmap;
// デバイスコンテキストハンドル
static HDC hDC, hCompatDC;

switch(msg)
{
case WM_CREATE:
// ビットマップをファイルから読み込む
hBitmap = (HBITMAP)LoadImage(NULL, _T(".\\test.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if(hBitmap == NULL)
{
MessageBox(hWnd, _T("読み込みエラー"), _T("警告"), MB_OK | MB_ICONWARNING);
break;
}
// ウィンドウのデバイスコンテキストハンドルを取得
hDC = GetDC(hWnd);
// メモリデバイスコンテキストを作成
hCompatDC = CreateCompatibleDC(hDC);
// ロードしたビットマップを選択
hPrevBitmap = (HBITMAP)SelectObject(hCompatDC, hBitmap);
break;
case WM_CLOSE:
if(MessageBox(hWnd, _T("終了しますか?"), _T("WM_CLOSE"), MB_YESNO | MB_ICONQUESTION) == IDYES)
{
// WM_DESTROYメッセージを送信
DestroyWindow(hWnd);
}
break;
case WM_DESTROY:
// 以前のビットマップに戻す
SelectObject(hCompatDC, hPrevBitmap);
// ロードしたビットマップを削除
DeleteObject(hBitmap);
// メモリデバイスコンテキストを削除
DeleteObject(hCompatDC);
// デバイスコンテキストハンドル削除
ReleaseDC(hWnd, hDC);
PostQuitMessage(0);
break;
case WM_PAINT:
// ビットマップをウィンドウに転送
BitBlt(hDC, 10, 10, 500, 500, hCompatDC, 0, 0, SRCCOPY);
break;
default:
return DefWindowProc(hWnd, msg, wp, lp);
}

return 0;
}

この結果画像は正常表示されて、上手くいったかのように思えたのですが、×ボタンを押すと固まってしまいます。
WM_CLOSEメッセージでメッセージボックスを表示し、終了確認するようにしているのですが、どうもこの処理が原因のようで、コメントアウトしたところ正常に動作しました。
あと、いろいろやってみた結果、理由は良く分からないのですが、固まっている時にAltキーを押すとメッセージボックスが表示されました。
また、固まっているときにスペースキー、エンターキーでプログラムが終了したので、固まっているときもメッセージボックスは表示されているつもり(?)なようです。

ということで、この現象の起きる原因のわかる方は、どうかご教授願います。


737ポイント を手に入れた。


Name: dic  ..中級者(11,223ポイント)   Date: 2009/01/21(水) 04:58   No:27279     
Title: Re:BitBlt()とWM_CLOSEメッセージ    
WM_PAINT は BeginPaint(), で取得したデバイスコンキテストで描画しなければなりません
終了後 EndPaint() 関数で開放します
コートに示すと以下のようになります


// デバイスコンテキストハンドル
static HDC hDC, hCompatDC;
static HDC hdc2; // 追加
PAINTSTRUCT pt; // 追加

case WM_PAINT:
// ビットマップをウィンドウに転送
hdc2 = BeginPaint( hWnd, &pt );
BitBlt(hdc2, 10, 10, 500, 500, hCompatDC, 0, 0, SRCCOPY);
EndPaint( hWnd, &pt );
break;



14ポイント を手に入れた。

Name: AC  ..入門者(2,522ポイント)   Date: 2009/01/21(水) 12:00   No:27295 解決!     
Title: Re:BitBlt()とWM_CLOSEメッセージ    
dicさん、解答ありがとうございます。

言われてみればそうでした。
画像表示されてたのですっかり失念していました。
以下のように訂正しました。

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
// ビットマップハンドル
static HBITMAP hBitmap;

switch(msg)
{
case WM_CREATE:
// ビットマップをファイルから読み込む
hBitmap = (HBITMAP)LoadImage(NULL, _T(".\\test.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if(hBitmap == NULL)
{
MessageBox(hWnd, _T("読み込みエラー"), _T("警告"), MB_OK | MB_ICONWARNING);
break;
}
break;
case WM_CLOSE:
if(MessageBox(hWnd, _T("終了しますか?"), _T("WM_CLOSE"), MB_YESNO | MB_ICONQUESTION) == IDYES)
{
// WM_DESTROYメッセージを送信
DestroyWindow(hWnd);
}
break;
case WM_DESTROY:
// ロードしたビットマップを削除
DeleteObject(hBitmap);
PostQuitMessage(0);
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hDC = BeginPaint(hWnd, &ps);
// メモリデバイスコンテキストを作成
HDC hCompatDC = CreateCompatibleDC(hDC);
// ロードしたビットマップを選択
HBITMAP hPrevBitmap = (HBITMAP)SelectObject(hCompatDC, hBitmap);
// ビットマップをウィンドウに転送
BitBlt(hDC, 10, 10, 500, 500, hCompatDC, 0, 0, SRCCOPY);
// 以前のビットマップに戻す
SelectObject(hCompatDC, hPrevBitmap);
DeleteObject(hCompatDC);
EndPaint(hWnd, &ps);
}
break;
default:
return DefWindowProc(hWnd, msg, wp, lp);
}

return 0;
}

一応これで解決にしたしますが、何か他に間違いやコメント等があったら書いてくれると嬉しいです。


501ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(51,214ポイント)   Date: 2009/01/21(水) 12:27   No:27297     
Title: Re:BitBlt()とWM_CLOSEメッセージ    
通常、ウインドウをクローズすると、 WM_CLOSE メッセージが送られた後、
(そのメッセージでFALSEを返さなかった場合)
WM_DESTROY メッセージが呼ばれます。

上記のメッセージ処理だと、二重に WM_DESTROY が送られて、
異常終了になるか、デバッグ出力ウインドウに例外メッセージが表示されます。

また、上記メッセージボックスで「いいえ」を選択、またはメッセージボックスを×ボタンで閉じると、
そのままウインドウが閉じてしまいます。(こちら側は問題なく終了すると思います)

質問の表示されない問題ですが(既に解決していますが)、
dic さんの通りに HDC を取得しないといけませんね。
うまく描画されているようでも、必要の無い描画まで行うため、メッセージボックスの表示が
塗りつぶされてしまいます。
(BeginPaint で取得されたものは、必要の無い領域を描画しません)


256ポイント を手に入れた。

Name: AC  ..入門者(2,965ポイント)   Date: 2009/01/22(木) 01:10   No:27411     
Title: Re:BitBlt()とWM_CLOSEメッセージ    
御津凪さん、補足ありがとうございます。

>通常、ウインドウをクローズすると、 WM_CLOSE メッセージが送られた後、
>(そのメッセージでFALSEを返さなかった場合)
>WM_DESTROY メッセージが呼ばれます。
>上記のメッセージ処理だと、二重に WM_DESTROY が送られて、
>異常終了になるか、デバッグ出力ウインドウに例外メッセージが表示されます。

とのことですが、WM_CLOSEメッセージでDefWindowProc()が呼ばれた場合、DestroyWindow()が実行されて、WM_DESTROYメッセージが送られるのではないのでしょうか?
ブレークポイントを↑のソースの

@if(MessageBox(hWnd, _T("終了しますか?"), _T("WM_CLOSE"), MB_YESNO | MB_ICONQUESTION) == IDYES)
ADestroyWindow(hWnd);
BDeleteObject(hBitmap);

に入れて調べたところ、
×ボタンを押すと@で停止。
そのまま続行してメッセージボックスが表示されNOを押すと何も起こらず、YESを押すとAで静止。
そのまま続行するとBで静止。
という流れでしたので、二重に WM_DESTROYが送られているということはないと思われます。
例外メッセージもなさそうですので。


443ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(52,148ポイント)   Date: 2009/01/22(木) 01:49   No:27416     
Title: Re:BitBlt()とWM_CLOSEメッセージ    
> WM_CLOSEメッセージでDefWindowProc()が呼ばれた場合、DestroyWindow()が実行されて、WM_DESTROYメッセージが送られるのではないのでしょうか?

DefWindowProc ()の位置を良く見てませんでした…。
すみません。

私はメッセージ処理に default を使わず、個々で return 処理をし、しなかった処理は DefWindowProc() を呼び出す、
という方法を用いていましたので。



71ポイント を手に入れた。

Name: AC  ..入門者(3,145ポイント)   Date: 2009/01/22(木) 02:34   No:27422     
Title: Re:BitBlt()とWM_CLOSEメッセージ    
>私はメッセージ処理に default を使わず、個々で return 処理をし、しなかった処理は DefWindowProc() を呼び出す
なるほど、そういうことでしたか。確かにいろんなパターンありますからね。
とりあえず、自分の理解が間違ってなかったようでよかったです。

では以上を持って本当に解決ということにさせていだたきます。
回答してくださった皆さん、ありがとうございました。


180ポイント を手に入れた。



Name: JT  ..ぴよぴよ(31ポイント)   Date: 2009/01/20(火) 13:40   No:27202       
Title: 東京近辺での真面目な勉強会    
一人で自社で勉強してもわからないことだらけです><どなたか東京近郊で一緒に勉強しませんか?

31ポイント を手に入れた。


Name: YuO  ..プログラマー(26,830ポイント)   Date: 2009/01/20(火) 13:58   No:27206     
Title: Re:東京近辺での真面目な勉強会    
東京近郊なら,そもそも勉強会がすでにたくさんありますが……。

ref) IT 勉強会カレンダー
https://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k%40group.calendar.google.com

2月のデブサミ@目黒雅叙園でコミュニティがLT (ライトニング・トーク) をするそうなので,
それを見てよさそうなところに行ってみるのも良いかと思います。


123ポイント を手に入れた。

Name: Haru  ..上級者(22,527ポイント)   Date: 2009/01/20(火) 14:07   No:27208     
Title: Re:東京近辺での真面目な勉強会    
>>YuOさん

>>東京近郊なら,そもそも勉強会がすでにたくさんありますが……。

このようなものがあるんですね!!
ただ・・・どんなレベルの勉強会なんでしょう?(^^;


54ポイント を手に入れた。

Name: JT  ..ぴよぴよ(416ポイント)   Date: 2009/01/20(火) 15:13   No:27213     
Title: Re:東京近辺での真面目な勉強会    
ま〜く さん、東京の勉強会ならこちらで>< 開催時間は夜7時以降です

30ポイント を落としてしまった。

Name: Dixq (管理人)  ..伝説なるハッカー(957,905ポイント)   Date: 2009/01/20(火) 15:44   No:27216     
Title: Re:東京近辺での真面目な勉強会    
ま〜くさんはプログラミング歴、○十年の超ベテランですよ^^;

私なんか毎日ま〜くさんのお住まいの東京に向かって1日3回礼拝をしてます(嘘



53ポイント を手に入れた。

Name: JT  ..ぴよぴよ(51ポイント)   Date: 2009/01/21(水) 10:59   No:27289     
Title: Re:東京近辺での真面目な勉強会    
東京近郊では勉強会やりたい方いませんか?><

20ポイント を手に入れた。

Name: たかぎ [URL]  ..比類無きプログラマー(80,284ポイント)   Date: 2009/01/21(水) 11:01   No:27290     
Title: Re:東京近辺での真面目な勉強会    
わざわざ行くのは辛いので、何かのついでがあるときなら参加してもよいですよ。


2倍のポイントを手に入れた! 86ポイント を手に入れた。

Name: Haru  ..上級者(22,730ポイント)   Date: 2009/01/21(水) 13:04   No:27301     
Title: Re:東京近辺での真面目な勉強会    
>>JTさん
>>東京近郊では勉強会やりたい方いませんか?><

純粋に勉強会って言うのはやはり難しいのかもしれませんね・・。
特に場所が・・・^^;

>>たかぎさん
>>わざわざ行くのは辛いので、何かのついでがあるときなら参加してもよいですよ。

たかぎさんが参加していただけるとしたら、普通に業界の世間話みたいな感じでも
勉強になりそうですね!!
ただ、きじねこの内容が少し難しくて、あまり理解できない私には
たかぎさんのいってることが理解できるのか心配です(^^;


203ポイント を手に入れた。

Name: Justy  ..伝説なるハッカー(311,746ポイント)   Date: 2009/01/22(木) 01:37   No:27414     
Title: Re:東京近辺での真面目な勉強会    

>純粋に勉強会って言うのはやはり難しいのかもしれませんね・・。

 そうですね。

 ただの飲み会ならともかく、勉強会のテーマとか方針とかないと
なかなか参加表明し辛いのではないでしょうか。

 場所は探せば貸し会議室とかがあると思うので、なんとかなるのかな、と。

東京横浜全国|TKP貸し会議室ネット
ttp://www.kashikaigishitsu.net/


202ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(965,330ポイント)   Date: 2009/01/22(木) 01:55   No:27417     
Title: Re:東京近辺での真面目な勉強会    
ソフトウェア技術研究会(仮)
可能なら大阪と東京で2回にわけて開催したいと思っています。

ただ、メインの趣旨としてはJTさんの想像されてる勉強会とはちょっと違うかもしれません。
JTさんはどっちかというと、わからない所を教えて欲しいって感じなんだと思いますが、
それが主体だとベテランの方が参加して下さる理由がなくなってしまうので・・。

メインとしては誰かがプレゼン→討論って形になるのでは無いかと思っています。
その後時間を作って何かお互いに教えあえることがあったら教えあえばいいと思います。

まだ全く内容が決まってないことなので、いくらでも変更や、やりたい企画の提案可能なんで、
ご意見があればお願いします。

新しい研究会についてはまた新しいトピを立てようと思います。


346ポイント を手に入れた。



Name: BEMANI  ..入門者(3,320ポイント)   Date: 2009/01/19(月) 20:03   No:27170       
Title: 同じプログラムを別のPCで実行すると。    
前回ファイル読み込みの件で投稿させて頂きましたBEMANIです。
あれ以来、スコアのセーブが出来るようになり非常に助かりました。

本題なのですが、
デスクトップ・ノートとPCが二種類あり、現在デスクトップで作業しています。
デスクトップでは正常に起動し、思い通りの結果になるのですが
ノートになると画面が真っ黒になってしまいました。

動いていないのかな?と思ったのですが、効果音(音楽)は流れていました。
どうやら画像がうまく表示できていないのではないかと思うのですが
全く同じソースなので、なぜ真っ黒になるのか原因が解りません。

VC++2008 EEを使用し、OSはXPです。
PCに関しての知識が乏しいのでこのような質問でいいのか解りませんが、
何か原因が解る方いらっしゃらないでしょうか・・・。


346ポイント を手に入れた。


Name: lbfuvab  ..中級者(14,995ポイント)   Date: 2009/01/19(月) 20:27   No:27171     
Title: Re:同じプログラムを別のPCで実行すると。    
他のDxライブラリを使ったプログラムは動きますか?

27ポイント を落としてしまった。

Name: BEMANI  ..入門者(3,453ポイント)   Date: 2009/01/19(月) 20:36   No:27172     
Title: Re:同じプログラムを別のPCで実行すると。    
>>lbfuvabさん
今のプロジェクトより少し前に作成した物のバックアップがあったので
そちらを実行してみました所、正常に映りました。

また、全く違うプロジェクトで画像を描画するというものがあったので
そちらも実行してみました所、正常に映っておりました。


133ポイント を手に入れた。

Name: Libra  ..初心者(7,862ポイント)   Date: 2009/01/19(月) 20:44   No:27173     
Title: Re:同じプログラムを別のPCで実行すると。    
ロードする時のファイルのパス(ファイルの場所)が違うのではないでしょうか?

25ポイント を手に入れた。

Name: BEMANI  ..入門者(3,454ポイント)   Date: 2009/01/19(月) 20:57   No:27174     
Title: Re:同じプログラムを別のPCで実行すると。    
>>Libraさん
ファイルパスが違う(「画像が存在しない」・「ファイル名が違う」)等で
正しく画像を格納することができなかった場合、
テクスチャを描画する段階でエラーが出てしまわないですか?
ロード時に使っている関数はD3DXCreateTextureFromFileAというものです。

パスは、ソリューションから見ての相対指定ですので間違っているとは考えにくいのです;
(念のため見直しましたが、間違ってはいませんでした。)




1ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(50,427ポイント)   Date: 2009/01/19(月) 22:36   No:27178     
Title: Re:同じプログラムを別のPCで実行すると。    
> ロード時に使っている関数はD3DXCreateTextureFromFileAというものです。

この関数の戻り値を確認してください。
何か問題があれば S_OK (0)以外の値が返ってくるはずです。
たとえ読み込めていなかったとしても、
変数が NULL である場合、たぶん問題なく描画をスルーします。
(結果、何も描画されない)

それとは別に注意があるので一応書いておきます。

ソリューションから起動する場合と、
直接起動する場合、
デフォルトの設定だとカレントディレクトリが違います。
ソリューションからデバッグ起動すると、ソリューションファイルの置かれているディレクトリが
カレントディレクトリになり、
直接起動すると、その実行ファイルの置かれているディレクトリが
カレントディレクトリになります。

通常、ビルドした実行ファイルは Debug 及び Release フォルダにあるので、
このようなディレクトリの違いがでます。


84ポイント を手に入れた。

Name: dic  ..中級者(10,841ポイント)   Date: 2009/01/19(月) 22:39   No:27179     
Title: Re:同じプログラムを別のPCで実行すると。    
ロードする所のコード
描画する所のコードを書いてくれると返答の仕方が変わってくると思います


36ポイント を落としてしまった。

Name: BEMANI  ..入門者(3,570ポイント)   Date: 2009/01/20(火) 00:03   No:27180     
Title: Re:同じプログラムを別のPCで実行すると。    
>>御津凪さん
ロード失敗時に、画像が読み込めなかったらメッセージウインドウで
「読み込み失敗」なるものを表示していますが、メッセージが出ないので読み込めていると思います。
念のためにロード関数を使った場所すべての戻り値を調べましたが、全てS_OKが返ってきました。


また、描画時に「デバイスオブジェクト->SetTexture(0, テクスチャ格納先);」
を使っていますが、テクスチャ格納先に画像がロード出来なかった場合、

0x4b6e799b でハンドルされていない例外が発生しました:
0xC0000005: 場所 0xcdcdcd7d に書き込み中にアクセス違反が発生しました。

値は皆さんと違うと思いますが、格納できていないというメッセージが出るため、
ファイルパスが間違っている・ファイル名が違う等があった場合は
このようなエラーメッセージが出力され起動ができません。

カレントディレクトリに関してですが、こちらは間違っていないと思います。


>>dicさん
D3DXCreateTextureFromFileAが長いのでLOAD_IMAGEにしています。

・ロードする所
LOAD_IMAGE(デバイスオブジェクト, "ファイル名", &画像格納先);


・描画する所
そのまま乗せても大丈夫なのでしょうか・・・。
(アニメーション・回転計算は抜いています)



//***********************************************************************************************
// オブジェクトを描画する
// 第一引数 : 描画するX座標
// 第二引数 : 描画するY座標
// 第三引数 : アニメーションするかどうか(TRUE:する FALSE:しない)
// 第四引数 : 回転するかどうか(TRUE:する FALSE:しない)
// 第五引数 : 回転する角度
// 第六引数 : 色指定
// 第七引数 : 表示する画像が格納されているポインタ
//***********************************************************************************************

void CPRINT::CDrawObj(float Xpos, float Ypos, bool AFlag, bool SFlag, float Angle, char Color, LPDIRECT3DTEXTURE9 Texture)
{
// 描画するテクスチャをセットする
CDevice->GetD3DDevice()->SetTexture(0, Texture);
vertex[0].rhw = vertex[1].rhw = vertex[2].rhw = vertex[3].rhw = 1.0f;

// Specularなし
vertex[0].specular = vertex[1].specular = vertex[2].specular = vertex[3].specular = D3DCOLOR_XRGB(0, 0, 0);

// 色指定
vertex[0].diffuse = vertex[1].diffuse = vertex[2].diffuse = vertex[3].diffuse = D3DCOLOR_RGBA(255, 255, 255, 255);

// Z値を0にする
vertex[0].z = vertex[1].z = vertex[2].z = vertex[3].z = 0.0f;


//-------------------------------------------------------------------------------
// ウインドウ内でのX, Y座標
//-------------------------------------------------------------------------------

vertex[0].x = Xpos;
vertex[0].y = Ypos;

vertex[1].x = Xpos + Rect.right;
vertex[1].y = Ypos;

vertex[2].x = Xpos + Rect.right;
vertex[2].y = Ypos + Rect.bottom;

vertex[3].x = Xpos;
vertex[3].y = Ypos + Rect.bottom;


//-------------------------------------------------------------------------------
// テクスチャ内でのX, Y座標
//-------------------------------------------------------------------------------

vertex[0].tx = (1/AParX) * Color;
vertex[0].ty = TYpos;

vertex[1].tx = (1/AParX) + vertex[0].tx;
vertex[1].ty = vertex[0].ty;

vertex[2].tx = vertex[1].tx;
vertex[2].ty = TYpos + Anime.bottom;

vertex[3].tx = vertex[0].tx;
vertex[3].ty = vertex[2].ty;


//-------------------------------------------------------------------------------
// ポリゴンの描画
//-------------------------------------------------------------------------------

CDevice->GetD3DDevice()->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, vertex,
sizeof(TLVERTEX));

}



※送った引数を元に描画するというものです。


全く同じプロジェクトを学校のデスクトップに移して(3台目のPCで)起動しましたが
こちらでも正常に動きました。
また、ソースは全くいじってないです。
ノートだからいけない・・・ということはないですよね;


461ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(50,413ポイント)   Date: 2009/01/20(火) 00:22   No:27181     
Title: Re:同じプログラムを別のPCで実行すると。    
> ノートだからいけない・・・ということはないですよね;

もしかしたらということなのですが、
ノートPCのグラフィックボードがSpecular非対応だったりするかもしれません。

あと、FVF値はどのようにセットされていますか?
(一応、TLVERTEX 構造体の中身も)


14ポイント を落としてしまった。

Name: BEMANI  ..入門者(3,763ポイント)   Date: 2009/01/20(火) 00:36   No:27182     
Title: Re:同じプログラムを別のPCで実行すると。    
>>御津凪さん
今問題となっているプロジェクトの、少し前のプロジェクトにも
描画の所で同じような表記がされていますが(Specular)、そちらでは正常に動作しております。
非対応ではないかと思います;

えー、FVF値はマクロ定義でこのように書きました。
#define FVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1)

TLVERTEX構造体の中身です。

typedef struct _tlvertex
{
float x, y, z;
float rhw;
D3DCOLOR diffuse;
D3DCOLOR specular;
float tx, ty;
}TLVERTEX;


193ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(50,533ポイント)   Date: 2009/01/20(火) 03:28   No:27184     
Title: Re:同じプログラムを別のPCで実行すると。    
関係ないかもしれませんが、
D3DFVF_XYZRHW で座標を指定して描画するとき、
頂点がスクリーン表示範囲からずれた時に、
描画されなくなったり、描画がおかしくなることがあります。

まあ恐らく非対応のほうかもしれませんが、
一応、Direct3D SDK に付属している DirectX Caps Viewer で対応しているか
確認してみるといいと思います。


120ポイント を手に入れた。

Name: BEMANI  ..入門者(4,041ポイント)   Date: 2009/01/20(火) 07:57   No:27185     
Title: Re:同じプログラムを別のPCで実行すると。    
>>御津凪さん

>D3DFVF_XYZRHW で座標を指定して描画するとき・・・
そんなことあるんですか;
はじめて聞きました;



>まあ恐らく非対応のほうかもしれませんが・・・
これは、元から入っているサンプルプログラムを実行して
映るかどうかを確認しよう ということですよね?

見当はずれなことを言っているかもしれませんが
ためしに、ShadowVolume.exeという名前の実行ファイルを起動してみました。
内容は、オブジェクトに対して1〜6個の光を選択して当てる(光源計算?)サンプルでした。
全部試してないですが、いくつか実行した結果全て映りました。


言うのが遅れたかもしれないのですが、家のデスク・学校のデスク・ノートの中では
ノートのスペックが一番低いです。(この辺りは関係ないんのですかね;)


278ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(50,819ポイント)   Date: 2009/01/20(火) 09:33   No:27187     
Title: Re:同じプログラムを別のPCで実行すると。    
> これは、元から入っているサンプルプログラムを実行して
> 映るかどうかを確認しよう ということですよね?

DirectX のほとんどのサンプルは、基本ハードで動作できない場合はダイアログか何か表示させた後、
リファレンスモード(描画処理等を全てCPU側で処理するモード)で起動するので、
まずは(どんなに時間がかかろうが必ず)表示されます。

(と、言うことは、リファレンスモードで実行するように変更すればノートでも表示されるかも)

上記に書いた DirectX Caps Viewer というのは、
パソコンのグラフィックボードの性能をチェックするツールです。
(利用できるテクスチャの最大サイズや、スクリーンモードでのカラーフォーマットの対応状況等)

このツールはチェック結果をテキストファイルに保存できるので、
ほかのPCと見比べて、何が違うのか調べてみるといいと思います。
(言い忘れていましたが、ノートPCにはDirectXの最新版は入っていますか?)


286ポイント を手に入れた。

Name: BEMANI  ..入門者(4,222ポイント)   Date: 2009/01/20(火) 16:29   No:27223     
Title: Re:同じプログラムを別のPCで実行すると。    
>>御津凪さん
DirectXのバージョンは最新にしてあります!

何か色々と初めて聞く情報ばかりです;
グラフィックボードの性能をチェックできるツールだったんですね〜。

調べるのに結構時間かかりそうなので地道に調べていきます・・・。
ただ、並行して出来ないのが辛いですが;;
表示ができたら御報告に伺いたいと思います。
御津凪さん御親切にありがとうございます><


127ポイント を手に入れた。

Name: BEMANI  ..初心者(5,197ポイント)   Date: 2009/01/21(水) 21:46   No:27393 解決!     
Title: Re:同じプログラムを別のPCで実行すると。    
とりあえず映るには映ったので報告に上がりました。

変更した場所は、CreateDevice(デバイスの作成)の第二引数なのですが、
D3DDEVTYPE_HAL と 書いていたものを D3DDEVTYPE_REF に変えてみました。

しかし、デスクトップと比べ画面の切り替わりや、
キャラクターの動き等、ゲーム自体の速度が極端に遅くなってしまっています。
そのあたりを今度調べていってみます。

一応、画面表示ができなかった・・・という問題はなくなりましたので
これにて解決とさせて頂きます。


そんなに処理が重いのかな;
御津凪さん、お付き合い頂きまして本当にありがとうございます><


79ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(51,845ポイント)   Date: 2009/01/21(水) 22:03   No:27395     
Title: Re:同じプログラムを別のPCで実行すると。    
> キャラクターの動き等、ゲーム自体の速度が極端に遅くなってしまっています。

まずゲームにはならないほどに遅くなります。
(描画も含め、全てをCPUで処理しているため)
それほどグラフィックカードでの計算が速いということです。

とりあえず映ったということは、ノートでは対応していない何かが関係しているわけですね。
がんばって原因を探してみてください。


114ポイント を手に入れた。

Name: BEMANI  ..初心者(5,592ポイント)   Date: 2009/01/22(木) 00:00   No:27406     
Title: Re:同じプログラムを別のPCで実行すると。    
>>御津凪さん
気になったのでお友達の、自分よりかはスペックのいいノートPCで起動すると動きました。
やはり、なにかがダメなんですよね。

デスクトップで映るなら、先にゲームの方やってしまえばどうでしょう
と言われたのですが、ノートで映らないと作業時間が限られてしまうので本当に直さないとです。

>がんばって原因を探してみてください。
ありがとうございます><
頑張ってみます^^
もし、期待通りの動作になった時、報告に伺います!


206ポイント を手に入れた。

Name: BEMANI   Date: 2009/01/30(金) 19:53   No:271701233312796 解決!     
Title: Re:同じプログラムを別のPCで実行すると。    
正常に動作するようになりました〜。
これで、学校でも作業できます><
アドバイスを下さった方々、ありがとうございました!




Name: ぽにょ  ..かけだし(1,321ポイント)   Date: 2009/01/19(月) 00:22   No:27113       
Title: 質問です。    
前回は色々とお世話になりました
また質問なのですが
入力した文字列(半角文字、最大20文字)を前後逆に入れ替え表示
入力した文字列の各文字の文字コードを前から順に10進数、16進数で表示
なのですが

私のアルゴリズムでは「配列[20]を用意し、文字列入力のメッセージを促す
fgetsで入力し、入れ替え、表示という感じで作成していこうと思っているのですが
これで大体いけそうな感じでしょうか?
また、入力した文字列の長さを調べるために
strlen関数を使ってみようと思っているのですが
これはヌル文字を除く長さを調べるということなのでしょうか?(本で調べてもよくわかりませんでした)

あと入力した文字列で、改行コードは表示、並び替えをしないためには
ヌル文字を入れればいいという考えでいいのでしょうか?

今のところ、考えはこれぐらいしかまとまっていませんが
助言の方よろしくお願いします。





404ポイント を手に入れた。


Name: Dixq (管理人) [URL]  ..伝説なるハッカー(955,938ポイント)   Date: 2009/01/19(月) 00:34   No:27117     
Title: Re:質問です。    
手元にコンパイラはありますか?何のコンパイラをお使いですか?

後、わからないことはグーグルで調べるといいですよ。
例えばstrlenについて調べたいのなら単純にstrlenで検索すればいいです。
プログラムソースサンプルも出てきますし、解説も出てきます。

>これで大体いけそうな感じでしょうか?

いけそうだと思うなら、まず自分でコンパイルしてみましょう。
プログラムは人にきくよりまず自分でトライすることが大事です。
ただコードを完成させて、自分の思うとおりの動作をすることを確認したうえで、
あっているかどうかを聞くことは大事だと思います。

なお、エンター入力によって格納された改行コードを表示したくない場合で、そこまでを文字列としたいなら、
改行コードが入っている要素に終端記号を入れればいいです。


240ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(50,212ポイント)   Date: 2009/01/19(月) 00:42   No:27118     
Title: Re:質問です。    
入力を求めるならscanf()ではないのですか?

11ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(956,145ポイント)   Date: 2009/01/19(月) 00:47   No:27120     
Title: Re:質問です。    
scanfは問題があるということで、fgets使う人多いですよ。
scanfが問題あるかどうかについてや、入力うんぬんについてはきじねこ(たかぎ)さんのHP
http://www.google.co.jp/search?hl=ja&q=%E3%81%8D%E3%81%98%E3%81%AD%E3%81%93%E3%80%80scanf&lr=&aq=f&oq=
で詳しく解説してあるので、そちらや「scanf 危険性」
http://www.google.co.jp/search?hl=ja&q=scanf+%E5%8D%B1%E9%99%BA%E6%80%A7&lr=
などでぐぐって調べてみてください。

あ、見る順番は下のリンク先が先の方がいいかもしれません。

他にもgetcharとかもありますし、色んな方法で入力できます。


121ポイント を手に入れた。

Name: SCI  ..初心者(6,398ポイント)   Date: 2009/01/19(月) 00:50   No:27121     
Title: Re:質問です。    
fgetsはgetsと違って改行文字も読むから注意が必要ですね。
最初はscanfを使って実装してもいいと思います。
もちろん、改行文字のとこに終端文字を入れるというのが最初から書ければそれで大丈夫です。

strlenは純粋に「文字数」を返します。終端文字は計算に入りません。


106ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(50,238ポイント)   Date: 2009/01/19(月) 00:53   No:27122     
Title: Re:質問です。    
stdinを使うんでしたっけ^^;
てっきり忘れてました。。
横から失礼しました。。


26ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(956,335ポイント)   Date: 2009/01/19(月) 00:56   No:27123     
Title: Re:質問です。    
後、本に載ってなかったり、ウェブの参考サイトを見つけることが出来なくても、
自分で書いて試してみたらいいのです。


#include<stdio.h>
#include<string.h>

int main(void){
char str[4];
str[0]='A';
str[1]='B';
str[2]='\n';
str[3]='\0';
printf("%sの文字数は%d個\n",str,strlen(str));
return 0;
}

実行結果

AB
の文字数は3個




190ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(956,476ポイント)   Date: 2009/01/19(月) 01:01   No:27124     
Title: Re:質問です。    
>>kazuoniさん

fが最初に付く関数は「入力先や出力先が指定出来る関数かな?」と思って調べるとだいたいあってることが多いです。
なお、「プログラムに詳しい人しか回答するな」的な雰囲気にはしたくないので、
これからも気軽にコメントして下さいね^^

多分先ほどのやり取りによってより読んでる人が、単なる質問に対するだけの回答より
わかりやすくなったりする場合もあると思うのでむしろ良い効果だと思います。

だいたい詳しい人しか回答出来ない掲示板だったら管理人が発言できn・・(ry


141ポイント を手に入れた。

Name: ぽにょ  ..かけだし(1,400ポイント)   Date: 2009/01/21(水) 22:35   No:27399 解決!     
Title: Re:質問です。    
みなさん、ありがとうございました
今後は自分なりにコードを作成してから質問しようと思います
アルゴリズムがわからなかったらその時点で質問するかもしれませんが・・・


79ポイント を手に入れた。



Name: エムエム  ..ぴよぴよ(113ポイント)   Date: 2009/01/21(水) 20:48   No:27382       
Title: 13章で詰まっています    
こんばんは

C言語のになれようと13章まで来ましたが
13章の説明文中に出てくるプログラムですが
あれが追加なのか変更なのか、はたまた只の
説明なのかが分からず、何度やってもコンパイルエラーが出ます。
かなり初歩の質問かとは思いますが、ヨロシクお願い致します。


113ポイント を手に入れた。


Name: box  ..ハッカー(133,692ポイント)   Date: 2009/01/21(水) 20:55   No:27383     
Title: Re:13章で詰まっています    
> 13章の説明文中に出てくるプログラムですが
> あれが追加なのか変更なのか、はたまた只の
> 説明なのかが分からず、何度やってもコンパイルエラーが出ます。

この文面からでは、どういうソースコードをコンパイルしたときに
どんなエラーが出たのかが全くわかりません。

ソースコードやエラーメッセージを貼り付けるなどの方法で、
現在の状況をできるだけ詳しく教えてください。


82ポイント を手に入れた。

Name: yu  ..初心者(6,364ポイント)   Date: 2009/01/21(水) 21:10   No:27387     
Title: Re:13章で詰まっています    
龍神録プログラミングの館の13章のことでしたら、
ダウンロードしたファイル内の13章のフォルダを開けば変更、追加された箇所が
龍神録の館で説明があった通りになっていますよ。

勘違いでしたらすみません;


89ポイント を手に入れた。

Name: エムエム  ..ぴよぴよ(332ポイント)   Date: 2009/01/21(水) 21:11   No:27388     
Title: Re:13章で詰まっています    
早速のお返事、ありがとうございます

<enemy.cpp> の 赤字の部分の追加するのはわかるのですが、その後の
<define.h>、<struct.h>のプログラムは追加しましょうとは説明は無いのですが追加すべきなのか?

その後<shot.cpp>に関するプログラムが3つ出てくるのですがそれらは全て加えるべきか?

<music.cpp>も追加してみたのですが以下の様なエラーが出ます↓

1>c:\documents and settings\(ユーザー名)\デスクトップ\project\龍神録プロジェクト\1章\mydat\source\music.cpp(4) : error C2065: 'se_flag' : 定義されていない識別子です。


219ポイント を手に入れた。

Name: エムエム  ..ぴよぴよ(365ポイント)   Date: 2009/01/21(水) 21:20   No:27389     
Title: Re:13章で詰まっています    
>yu様
その方法がありましたねw

あ、個人情報だだ漏れww管理人様、削除か編集お願いしますw


33ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(965,062ポイント)   Date: 2009/01/21(水) 22:24   No:27396     
Title: Re:13章で詰まっています    
ここ、説明ちょっと足りませんね。
龍神録には、全てについての説明は無い部分が途中からあるんです。
もし今後説明の足らない部分や
変数追加してくれと言ってないのに追加されてるような部分があったら教えて下さいm(_ _)m

また、ゲームプログラミングの館や龍神録の館があるので、何の13章といっていただけるとわかり易いかと思います。


133ポイント を手に入れた。



Name: TT  ..ぴよぴよ(16ポイント)   Date: 2009/01/21(水) 18:24   No:27345       
Title: 無題    
はじめまして。疑問があったので質問させていただきます。


#include <stdio.h>

int main(void){
int i;
int x;

i = 1;
int x = 2 * i;
printf("x = %d\n", x);
i = 2;
printf("x = %d\n", x);

return 0;
}


これを実行すると"x = 2 x = 2"となってしまいます。i = 2が代入されて"x = 2 x = 4"とはならないのでしょうか。
またこれを"printf("x = %d\n", 2 * i);"と記述する以外で実現するにはどうすればいいのでしょうか。


16ポイント を手に入れた。


Name: Dixq (管理人)  ..伝説なるハッカー(964,916ポイント)   Date: 2009/01/21(水) 18:37   No:27356     
Title: Re:無題    
同じ変数名が2回宣言されてしまっていますよ。

なお、トピックにはわかりやすい名前を付けて下さい。


13ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(51,615ポイント)   Date: 2009/01/21(水) 18:37   No:27357     
Title: Re:無題    
ただの変数は他の変数の値の変更によって、値が変化することはありません。
(VBなどのプロパティではないので)

void update(int& x,int i){

x = 2 * i;
}

int main(void){
int i;
int x;

i = 1;
update(x,i);
printf("x = %d\n", x);
i = 2;
update(x,i);
printf("x = %d\n", x);

return 0;
}


これなら恐らく希望通りの動作になると思いますがどうでしょうか。
あと、 x が二度宣言されています。(警告出ていませんか?)


219ポイント を手に入れた。

Name: ざこ  ..中級者(13,575ポイント)   Date: 2009/01/21(水) 18:42   No:27362     
Title: Re:無題    
プログラムは上から下にいってますから後からi=2としても代入されないのでは?

int main(void){
int i;
int x;

i = 1;
x = 2 * i;
printf("x = %d\n", x);
i = 2;
x = 2 * i;

printf("x = %d\n", x);

return 0;
}

にしたら2,4になりました。同じ文2回きてしまってるので御津さんのように関数使った方がいいですね。


191ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(50,598ポイント)   Date: 2009/01/21(水) 18:43   No:27363     
Title: Re:無題    
>>御津凪さん
void update(int *x,int i){

*x = 2 * i;
}

int main(void){

int i;
int x;

i = 1;
update(&x,i);
printf("x = %d\n", x);

i = 2;
update(&x,i);
printf("x = %d\n", x);

return 0;

}


じゃないですか?


201ポイント を手に入れた。

Name: non  ..プログラマー(31,924ポイント)   Date: 2009/01/21(水) 18:49   No:27364     
Title: Re:無題    
C++の参照渡しですね。


13ポイント を手に入れた。

Name: 御津凪 [URL]  ..熟練のプログラマー(51,685ポイント)   Date: 2009/01/21(水) 18:49   No:27365     
Title: Re:無題    
> kazuoni さん

コードの後に変数宣言があったので、C++ のコードとして解釈しました。
なのであのコードは C++ のコードです。
(C++ のコードだというのを書き忘れていました。すみません)


70ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(50,780ポイント)   Date: 2009/01/21(水) 18:54   No:27369     
Title: Re:無題    
C++ではこんな風に書けるのですか・・・w
そろそろ自分もC++始めます^^;
Cもままならない感じですが・・・。

自分こそ、無知のわりに変な突っ込みして申し訳ありませんでした。
nonさん、御津凪さんご指摘ありがとうございました。


105ポイント を手に入れた。

Name: フリオ  ..プログラマー(28,700ポイント)   Date: 2009/01/21(水) 19:22   No:27376     
Title: Re:無題    
 
>コードの後に変数宣言があったので、C++ のコードとして解釈しました。
>なのであのコードは C++ のコードです。

 現行の"C"(C99)では、ブロックの途中で変数を宣言することが許されているので、
それだけで質問のコードが"C++"と解釈することは出来ないです。

 むしろ、コード全体の様子を見ると、"C"と解釈する方が自然ではないでしょうか。
 


141ポイント を手に入れた。

Name: TT  ..ぴよぴよ(145ポイント)   Date: 2009/01/21(水) 19:40   No:27379 解決!     
Title: Re:無題    
すいません。間違えたのを貼り付けてました。実行したのは宣言を一回に修正した後のものです。

printfでxの式が呼び出されるのだと思っていました。関数を作って使おうと思います。
お答えいただきありがとうございました。

あと勉強してるのはC++なんですが質問のためにCで書いたつもりです。混乱させてしまったようで申し訳ありません。


129ポイント を手に入れた。



Name: ひよこ  ..中級者(9,745ポイント)   Date: 2009/01/21(水) 18:26   No:27348       
Title: ただいまスーパーマリオブラザーズぽいものを    
ただいまスーパーマリオブラザーズぽいものを作っているのですが。
DXライブラリのジャンプの改良で作っているのですが。
スーパーマリオブラザーズは穴があって上にいったら落ちるじゃないですか。
しかしおちるようなプログラムを書くと落ちてくる位置がちがったりしてうまくいきません。
どうすればいいでしょうか?私的にはif( 200<=PlayerX<=240 && PlayerY==355 ){PlayerY = 355 ;JumpPower = -1 ;}のところだと思っているのですが。PlayerYの値を変更したら落ちてくる位置がちがくなってしまうんです。どうすればいいでしょうか?

// ジャンプ
#include "DxLib.h"
int PlayerX , PlayerY ;
int JumpPower ;
int PlayerGraph ;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
if (DxLib_Init() == -1) return -1;

char Key[256];

SetGraphMode( 640,480,16 ) ;
// 描画先画面を裏画面にセット
SetDrawScreen( DX_SCREEN_BACK ) ;
// グラフィックのロード
PlayerGraph = LoadGraph( "star1.bmp" ) ;

// キャラクターの初期データをセット
PlayerX = 0 ;
PlayerY = 0 ;
JumpPower = 0 ;
int White;

White = GetColor( 255 , 255 , 255 ) ; // 白色の値を取得


// ループ
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE])

{
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されていない

if (Key[KEY_INPUT_UP]== 1) PlayerY -= 3; // 上を押していたら上に進む
if (Key[KEY_INPUT_DOWN]== 1) PlayerY += 3 ; // 下を押していたら下に進む
if (Key[KEY_INPUT_RIGHT]== 1) PlayerX += 3 ; // 右を押していたら右に進む
if (Key[KEY_INPUT_LEFT]== 1) PlayerX -= 3 ; // 左を押していたら左に進む


PlayerY -= JumpPower ;// 落下処理

JumpPower -= 1 ;// 落下加速度を加える


// もし地面についていたら止まる
if( PlayerY > 355 )
{
PlayerY = 355 ;
JumpPower = 0 ;
}

if( 200<=PlayerX<=240 && PlayerY==355 )
{
PlayerY = 355 ;
JumpPower = -1 ;
}

// ジャンプボタンを押していて、地面についていたらジャンプ
if ((Key[KEY_INPUT_A]==1) && PlayerY == 355 ) JumpPower = 20 ;


ClearDrawScreen() ;// 画面を初期化する


DrawGraph( PlayerX , PlayerY , PlayerGraph , TRUE ) ;// プレイヤーを描画する
DrawBox ( 0 , 384 , 200 , 480 , White , TRUE ) ;
DrawBox ( 240, 384 , 640 , 480 , White , TRUE ) ;
// 裏画面の内容を表画面に反映させる
ScreenFlip() ;
}

DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了

}


よろしくお願いします。


728ポイント を落としてしまった。


Name: Mist  ..熟練のプログラマー(43,898ポイント)   Date: 2009/01/21(水) 18:32   No:27350     
Title: Re:ただいまスーパーマリオブラザーズぽいものを    
いや、だからC言語の基本勉強しましょうよ。

> if( 200<=PlayerX<=240 && PlayerY==355 )

範囲を書きたいのなら

if (200<= PlayerX && PlayerX<=240 && PlayerY==355 )

だよ。


45ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(50,675ポイント)   Date: 2009/01/21(水) 18:50   No:27367     
Title: Re:ただいまスーパーマリオブラザーズぽいものを    
質問の前にまずコンパイルしてみてください。
通らない→質問
ではなく、
通らない→どこの行で違っているのか→どう違うのかを自分なりに調べる

これをやらないとなかなか身にならないですよ。


77ポイント を手に入れた。

Name: ひよこ  ..中級者(9,869ポイント)   Date: 2009/01/21(水) 18:57   No:27370     
Title: Re:ただいまスーパーマリオブラザーズぽいものを    
おちるようにはなりましたが、処理が止まって→いきなり落下
これをゆっくりおとしていくにはどうすればいいでしょうか?
ソースはif( 200<=PlayerX<=240 && PlayerY==355 ){PlayerY = 355 ;JumpPower = -1 ;}から
if(200<= PlayerX && PlayerX<=240 && PlayerY==355 ) {for(PlayerY=355; PlayerY<=480;PlayerY-= 2);}
にしか変更していません。





119ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(50,819ポイント)   Date: 2009/01/21(水) 19:05   No:27373     
Title: Re:ただいまスーパーマリオブラザーズぽいものを    
理由はif文内で
PlayerY = 355 ;
としているからです。表示は変わらず、加速度だけ変化していってます


39ポイント を手に入れた。

Name: Mist  ..熟練のプログラマー(43,939ポイント)   Date: 2009/01/21(水) 19:07   No:27374     
Title: Re:ただいまスーパーマリオブラザーズぽいものを    
> for(PlayerY=355; PlayerY<=480;PlayerY-= 2)

この式理解出来てますか?
「PlayerYを355から始めて、PlayerYが480以下ならループを継続して、1ループごとにPlayerYから2を引く」

これはひよこさんが意図するものと合っていますか?


前にも言いましたがC言語の基礎を勉強して、元のプログラムがどのように処理しているのかをきちんと理解してからでないと、改造するのは無理です。
耳に痛い意見は聞こえない人っぽいけど。


19ポイント を手に入れた。

Name: ひよこ  ..中級者(9,902ポイント)   Date: 2009/01/21(水) 19:16   No:27375 解決!     
Title: Re:ただいまスーパーマリオブラザーズぽいものを    
わかりました。1度勉強してきます。
答えてくださったみなさんありがとうございます。


33ポイント を手に入れた。

Name: s-rush  ..上級者(16,633ポイント)   Date: 2009/01/21(水) 19:27   No:27377     
Title: Re:ただいまスーパーマリオブラザーズぽいものを    
見た感じ、あまり基本的なことを理解していないのではないですか??
という私もまだまだ未熟ですが^^;

スーパーマリオブラザーズっぽいゲームを作っていらっしゃるようですが、
まだ知識的にも手を出すのは早いような気がします。

今までひよこさんがどれだけ勉強してきたのかは分からないですが、
もうちょっと基本的なことをしっかりマスターしたうえで
ゲームを作るようにされた方がいいと思いますよ。

参考書に書かれているような課題からまず始めてみてはいかがでしょう?

前々から見ていて少し気になったので、一言だけ言わせていただきました。


258ポイント を手に入れた。



Name: a  ..ぴよぴよ(40ポイント)   Date: 2009/01/18(日) 17:08   No:27058       
Title: 無題    
コンパイルしようとするとメモ帳が開くんですけど・・・
OSはVista preでボーランドC++使ってます。


40ポイント を手に入れた。


Name: lbfuvab  ..中級者(14,831ポイント)   Date: 2009/01/18(日) 17:41   No:27061     
Title: Re:無題    
状況がさっぱり掴めないのでもう少し詳しくお願いします。


32ポイント を手に入れた。

Name: a  ..ぴよぴよ(181ポイント)   Date: 2009/01/18(日) 18:04   No:27064     
Title: Re:無題    
すいません。
最近C言語を勉強しようと、いろいろサイトなどを見に行ったりしてるんですが、
まだプログラムなどを作ったことがなかったので、「簡単なプログラムをまずは試しにやってみよう。」
と思い、サイトの説明などを見てソースをメモ帳にコピペして名前を「test.c」ファイルの種類を「すべてのファイル」で保存しました。

そしてコマンドプロンプトでコンパイラしようと思ったのですが、
サイトの説明通りに進めていっても、最終的にメモ帳が開いてしまいます。


言いたいこと
 Cファイルと拡張子がなっているのにメモ帳で開ける。


141ポイント を手に入れた。

Name: jag  ..ぴよぴよ(720ポイント)   Date: 2009/01/18(日) 18:14   No:27065     
Title: Re:無題    
拡張子が.cでも中身はテキストですからメモ帳でも開けるのは当然だと思います。
コンパイルについては詳しくないですが、windowsのコマンドプロンプトではCのコンパイルはできないんじゃないでしょうか。
別にコンパイラを用意する必要があるかと。
僕はgccを使ってコンパイルしています。


125ポイント を手に入れた。

Name: a  ..ぴよぴよ(263ポイント)   Date: 2009/01/18(日) 18:26   No:27066     
Title: Re:    
わかりました。
ほかのコンパイラ使おうと思います。
ありがとうございましたm(_ _)m


2倍のポイントを手に入れた! 82ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(954,946ポイント)   Date: 2009/01/18(日) 18:29   No:27067     
Title: Re:無題    
それはコンパイルしようとしてるんじゃなく、単にコマンド欄にファイル名書いただけだから、
関連付けされているメモ帳が起動したんじゃないでしょうか?

どういうコマンドかよく覚えてないですが、確かbcc32だったと思います。

bcc32 ファイル名

と入力していますか?ファイル名だけ入力していませんか?
メモ帳でプログラムを書くのは結構面倒ですよ。
秀丸使うとかするといいと思います。
VisualStudioとか無料で配布されているので、そちら利用してはどうでしょう?

VisualC++というやつをインストールしてみてください。

http://www.microsoft.com/japan/msdn/vstudio/Express/

なお、
コンパイルとはプログラムコードを機械語に翻訳する作業のことで、
コンパイラとはコンパイルを行うソフトのことです。


155ポイント を手に入れた。

Name: non  ..プログラマー(30,679ポイント)   Date: 2009/01/18(日) 19:45   No:27077     
Title: Re:無題    
Borland C++ 5.5 を使うなら
こちらのHPから
http://homepage3.nifty.com/aokura/
「C言語を始めよう」という開発環境ソフトをダウンロードすることを
お勧めします。
特に初心者の方は使いやすいと思います。
コマンドコマンドを打たなくて良いし、プロジェクトファイルも作らなくて良い。




91ポイント を手に入れた。

Name: a  ..ぴよぴよ(410ポイント)   Date: 2009/01/18(日) 20:23   No:27084     
Title: Re:無題    
VisualC++というのをインストロールしようとしたのですが、
インストロールに40分ぐらいかかって、その後に、「今すぐ再起動します」と「後で再起動します」
というウィンドウが出て、今すぐ再起動しますを選んだんですけど
プログラムが見つかりません><。

どうしたらいいでしょうか。


147ポイント を手に入れた。

Name: kazuoni [URL]  ..熟練のプログラマー(49,925ポイント)   Date: 2009/01/18(日) 20:28   No:27086     
Title: Re:無題    
検索できませんか?^^;
visualって入力しただけで普通はヒットするような気がするのですが。
あとインストールですよね^^;


43ポイント を手に入れた。

Name: non  ..プログラマー(30,854ポイント)   Date: 2009/01/18(日) 20:33   No:27090     
Title: Re:無題    
>プログラムが見つかりません><。

再起動はもちろんすると思いますが・・・
何のプログラムが見つからないのですか?

どうしてもうまくいかないなら、CDに1回落とした方がいいけどね。
雑誌の付録探すとか。



70ポイント を落としてしまった。

Name: a  ..ぴよぴよ(421ポイント)   Date: 2009/01/18(日) 20:54   No:27093     
Title: Re:無題    
もう一度ダウンロードしてみます。

11ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(955,270ポイント)   Date: 2009/01/18(日) 21:41   No:27094     
Title: Re:無題    
インストールしたVisualC++をどこから起動したらいいかわからないってことじゃないでしょうか?
それなら全てのプログラムから見つけられるはずです。



66ポイント を手に入れた。

Name: a  ..ぴよぴよ(473ポイント)   Date: 2009/01/20(火) 22:36   No:27245     
Title: Re:無題    
VisualC++がすべてのプログラムの中にありません><。
ちゃんと再起動したのになんででしょう?


2倍のポイントを手に入れた! 52ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(958,489ポイント)   Date: 2009/01/20(火) 23:00   No:27247     
Title: Re:無題    
正常にインストールしたなら全てのプログラムの中にあるはずです。
Microsoft Visual C++
というのがあるはずです。
XPなど、項目が増えすぎて画面内に表示できていないならいらない項目を削除するとか、
名前順で表示させるなどして見つけてください。

それでもないなら正常にインストール出来ていないと思いますので、再度インストールしてみてください。


110ポイント を手に入れた。

Name: a  ..ぴよぴよ(497ポイント)   Date: 2009/01/20(火) 23:23   No:27248     
Title: Re:無題    
再インストールしたらできました^^

このあとはどうすれば?


24ポイント を手に入れた。

Name: Dixq (管理人) [URL]  ..伝説なるハッカー(960,586ポイント)   Date: 2009/01/21(水) 00:05   No:27257     
Title: Re:無題    
まずは何をしたいんでしょう?

11ポイント を手に入れた。

Name: a  ..ぴよぴよ(506ポイント)   Date: 2009/01/21(水) 17:19   No:27320     
Title: Re:無題    
とりあえず練習でもしたいんですが、
Vistaで使う場合は何か設定しておくことがあると聞いたのですが?


9ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(964,188ポイント)   Date: 2009/01/21(水) 17:28   No:27325     
Title: Re:無題    
Vistaでも特に設定の必要は無いと思いますが、
やりたいことによってはVistaに限らず設定が必要です。

まず完全に入門レベルなのでしたら
「C言語 入門」と検索して出てくる参考サイトを参考にしながら
ひたすらプログラムを書いてはコンパイルし、
色々得た知識を元に自分でプログラム書いて勉強していくことになるでしょう。


104ポイント を手に入れた。

Name: a  ..ぴよぴよ(522ポイント)   Date: 2009/01/21(水) 17:40   No:27329     
Title: Re:無題    
わかりました^^

ですがコンパイルしようとすると、エラーが出ます。
画像を貼ります。

http://www.uploader.jp/user/1222/images/1222_uljp00005.jpg


16ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(964,499ポイント)   Date: 2009/01/21(水) 17:45   No:27331     
Title: Re:無題    
普通にプロジェクトを作ってコンパイルしてはどうでしょう?

http://homepage3.nifty.com/ishidate/vcpp.htm

なお、トピックにはわかりやすい名前を付けて下さい。


40ポイント を手に入れた。

Name: a  ..ぴよぴよ(537ポイント)   Date: 2009/01/21(水) 17:57   No:27333     
Title: Re:無題    
わかりました。
色々ありがとうございました^^


15ポイント を手に入れた。

Name: YuO  ..プログラマー(27,894ポイント)   Date: 2009/01/21(水) 18:01   No:27334     
Title: Re:無題    
えーっと,Program Filesの下に保存するようなことはやめることが無難です。
昇格しないと書き込むことがそもそもできません。
# というか,どうやってtest.cを保存したのかが疑問……。

自分のドキュメントの下にプログラム用のフォルダを作って,そこにファイルを保存してください。
次に,エクスプローラで上記のフォルダをシフトを押しながら右クリック→パスとしてコピーしておき,
Visual Studio 2008 コマンド プロンプトを開きます。
さらに,cd と入力後,先にクリップボードに保存しておいたパスを貼り付け,Enterを押します。
# コマンドプロンプトのアイコンクリック→編集→貼り付け

これで,コンパイルができるはずです。


158ポイント を手に入れた。

Name: non  ..プログラマー(31,745ポイント)   Date: 2009/01/21(水) 18:15   No:27339     
Title: Re:無題    
VisualC++っていりいろできるから、却って初心者にはわかりにくいですよね。
BC++を勧めたけど、VC++がよいなら、とりあえず次のようにやってみましょう。
1.VC++を起動します。
2.ファイル−新規作成−プロジェクト
3.空のCLRプロジェクトを選択し、プロジェクト名に例えば EX1 と入力する。
  自動的にソリューション名も EX1になる。OKを押す
4.左端のソースファイルの上で右クリックし、追加−新しい項目を選ぶ。
5.カテゴリのコードを選び、テンプレートのC++ファイル選ぶ。ファイル名に Hello と入力。
  追加ボタンを押す
6.プログラムを入力する。試しに次のように入力。

#include <stdio.h>
int main(void)
{
printf("Hello\n");
return 0;
}

7.デバッグ−デバッグなしで開始をクリック。
8.自動的にコンパイル、リンクがされて、エラーがなければ、DOS窓が開いて
  Helloと表示されるはず。


ここまでできますか?



280ポイント を手に入れた。

Name: non  ..プログラマー(31,765ポイント)   Date: 2009/01/21(水) 18:17   No:27341     
Title: Re:無題    
3.のとき保存場所を、入れてください。


20ポイント を手に入れた。

Name: a  ..ぴよぴよ(545ポイント)   Date: 2009/01/21(水) 18:25   No:27347     
Title: Re:無題    
こうでました

8ポイント を手に入れた。

Name: non  ..プログラマー(31,816ポイント)   Date: 2009/01/21(水) 18:28   No:27349     
Title: Re:無題    
>3.空のCLRプロジェクトを選択し、プロジェクト名に例えば EX1 と入力する。

空のCLRといってますが・・・
ex2で再度作ってみてください。


51ポイント を手に入れた。

Name: a  ..ぴよぴよ(560ポイント)   Date: 2009/01/21(水) 18:34   No:27352     
Title: Re:無題    
できました。
これでいいですか?


15ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(964,903ポイント)   Date: 2009/01/21(水) 18:35   No:27354     
Title: Re:無題    
プロジェクトを作るとき「空のプロジェクト」ってチェックボックスにチェックが入ってないようです。

27ポイント を手に入れた。

Name: a  ..ぴよぴよ(584ポイント)   Date: 2009/01/21(水) 18:36   No:27355     
Title: Re:無題    
できてませんか?
空のプロジェクトでやりましたが


24ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(965,028ポイント)   Date: 2009/01/21(水) 18:40   No:27359     
Title: Re:無題    
同時に投稿したようです。
それで出来てますよ。


13ポイント を手に入れた。

Name: non  ..プログラマー(31,911ポイント)   Date: 2009/01/21(水) 18:40   No:27360     
Title: Re:無題    
それでいいです。それでは、後は、同じようにプロジェクトを作って試していくか、
ソースコードの部分を書き直すか、ソリューションのHello.cppを削除して、新しい
ソースファイルを作って入力するか、お好みで勉強していってください。


95ポイント を手に入れた。

Name: a  ..ぴよぴよ(590ポイント)   Date: 2009/01/21(水) 18:42   No:27361 解決!     
Title: Re:無題    
はい。
わかりました。

色々ありがとうございました^^


6ポイント を手に入れた。



Name: みかんのかわ  ..ぴよぴよ(570ポイント)   Date: 2009/01/21(水) 17:29   No:27326       
Title: 無題    
敵の行動パターンとして∞(8の字運動?)の動きを作ろうと考えています。
∞の中心からスタートし、円運動→1周したらy座標の動きを変えて再び円運動という流れにしようと考えています。
今円運動を実装するところまでできたのですが、1周した際に上手く角度を変える事
ができません。
まず一週したという条件をx,y座標でとろうとするとうまくできません。
通るときと通らないときがあるため、他の方法をさがそうと思うのですが思い付きません。
(このようなかんじで→if(enemy_x == centerX && enemy_y == centerY))
(1周する時間をはかり、その時間が来たら、という条件とかでもよいのかもしれませんが…)
次に、一周した時点でy座標を変えるところがよくわかっていません。
以下ソースの一部です。
よろしくお願いします。

// 円運動
float enemy_x = initX +
radius*cos( enemyAngleSpeed*time );

float enemy_y =initY +
radius*sin( enemyAngleSpeed*time );


333ポイント を手に入れた。


Name: Dixq (管理人)  ..伝説なるハッカー(964,202ポイント)   Date: 2009/01/21(水) 17:31   No:27327     
Title: Re:無題    
Xが1周期の間にYが2周期単振動したらいいのではないでしょうか?

14ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(963,972ポイント)   Date: 2009/01/21(水) 17:37   No:27328     
Title: Re:無題    
DXライブラリのサンプルプログラムです。
#include "DxLib.h"


#include <math.h>

#define PI2 (3.1415926*2)

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化

int t=0;
int x,y;

while(ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
//↑メッセージ処理   ↑画面をクリア       ↑ESCが押されていない

x = cos(PI2/120*(t%120))*200 +320;
y = sin(PI2/ 60*(t% 60))*100 +240;

DrawCircle(x,y,5,GetColor(255,255,255),TRUE);

t++;
ScreenFlip();
}

DxLib_End();
return 0;
}


230ポイント を落としてしまった。

Name: Dixq (管理人)  ..伝説なるハッカー(964,459ポイント)   Date: 2009/01/21(水) 17:43   No:27330     
Title: Re:無題    
それともこんな感じでしょうか?

#include "DxLib.h"

#include <math.h>

#define PI2 (3.1415926*2)

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化

int t=0;
int x,y;

while(ProcessMessage()==0 && ClearDrawScreen()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
//↑メッセージ処理   ↑画面をクリア       ↑ESCが押されていない

x = (t/120)%2 ? cos(PI2/120*(t%120))*100+320-100 : -cos(PI2/120*(t%120))*100+320+100;
y = sin(PI2/120*(t%120))*100 +240;

DrawCircle(x,y,5,GetColor(255,255,255),TRUE);

t++;
ScreenFlip();
}

DxLib_End();
return 0;
}
 



487ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(964,631ポイント)   Date: 2009/01/21(水) 17:51   No:27332     
Title: Re:無題    
上の計算何やってるかわからないかもしれないので、定義してみました。

#define T 120 //周期
#define XRANGE 100 //X方向の円の大きさ
#define YRANGE 100 //Y方向の円の大きさ

#define FDX 640 //横画面サイズ
#define FDY 480 //縦画面サイズ

x = (t/T)%2 ? cos(PI2/T*(t%T))*XRANGE+FDX/2-XRANGE : -cos(PI2/T*(t%T))*XRANGE+FDX/2+XRANGE;
y = sin(PI2/T*(t%T))*YRANGE +FDY/2;
 


なお、トピックにはわかりやすい名前を付けて下さい。


132ポイント を手に入れた。

Name: みかんのかわ  ..ぴよぴよ(754ポイント)   Date: 2009/01/21(水) 18:14   No:27337 解決!     
Title: Re:無題    
>Dixq (管理人)さま
すばやい解答をありがとうございます。
2番目のレスを実行してみたところ∞の形にうごきました。
良く考えてみると、y=cosθ,y=sinθ(sin,cosのグラフ)の動きを合わせて
(というと語弊がありそうですが…)
作っていたのを思い出しました。
yの運動量がxの運動量の半分になる(というか運動量が等しくないと)
ときれいな円運動でなくなるのだと波打った形になるのですね。
解決しました、ありがとうございました。
トピックの件失礼しました。今後気を付けたいと思います。


184ポイント を手に入れた。

Name: みかんのかわ  ..ぴよぴよ(910ポイント)   Date: 2009/01/21(水) 18:16   No:27340     
Title: Re:無題    
すみません。間違えました。

× 良く考えてみると、y=cosθ,y=sinθ(sin,cosのグラフ)の動きを合わせて
(というと語弊がありそうですが…)
作っていたのを思い出しました。

○ 良く考えてみると、円運動はy=cosθ,y=sinθ(sin,cosのグラフ)の動きを合わせて
(というと語弊がありそうですが…)
作っていたのを思い出しました。


それではありがとうございました。


156ポイント を手に入れた。

Name: Dixq (管理人)  ..伝説なるハッカー(964,719ポイント)   Date: 2009/01/21(水) 18:24   No:27346     
Title: Re:無題    
運動量(P = mvで表される速さに質量をかけた量)では無いと思いますが・・。

普通に周期を半分にしただけです。
水平方向に1回単振動している間に、
鉛直方向に2回単振動すれば、
∞のようになるということです。



88ポイント を手に入れた。




 
[ 1 , ... ]
 
 
管理者画面   RSS   + Powered By 21style +