2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【初心者】課題をクリアしていくスレ【講習会】

1 :名前は開発中のものです。:04/06/10 18:05 ID:VshiFFV8
ゲームに必要な要素を先生が出してくれます

その課題をクリアしていく講習会です

2 :先生:04/06/10 18:07 ID:4pS/jyZe
まずはコンパイラを用意しましょう。
用意できました?

3 :VshiFFV8 ◆g28oS.E2zA :04/06/10 18:08 ID:VshiFFV8
IDをコテにしてみます

4 :受験生 ◆3VUXqvbfSY :04/06/10 23:09 ID:aWWFz+nO
言語が解んなきゃ、出しようがないが…

C++ > ウィンドウを作ってみましょう。
VS.NET +VB > ビットマップでも読んでみましょう。
JAVA > …微妙…

5 :名前は開発中のものです。:04/06/11 00:07 ID:RD6vZgkI
まずツクールXPを買え

6 :名前は開発中のものです。:04/06/11 00:13 ID:Kv39UQxa
HSPで十分

7 :名前は開発中のものです。:04/06/11 00:53 ID:Lftmabuj
HSPなんて使い物にならん
cygwinもしくはmingwでgccにしませう。
SDLを使えば2D表示、キー入力ぐらいは一瞬で出来るから
導入段階での難易度もいい感じだと思ふ。

8 :名前は開発中のものです。:04/06/11 09:27 ID:BVmwoDEe
>>7
言ってることは正論だと思うが、この板ではネタにしか見えん。

9 :名前は開発中のものです。:04/06/11 15:28 ID:9L7vxxOM
君望2関連
・「近日お伝えできると思います」的な表現が今月末頃か雑誌などに
・主人公は白陵の大学生。
・物語中期に主人公が事故で大怪我
・君望2のスタッフは基本的に前作と変わってないらしい
・慎二は大学のサークルの先輩として普通に出てくる。
・病院で文緒がからんでくる、天川はやっぱり死んでる。
・時期設定は君望2章の3年後。
・マブラヴはなかった事になってる
・君望2のヒロインは年下の幼なじみと同じサークルの女子大生。
・物語中盤でどっちかのヒロインが死ぬ構成らしい。
・君望2の発表がまだなのはオルタの発売日が決まらないから。

age(アージュ)新作 〜君が望む永遠2〜 Part10
http://ex5.2ch.net/test/read.cgi/shar/1054887959/




10 :生徒弐顎:04/06/12 18:19 ID:wgfVLhUX
先生!コンパイラの準備とウィンドウ表示までできました
次は何したらいいですか?

>>4
先輩!RADツールだとBMPの表示まではソース描かなくてよさそうな気がしますよ!いいんですか?
それとVS.NET +VBってVB.NETのことですか?

>>5
7月22日発売

>>6
もちろんです!HSP利用者も一緒に課題をクリアしていきまっしょい!

>>7
OpenGLみたいなものですか?

11 :名前は開発中のものです。:04/06/12 18:41 ID:g4kSpUbw
「何したらいいですか?」って、おまいは何がしたいんですか。
「ゲームが作りたい」だけじゃ漠然としすぎてる。

12 :生徒弐顎:04/06/12 19:35 ID:wgfVLhUX
>>11

>1 名前:名前は開発中のものです。 投稿日:04/06/10 18:05 ID:VshiFFV8
>ゲームに必要な要素を先生が出してくれます

>その課題をクリアしていく講習会です

このゲームって選べるの?
じゃあ、リアルタイムストラテジーでお願いします。
「ゲームが作りたい」ってのは暗黙の了解かもしれませんが誰も言ってないですよ。
適当なこと言わないでください。

13 :名前は開発中のものです。:04/06/12 19:57 ID:g4kSpUbw
「ゲームが作りたい」んじゃないの?
「ゲームは作りたくない」けど「ゲームに必要な要素」とやらをクリアしたいの?

何がしたいの?

14 :生徒弐顎:04/06/12 20:05 ID:wgfVLhUX
>>13
>>1に聞いてくださいよ(;´Д`)
あげてもない足を取られても対応に困りますよ
ゲームを作るのを見てるだけのスレだったら帰りますよ

15 :名前は開発中のものです。:04/06/12 20:09 ID:g4kSpUbw
>>14
喧嘩を売ってるわけじゃないのでごめんなさい。

「ゲームに必要な要素」が何を指しているのかさっぱりワカラネーと思ったもので。

16 :VshiFFV8 ◆g28oS.E2zA :04/06/12 20:10 ID:w+wQoi+K
目標は「最終的にゲームが作れるようになる」です

17 :名前は開発中のものです。:04/06/12 20:14 ID:g4kSpUbw
>>16
入り口はどこからですか?

18 :名前は開発中のものです。:04/06/12 20:15 ID:3RseVDDm
課題1
ツクールXPを買え


19 :名前は開発中のものです。:04/06/12 20:25 ID:FrFMdSS0
>>18
先生!そのソフトの発売日まで1カ月以上ありますが、どうしたらいいんでしょうか?

20 :名前は開発中のものです。:04/06/12 20:29 ID:g4kSpUbw
ツクールXPで一本作って、それを元にどんどん下に落としていくのはアリかも。
「ゲームに必要な要素」は、ツクールを解析してそれを実装することで体現できる。


21 :生徒弐顎:04/06/12 20:33 ID:thSusfHE
>>15
こちらこそごめんなさい
売り言葉に買い言葉で熱くなってたようです

>>1さん降臨するまで身動き取れないですね
ゲームに必要な要素といえば……、と考えるだけで1スレ使っちゃいそうです
コンパイラを用意させるっていうことはゲーム(プログラミング)に必要な要素ってことで
アルゴリズムとデータ構造あたりじゃないかと妄想

プログラムの文法や一般的なアルゴリズムまでは覚えても
ゲームとなると参考にできるものがかなり減りますし
「迷路の自動生成」、「3dマップの自動生成」、「倉庫番の自動解き」、「格闘ゲームの敵キャラAI」とか
これらは今思いついただけですけど、答えは一つじゃないものを皆でワイワイ解きつつ
先生がヒントをくれるスレだったらいいなぁとか期待してみるテスト

>>16
よく見たら>>1さんじゃないですか!
トリップがブシとかFFとかちょっと縁起でもない感じですけど

>>18
体験版は購入済み
スクリプトが熱いですね
ツクールでも課題スレができれば楽しいかも



書き込み制限待ちでどんどん長文になっていくorz



22 :VshiFFV8@1 ◆g28oS.E2zA :04/06/12 21:17 ID:w+wQoi+K
例えば
課題が「新規ウィンドウを開いて、画像を表示させる」であれば
自分の得意な言語(やりたい言語)で課題を無理やりにでもクリアする。
改善点を述べてもらい次の課題へ
(できない場合は先生にやさしくおしえてもらいましょう)

妄想してみました

23 :名前は開発中のものです。:04/06/12 22:32 ID:5RZLD90Q
要は段階的学習スレと同じってことですか。

24 :受験生 ◆3VUXqvbfSY :04/06/12 23:49 ID:g0Zkl09e
>>20
ツクールで作り始めると…
プログラミングに移行できずに、終わる予感。

25 :名前は開発中のものです。:04/06/13 00:55 ID:QEF1CnCV
>>24
目的が「ゲームを作ること」ならそれはそれで幸せな予感

26 :名前は開発中のものです。:04/06/13 00:59 ID:QEF1CnCV
まあジャンルは様々なので、共通項目からまったりと考えますか。

課題1、ゲーム作成に用いるプログラミング言語を決める

27 :名前は開発中のものです。:04/06/13 03:33 ID:T7mosLDP
ツクールでつくれないんなら
あきらめた方がいいよ

28 :生徒弐顎:04/06/13 15:45 ID:3gckKy9M
>>22
先生!はやく次にどうすればいいのか指示ください。
>>11君と同じ疑問はみんな持ってると思います!
ていうか一晩考えたのですがやっぱり>>11君はスレも読まずにケンカを売ったようにしか見えません!!

一応、>>1>>3>>22の中で「新規ウィンドウを開いて、画像を表示させる」をやりたいっぽいのは伝わってきましたが
先生役をやる気がないなら早めのカミングアウトをお願いします。
コンパイラを用意させるとかソースを提出させるとかアイデアはいくつかあがってますが
先生が反応しないとどうしようもないので。

29 :名前は開発中のものです。:04/06/13 16:04 ID:QEF1CnCV
>>1には
>ゲームに必要な要素を先生が出してくれます
とある。"出してくれます"なので先生役はやらないと思われ


30 :生徒弐顎:04/06/13 16:56 ID:3gckKy9M
失敬、先生は>>2氏でしたね。
先生!コンパイラの用意できましたよ。

31 :4 ◆3VUXqvbfSY :04/06/13 17:01 ID:QH1r5fl5
ん…ランダムを初期化して
ランダムを使い、1〜9までの数当てを作ってみましょう。

32 :生徒弐顎:04/06/13 20:20 ID:3gckKy9M
どこかで見たような課題ですね。
とりあえず言語はC/C++で問題ないですか?
採点のポイントをあらかじめ教えてくれるとやりやすいのですが。

33 :4:04/06/13 20:35 ID:QH1r5fl5
何でもOKですよ。
どの環境でも大差ないですから。

34 :名前は開発中のものです。:04/06/13 21:08 ID:UiqEecMu
うんこスレ発見

35 :生徒A:04/06/14 12:48 ID:Ki7OHh6M
>>31 これでどうですか?一応C言語です

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

int main(void){
int num,endflag=0;
srand((unsigned)time( NULL ));
while(endflag==0){
printf("数値を入力してください。\n");scanf("%d",&num);
if(num == rand()%10){printf("正解です。\n");endflag=1;}
else if(num>rand()%10){printf("もっと小さいです\n");}
else{printf("もっと大きいです\n");}
}
return 0;

}

36 :4 ◆3VUXqvbfSY :04/06/14 15:21 ID:6UsS7uqF
多分OKです。
今携帯から何で、確認できませんがw

ただし。randomに同様な確からしさを求めるならば、rand()*10/RAND_MAXの方が良いでしょう。
rand()%10だと…帰ってきた値とrandが返す最大値の関係が無視される事となり、従って、返す値が同様に確からしいかを確認できなくなります。

37 :名前は開発中のものです。:04/06/14 16:42 ID:9xiGisv8
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
I,N,F:Integer;
begin
Randomize;
I := Random(9);
Writeln('数字を入力してください');
while F = 0 do
try Readln(N);
if N = I then
begin
Writeln('正解です。Enterを押せば終了します。');
Readln; F := 1;
end else
if N > I then Writeln('もっと小さいです')
else
if N < I then Writeln('もっと大きいです');
Except
Writeln('数字を入力してください');
end;
end.
こんなんでどうでしょう

38 :名前は開発中のものです。:04/06/14 16:44 ID:9xiGisv8
uses
SysUtils;
ここは不要でした

39 :4 ◆3VUXqvbfSY :04/06/14 16:57 ID:6UsS7uqF
やば…
>>35
二回ランダム使ってるよ…、ていうか、当てようがねぇ…
何か変数用意して、一回代入したら、もうランダム使っちゃダメだよ。毎回違う値がでるw

>>38
出来てますよ…うん。

40 :名前は開発中のものです。:04/06/14 18:35 ID:wh7EkBpp
君たち勉強不足だよ

41 :名前は開発中のものです。:04/06/14 19:01 ID:EUCVAi2R
ネット上の解説サイトより勉強するには本のほうがわかりやすいでしょうか?


42 :名前は開発中のものです。:04/06/14 19:10 ID:FPxTvBCd
>>41
図書館とかに良書が無いか?
正直、2Dならともかく3Dを作りたいなら本は必須だろ。

43 :名前は開発中のものです。:04/06/14 21:10 ID:yg+Hb9+4
<body><input id=t type=text><input id=b type=button value=決 onClick=ans()><script>
var a = (Math.random() * 9 | 0)+1;
function ans(){o = document.getElementById('t').value;if(o==a){window.alert('正解');location.reload();}
o>a?window.alert('大'):o<a?window.alert('小'):0;}
</script></body>

44 :名前は開発中のものです。:04/06/14 21:47 ID:D7BWejst
どんなソフトを使った方がいいんでしょうか?

45 :4 ◆3VUXqvbfSY :04/06/14 23:53 ID:6UsS7uqF
>>35
凄く気になったんで、追記します。
何故time.hをインクルードしてるんですか?

46 :名前は開発中のものです。:04/06/15 00:16 ID:1cIbBCDp
>>45
randのシードに時間入れてるからじゃん
srand((unsigned)time( NULL )); ←この文で。

47 :4:04/06/15 00:39 ID:OmG1F0sQ
ごめん。俺がアホだった。
許して…


(^〜^)oO(酒は飲めども飲まれるな…酔って書くんじゃ無かった…)

48 :名前は開発中のものです。:04/06/15 02:39 ID:ZV1P5DyI
君たちレベル低いですよ

49 :生徒A:04/06/15 03:34 ID:9w200AiB
>>48 確かにレベルが低い事は認めます。だって、
未だにポインタ&構造体が良く理解できないんで

まあ、それは良いとして、4さんありがとうございます。
35から改良したソースを書いときます。

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

int main(void){
int num,endflag=0,ans;
srand((unsigned)time( NULL ));
ans=rand()*10/RAND_MAX;
while(endflag==0){
printf("数値を入力してください。\n");scanf("%d",&num);
if(num == ans){printf("正解です。\n");endflag=1;}
else if(num>ans){printf("もっと小さいです\n");}
else{printf("もっと大きいです\n");}
}
return 0;
}

50 :名前は開発中のものです。:04/06/15 11:35 ID:fWp+ET9z
>>49
そういうことじゃない。
お前が今日やったことを書き並べていくだけの自己満足スレが邪魔だと言ってるだけ。
レベルが低くて見たところで誰も得しないし、
挙句に態度も無茶苦茶悪い。
あんた何様のつもりだ。

51 :名前は開発中のものです。:04/06/15 13:15 ID:2D7N5vK5
50はこのスレに来なくていいよ

52 :名前は開発中のものです。:04/06/15 15:08 ID:VVOVJCXy
まぁ、実は云うとこのスレは重複スレであって

  【目標ない奴】おまいらに課題を与える。【集まれ】
  http://pc5.2ch.net/test/read.cgi/gamedev/1026148930/l50

無難に考えれば、上記スレに誘導ということになるわけだが
>>50のような排他厨房が出現して余計な真似をしやがるので
ここはしばらく様子を見守るとするか。


53 :名前は開発中のものです。:04/06/15 15:12 ID:VVOVJCXy
ただ望むべくは
このスレの利用者がローカルルールに則って自発的に
http://pc5.2ch.net/test/read.cgi/gamedev/1026148930/l50
に移動するような流れを作り出すことである。君等の善意に期待しよう。

54 :名前は開発中のものです。:04/06/15 15:26 ID:fJJvgQKc
旧課題スレはリレーで作品を作るスレ
このスレは先生がお題を出して採点するスレ

そこは間違えるなよ

55 :名前は開発中のものです。:04/06/15 15:32 ID:VVOVJCXy
あーそうなの。微妙なんだね。

56 :名前は開発中のものです。:04/06/15 15:34 ID:VVOVJCXy
ちなみに、俺は旧スレでソースを出していた者だが
別にリレーするスレではなかったので、その意味での
拘束条件はないと思っていい。


57 :名前は開発中のものです。:04/06/15 15:53 ID:jTaFbPw8
>>52-53
http://pc5.2ch.net/test/read.cgi/gamedev/1026148930/l50

おー、そんな良スレが既にあったんですね。
>>1ではありませんが、よく見てなかったです。ゴメンなさい。
個人的にはスレ乱立は本意ではないですし、このスレでなければ
困るという理由も無いんで、移動に一票入れときます。

今、あちらのスレのログを読んでます。とても勉強になります。

58 :名前は開発中のものです。:04/06/15 15:58 ID:VVOVJCXy
>>57
ガンガレー

59 :名前は開発中のものです。:04/06/15 16:47 ID:fJJvgQKc
こういうスレが好みならいっぱいあるぞ
もう1つぐらいあった気がする

>>1も行方不明だし移動しない理由もないな

ズブの初心者がゲーム作れるまで勉強するスレ
http://pc5.2ch.net/test/read.cgi/gamedev/1005132370/
■自主製作ゲーム:開発状況報告スレVer0.3■
http://pc5.2ch.net/test/read.cgi/gamedev/1071809112/
初心者専用スレ「シミュレーションゲーム」を作らない?
http://pc5.2ch.net/test/read.cgi/gamedev/1079745509/
初心者専用スレ「パックマン」風ゲーム作らない?
http://pc5.2ch.net/test/read.cgi/gamedev/1014326802/
STGを最初からみんなで作るスレ
http://pc5.2ch.net/test/read.cgi/gamedev/1014709311/
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 【作れば?】
http://pc5.2ch.net/test/read.cgi/gamedev/1051110669/

60 :名前は開発中のものです。:04/06/15 16:52 ID:fJJvgQKc
あまりレスがつかなかったスレは貼らなかったが実際はもっと乱立してる
これ以上の乱立を防ぐためにもローカルルールで告知しておいたほうがいいんじゃないか?

61 :名前は開発中のものです。:04/06/15 17:29 ID:dz0re3XK
>>59
thx

62 :61:04/06/15 17:32 ID:dz0re3XK
途中で送信しちゃった。えと、向こうのスレでガンバリまつ!

63 :名前は開発中のものです。:04/06/15 17:36 ID:DDwACq7t
参加します、HSPだけど・・・

suuzi=1
kazu=0
randomize
rnd kazu,10
mes "数値を入力してください。"
*main
input suuzi
button "よし!",*hantei
stop
*hantei
cls
if 9<suuzi: mes "1から9までですよ。"goto*main
if 1>suuzi: mes "1から9までですよ。"goto*main
if kazu>suuzi:mes"もっと大きいよ。"goto*main
if kazu<suuzi:mes"もっと小さいよ。"goto*main
if kazu=suuzi:mes"あったりー!"

64 :4 ◆3VUXqvbfSY :04/06/15 20:16 ID:OmG1F0sQ
>>63
はい、正解です。



さて…次の課題は、素数です。
ゲームとは直接関係有りませんが、プログラムをやるなら、必ず一度は作るらしい!そんな課題です。

どの方法(アルゴリズム)を使っても構いません。
また、速度を追求させもしません。
ただし、速くしたいなら、どんどん高速化してみると楽しいですよ。

とりあえず、小さい方から1000個の素数を見つけるプログラムを作成してください。

65 :63 ◆xdaKt6k1XI :04/06/15 20:22 ID:DDwACq7t
>>64
とりあえず素数について調べてきます。

66 :63 ◆xdaKt6k1XI :04/06/15 23:24 ID:DDwACq7t
kuri=2
wara=2;割られる数
a=0
hyozi=0
*reset
waru=2;割る数
kota=0;答え
hante=0;判定
*sosu1000
if kuri-2<1 : goto*owari
REPEAT kuri
kota=wara/waru
if kota!1 : hante+1,break
waru+1
LOOP
*owari

if hante=0 : wara+1,kuri+1,goto*reset
hyozi+1
mes ""+wara+""
if hyozi=1000 : stop
wara+1
goto*reset

ここまで作ってたらなんだか自分で何作ってんのかわからなくなりますた。
作り直します。

67 :生徒A:04/06/15 23:36 ID:9w200AiB
>50

僕の発言と態度がそんなに誤解を与えたなら謝りたいと思います。
すいませんでした。

素数ですか…、そういえば「エラトステネスのふるい」のアルゴリズム
が有名ですよね

高校の時の先生におおまかな考え方だけ教えてもらったきりですが

68 :生徒A:04/06/16 00:25 ID:aSS5sxrF
とりあえず、エラトステネスのふるいを使わないで考えたプログラムです

/*1より大きい整数のうち,1と自分自身以外の整数では
割り切れないような整数を素数というらしい*/

#include<stdio.h>

int main(void)

{
/*小さい方から1000個の素数を見つけるプログラム*/
int count=0,chknum;
int i,j;

/*素数かどうかを判断するには、2からその数値のすぐ下まで全て割り切れないかどうかを判断する*/

for(j=0;count<1000;j++){
chknum=j;
for(i=2;i<=chknum;i++){
if(i==chknum){/* この条件が当てはまれば素数になる */
count++;/*カウンタをインクリメント*/
printf(" %d(%d個目発見!)",chknum,count);
}
else if(chknum%i == 0){ /* i!=chknum の状態で 割り切れるなら */
/*この条件が成り立つ時は、素数じゃないので*/
break;/*内側のループのみ脱出する*/
}
}
}
return (0);
}

69 :名前は開発中のものです。:04/06/16 01:31 ID:E0t6wJPT
>>68
動作上は問題ないけど、ヘンなクセがあって読みにくいね。
先生のお手本キボンヌ。

70 :名前は開発中のものです。:04/06/16 01:41 ID:qW9lKpJw
>>68
間違ってる希ガス。
1000までの数の中の素数を上げるんじゃないですよん。
変数chknumが必要かもう一度考え直してみなはれ。(こっちのが見やすいかもしんないけど)

71 :4 ◆3VUXqvbfSY :04/06/16 08:42 ID:XOSz7qTz
模範解答は用意しましたよ。
でも、発表は答えが出そろってからにします。

72 :名前は開発中のものです。:04/06/16 09:07 ID:E0t6wJPT
>>70
最初、オレもそう思ったけど、
問題には、小さい方から1000個って書いてある悪感。

for(j=0;count<1000;j++){
これが紛らわしい。

73 :名前は開発中のものです。:04/06/16 14:41 ID:Zcc4AjKX

              ∩
             | |
             | |
       ∧_∧  | |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ( ´Д`)//  < 先生!今から参加していいですか?
      /     /    \_______________
     / /|    /
  __| | .|     | __
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||

数当てゲーム
http://gamdev.org/up/img/706.zip

74 :生徒(C++):04/06/16 15:06 ID:KVxQtTo1
先生、標準講座C++という本を読み終わった程度ですが参加してみます。
でもアルゴリズムは全然知らないので、総当りです。

#include<iostream>
#include<list>
using namespace std;
int main()
{//総当りで素数を探す
 list<int> prime;//素数
 int num=2;//走査する値
 while(1)
 {
  for(list<int>::iterator itr=prime.begin();itr!=prime.end();itr++)
   if(num%(*itr)==0)break;//素数以外はループを抜ける
  if(itr==prime.end())prime.push_back(num);//素数は保存
  if(prime.size()==1000)break;//1000個目で終了
  num++;//値を1増やす
 }
 cout<<"1000個目の素数:"<<(*prime.rbegin())<<endl;
 return 0;
}


75 :4:04/06/16 15:59 ID:XOSz7qTz
参加は嬉しい限りですよね >>1さん
でもむしろ…先生役やりたい人誰か居ない?
激しく募集中です…

76 :名前は開発中のものです。:04/06/16 18:33 ID:Ls5cfn3b
<html><body><script>
function s(n){
for (i=2;i<=n/2;i++)if(n%i==0)return false;
return true;
}
o="2,3,";c=0;
for(j=4;;j++){
if (s(j)){c++;o+=j+',';}
if (c>999)break;
}
document.write(o);
</script></body></html>

77 :63 ◆xdaKt6k1XI :04/06/16 20:42 ID:KZI0wz/S
挫折しますた・・・orz

78 :名前は開発中のものです。:04/06/16 22:21 ID:uyNGxE8j
>>77
ttp://www.ese.yamanashi.ac.jp/~morisawa/sc2001/Eratosthenes.html


79 :名前は開発中のものです。:04/06/16 23:54 ID:E0t6wJPT
>>77
どこでどう挫折したのか書いてみましょうよ。

80 :名前は開発中のものです。:04/06/17 00:05 ID:AAkEHKib
よし、俺も素数のと数当てやってみる

81 :名前は開発中のものです。:04/06/17 00:44 ID:AAkEHKib
#include <stdio.h>
#include <math.h>

int IsPrime(int);

int main()
{
int i, n = 1;
printf(" 2 ");
for(i = 0; i < 999; i++){
for(n+=2; IsPrime(n) == 0; n+=2);
printf("%4d ", n);
}
return 0;
}

int IsPrime(int n)
{
int i;
if(n % 2 == 0 && n != 2) return 0;
for(i = 3; i <= sqrt(n); i += 2)
if(n % i == 0) return 0;
return 1;
}

2を出すべきか出さざるべきか小一時間悩んだ…

82 :63 ◆xdaKt6k1XI :04/06/17 07:40 ID:wIlIrMhO
>>78
結構難しそうっすね。
>>79
2から自分自身のまで順番に割ってって計算結果が1以外だったら自分自身の数を1足してやりなおして、計算結果が1だけだったらその数を表示するってようにしたんですが。

83 :名前は開発中のものです。:04/06/17 10:39 ID:qLkBm+a6
その考え方で問題ないか確認してみる。...のあとの数字は余り。

5/1 = 5 ... 0
5/2 = 2 ... 1
5/3 = 1 ... 2
5/4 = 1 ... 1
5/5 = 1 ... 0

6/1 = 6 ... 0
6/2 = 3 ... 0
6/3 = 2 ... 0
6/4 = 1 ... 2
6/5 = 1 ... 1
6/6 = 1 ... 0

84 :63 ◆xdaKt6k1XI :04/06/18 15:04 ID:uMGX0XjB
>>83
駄目でしたか・・・・もう一度がんばります!

85 :名前は開発中のものです。:04/06/19 14:57 ID:W8craWnM
#include <stdio.h>
void main()
{
unsigned long cun;
int a,i;
printf("2\n");
for(i=3;i<=1000;i+=2){
for(a=3;a<i;a+=2){
cun++;
if(i%a==0)
break;
}
if(i==a)
printf("%d\n");
}
}
暇なんで参加

86 :85:04/06/19 14:58 ID:W8craWnM
unsigned long cun; とcun++;
は無視で <(_ _)>

87 :名前は開発中のものです。:04/06/19 17:01 ID:olZSV2kJ
>>85-86
Upするまえにテストしよ〜よ。
それから、問題文をちゃんと読むべし。

88 :生徒A:04/06/19 19:27 ID:GZf8LDr8
そういえば、新しい課題って無いの?


89 :名前は開発中のものです。:04/06/19 20:08 ID:hqj9xu9C
素数とかはロジックを考えるのは大切だけど、できてもあまり嬉しくないからなぁ。
かといって特定の分野に特化すると、それぞれの分野には初心者スレがあるし。
「適当なウィンドウを作成してsin波形を描画する」あたりはどう?


90 :4 ◆3VUXqvbfSY :04/06/19 21:47 ID:wn6hjF1m
良いねその課題!…ってチョットレベル上がり杉な…
…まあ良いか…
でもまずは、640*480のウィンドウに
(0,0)320*240の赤い四角を描いてください。


91 :4 ◆3VUXqvbfSY :04/06/19 22:17 ID:wn6hjF1m
前課題解答例

#include <stdio.h>

int Check_Prime(long n)//素数判定
{
long loops;
loops=1;
while(loops*loops < n)
{
if(loops>2)loops+=2;
else loops++;
if(n%loops==0)return 1;
}
return 0;
}

void main(void)
{
long loops=2,m=1;
printf("%ld %ld\n",m,loops);
while(m<2000)
{
m++;
printf("%ld %ld\n",m,loops);
}
if(loops>2)loops+=2;
else loops++;
}

92 :63 ◆xdaKt6k1XI :04/06/19 22:23 ID:D2QJG2Dd
素数は無理でしたが・・・
>>90の課題はできました。

WIDTH 640,480
COLOR 255
BOXF 320,240,1,0
stop

93 :63 ◆xdaKt6k1XI :04/06/19 22:24 ID:D2QJG2Dd
>>92
BOXF 320,240,1,0

BOXF 320,240,0,0
です。

94 :4:04/06/19 22:25 ID:wn6hjF1m
ミスった(汗。訂正
void main(void)
{
long loops=2,m=1;
printf("%ld %ld\n",m,loops);
while(loops<2000)
{
if(Check_Prime(loops)==0)
{
m++;
printf("%ld %ld\n",m,loops);
}
if(loops>2)loops+=2;
else loops++;
}
}

95 :生徒A:04/06/20 04:33 ID:9LoKJ5Oe
なんだか、構造体とかポインタとかWin32APIとかGDIとかメッセージループとか
難しすぎなんですけど…

できたには、できました。

#include "windows.h"
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow )
{
WNDCLASSEX wcex;HWND hWnd;MSG msg;
// ウィンドウクラス構造体を設定
wcex.cbSize = sizeof(WNDCLASSEX);wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;wcex.hInstance = hInstance;wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszMenuName = NULL;wcex.lpszClassName = "ModelApp";
wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
// ウインドウクラスを登録
RegisterClassEx(&wcex);
// ウインドウを作成
hWnd = CreateWindow(wcex.lpszClassName,
"640×480のウィンドウ上の(0,0)へ320×240の赤い四角を描く",
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,640,480,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);
// メッセージループ
while(GetMessage(&msg, NULL, 0, 0))
{TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;
}


96 :生徒A:04/06/20 04:33 ID:9LoKJ5Oe
// ウインドウプロシージャ
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hDC;PAINTSTRUCT ps;static HPEN hPen;static HBRUSH hBr;
RECT box;box.bottom =480;box.left =0;box.right =640;box.top =0;
// メッセージの種類に応じて処理を分岐
switch (message){
case WM_CREATE:hPen=CreatePen(PS_SOLID,1,RGB(255,0,0));hBr=CreateSolidBrush(0x00000000);
return 0;
case WM_PAINT:
hDC=BeginPaint(hWnd,&ps);SelectObject(hDC,hBr);FillRect(hDC,&box,hBr);
SelectObject(hDC,hPen);Rectangle(hDC,0,0,320,240);EndPaint(hWnd,&ps);return 0;
case WM_DESTROY:PostQuitMessage(0);return 0;
default:return DefWindowProc(hWnd, message, wParam, lParam);}
}



97 :生徒A:04/06/20 04:36 ID:9LoKJ5Oe
正直、4行で実現できるHSPがうらやましいと思った…

98 :名前は開発中のものです。:04/06/20 04:46 ID:l91pLvEB
ここはJavaでは参加できないですか?

99 :名前は開発中のものです。:04/06/20 07:05 ID:w0wGxy3B
>>98
問題ないと思いますよ

100 :名前は開発中のものです。:04/06/20 07:50 ID:NlSC2nfH
赤い四角
<html><body><script>
s='<body><div style="position:absolute;left:0px;top:0px;background-color:Red;width:320px;height:240;"></div></body>';
window.open('','','width=640,height=480').document.write(s);
</script></body></html>


101 :名前は開発中のものです。:04/06/20 07:51 ID:NlSC2nfH
SIN波
<html><body></div><script>
var a=[];
for(i=0;i<10000;i++)a[i]=0;
for(i=0;i<100;i++)a[(Math.sin(Math.PI/50*i)*50+50|0)*100+i]=1;
var s='<body><font face="MS ゴシック" style="font-size:4px;">';
for(i=0;i<100;i++){for(j=0;j<100;j++)s+=a[i*100+j]?'■':' ';s+='<br>';}
s+='</font></body>';
window.open('','','width=640,height=480').document.write(s);
</script></body></html>


102 :名前は開発中のものです。:04/06/20 11:15 ID:B7NIG/G/
画面を黒でクリアする方法ってこれでいいんですか?
void Clear(void)
{
SelectObject(hDC , GetStockObject(BLACK_BRUSH));
Rectangle(hDC , 0 , 0 , WIDTH , HEIGHT);
}

103 :名前は開発中のものです。:04/06/21 12:47 ID:X4sdLydq
>>102
イイともワルいともいえないというか、
ウィンドウを更新するとか必要だけど、まぁ、そんな感じ。

つーか、先生はどこだ?!

104 :4 ◆3VUXqvbfSY :04/06/21 13:24 ID:xh+2kWgx
ココw
…まあ、VCの人が出来てんだから、sinの課題も可能か…

sinの方の制作もどうぞ。

さて…みなさんに質問です。
これから、ゲーム制作を開始してみます。
次の課題は、インベーダーとテトリス
どちらがいいですか?

いや…どっちが基本的ですかね?
とりあえず、プログラムの特徴は

インベーダー:かなり基本的なシューティング。当たり判定とキー判定がネック。また、あの敵の大群を纏めて動かすのも結構めんどい。高速化も要るかも。

テトリス:かなり基本的なパズル。回転の処理、消しの判定、落ち判定がネック。とは言え、これ自体はさして大変ではない。インベーダーより楽に見えるが、向こうより単純な分、テスト回数が少なく、飽きるかもw

まあ、どちらも一気にはつくりませんw
方向性が決まったら、ボトムアップに作りましょうw

105 :名前は開発中のものです。:04/06/21 13:30 ID:Z9w22r4l
>>102
DCはグローバルで持ってるのか?引数で渡した方が良いぞ。

106 :名前は開発中のものです。:04/06/21 15:47 ID:6NF9APWD
どちらにせよソースが収まらない悪寒

107 :x≠先生かつx=生徒 ⇒ x=俺:04/06/21 18:09 ID:X+fe3iOx
HSP版
#include "hspext.as"

pos 0, 240
repeat 640
emsin sin, cnt\256
line cnt, 240+(sin*240/256)
loop
stop


108 :名前は開発中のものです。:04/06/21 19:41 ID:/2qctf8W
テトリスは専用スレがあるし、JavaScriptで7行に収まったりと、
ネタが出尽くしているので飽きてます。

109 :名前は開発中のものです。:04/06/21 19:57 ID:8Xx3uQUF
237 名前:名前は開発中のものです。[sage] 投稿日:03/09/21(日) 18:16 ID:vg0x9Gpj
>>227
http://www.excite.co.jp/world/url/body?wb_url=http%3A%2F%2Fwww.gamedev.net%
2Freference%2Fdesign%2Ffeatures%2Fmakegames%2Fpage2.asp&wb_lp=ENJA&wb_dis=2

テトリス→ブロック崩し→パックマン→スーパーマリオ→ギャラガ
がいいらしい

リンク先のスーパーマリオ2が違うゲーム(夢工場?)に見えるけどなんなんだろ


110 :名前は開発中のものです。:04/06/21 20:05 ID:B4V2NoLh
メッセージループを使う60fpsのゲームにして欲しい。
後々こっちのほうが役に立つと思う。

111 :生徒A:04/06/21 21:54 ID:jNWjDlXF
とりあえず、sinカーブの方を少し遅れたんですが、作ってみました。

一番先頭に#include<math.h>を付けたら、あとはキャプション以外は、ウィンドウプロシージャーしか違わないので
そこだけ書く事にしました。

// ウインドウプロシージャ
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hDC;PAINTSTRUCT ps;static HPEN hPen;static HBRUSH hBr;
RECT box;box.bottom =480;box.left =0;box.right =640;box.top =0;
int x=0,y,k=0; double rad=3.14159/180;
// メッセージの種類に応じて処理を分岐
switch (message){
case WM_CREATE:
hPen=CreatePen(PS_SOLID,1,RGB(255,0,0));hBr=CreateSolidBrush(0x00000000);
return 0;
case WM_PAINT:
hDC=BeginPaint(hWnd,&ps);SelectObject(hDC,hBr);FillRect(hDC,&box,hBr);
for(x=0;x<=640;x++){
y=(int)(sin((double)k*rad)*100.0+240.0);
x++; k++;
if(k>360)k=0;
SelectObject(hDC,hPen); SetPixel(hDC,x,y,RGB(255,0,0));
}
EndPaint(hWnd,&ps);
return 0;
case WM_DESTROY:PostQuitMessage(0);return 0;
default:return DefWindowProc(hWnd, message, wParam, lParam);}
}



112 :生徒A:04/06/21 21:57 ID:jNWjDlXF
私は、インベーダーの方が良いと思います。

113 :名前は開発中のものです。:04/06/21 22:10 ID:MJraUy6q
本当に一からやるんだったら、まだまだ基礎的なことはたくさんあるですよ。

o 描いた四角を横に動かし続ける
o 画面の端で跳ね返るようにする
o 2つの四角を描いてを横に動かし続ける(速度が違うようにする)
o 四角同士が衝突したら跳ね返るようにする
o 四角を斜めに動かす
o 斜めに跳ね返るようにする
o 丸を描く
o 丸同士を当てたら跳ね返るようにする(ビリヤードみたいなの)
o etc, etc, etc...

114 :名前は開発中のものです。:04/06/21 22:13 ID:MJraUy6q
あと、できればバイナリ付きソースをUPして欲しかったり…

115 :名前は開発中のものです。:04/06/21 22:17 ID:8Xx3uQUF
まとめページ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D
アップローダ
http://gamdev.org/up/

116 :名前は開発中のものです。:04/06/21 22:23 ID:Z9w22r4l
誰かsin関数くらい自前で用意して描画しろよ。

117 :生徒A:04/06/21 22:33 ID:jNWjDlXF
sin関数を自前で用意するとなると、テイラー級数展開?が必要になる気がしたんですが…

確か、こんな式だったような

sin(x) = x-(x^3/3!)+(x^5/5!)-(x^7/7!)+…

118 :名前は開発中のものです。:04/06/21 23:47 ID:8Xx3uQUF
赤い四角、Delphiです
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientWidth:=640;
ClientHeight:=480;
Canvas.Brush.Color:=clRed;
Canvas.FillRect(Rect(0,0,320,240));
end;

119 :名前は開発中のものです。:04/06/22 00:43 ID:z3uDPhKo
sin波形、Delphi
procedure TForm1.Button1Click(Sender: TObject);
var
 i: Integer;
begin
  ClientWidth:=640;
  ClientHeight:=480;
  Canvas.Pen.Color:=clRed;
  Canvas.MoveTo(0,240);
  for i:=0 to 627 do begin
    Canvas.LineTo(i, Trunc(sin(i/100)*100)+240);
  end;
end;

120 :4 ◆3VUXqvbfSY :04/06/22 06:00 ID:tegmloOZ
>>113
勿論、選んだ方の基礎からやっていきますから。大丈夫です。ただ、大まかな指針が欲しいだけで。

>>115
ワーイ、まとめページだ!ありがとう!


>>ALL
マジで、先生増やしてよ〜。僕一人じゃ不安だよ〜

121 :名前は開発中のものです。:04/06/22 08:07 ID:bOsE7Dq6
>>118-119
正解。

122 :名前は開発中のものです。:04/06/22 12:14 ID:vyNZUIcy
>>111
作ったペンとブラシは終了時に開放したほうがいいですよ。

123 :名前は開発中のものです。:04/06/22 13:59 ID:z3uDPhKo
階級制にしようぜ!

*問題に難易度設定
課題にも難易度が設定されていて大佐向け、中尉向けなどがある

*昇格資格
課題を一つクリアするたびに昇格
自分の階級より下の問題を解いても昇格しない(大佐は少尉向けの課題を解いても出世はなし)

*出題する権利
自分より2つ下向けの課題を出せる(大佐になれば少佐向けを出題できる)

*特別昇格
自分より格下の問題を解いた場合、通常は昇格しない
しかし、お手本になるようなすばらしい解答、解説をした場合は
昇格の対象となる
(上級職の人の任意か下級職の人の過半数の支持が目安)



こんな感じでどうよ
せっかくだからゲーム感覚でやろうじゃないかと設定してみた
ちょっと昇格条件が甘すぎる気もするけど
もちろん4 ◆3VUXqvbfSY氏や他の先生役の人はそのまま出題してくれるとありがたい

階級はこれがわかりやすくていい
http://www.special-warfare.net/data_base/102_military_unit/001_military_us/rank_01.html


124 :名前は開発中のものです。:04/06/22 15:06 ID:3E6K9gNw
階級みたいにポンポンと技術は上がらんからねぇ。
プログラミングの技術って、どちらかというと山登りみたいな感じだと思う。
準備(下積み)がほぼ大半を占めるけど、準備だけしてもだめで
登り方も知らないと駄目だし(変な登り方をすると途中でのたれ死ぬ)
なにより体力(根気)が必要。
どれをとっても「これだけやれば大丈夫」という基準が無い。

たまに天才がいて、Tシャツ短パンで一直線にエベレストに登頂したりするけど
そういうやつ以外は「大佐のくせにそんなことも知らないのかよ。プッ」って言われるのがオチかも。

125 :生徒BLUE@入隊希望:04/06/22 23:32 ID:ImuZbVzv
赤い四角の課題解きました
書き込み制限に引っ掛かりますのでのんびり貼り付けていきます
参考にしたのは猫でもわかるプログラミングとSTGを最初からみんなで作るスレです
TABやスペースをnbspに変換するツールって欲しい時にはなかなか出てこないですね
ム板でたまに見かけた記憶はあるのですが……、持ってる人いたらください
それでは貼り付け開始

// 課題 赤い四角
#include <windows.h>
#define WIDTH 640
#define HEIGHT 480
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
char szClassNme[] = "WINDOWCLASSNAME";
int DrawGr(HWND hWnd)
{
PAINTSTRUCT paint;
HDC hdc = BeginPaint(hWnd, &paint);
HPEN hPen, hOldPen;
RECT rt;
GetClientRect(hWnd, &rt);
hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
hOldPen = (HPEN)SelectObject(hdc, hPen);
HBRUSH hBrush = CreateSolidBrush( RGB(255, 0, 0));
SelectObject(hdc, hBrush);
Rectangle(hdc, 0, 0, 320, 240);
SelectObject(hdc, hBrush);
DeleteObject(hPen);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
EndPaint(hWnd, &paint);
return 0;
}

126 :名前は開発中のものです。:04/06/23 01:15 ID:4HGTxQki
怖いのは登山ルートが間違った状態で登っていることだ
行き先は崖だったり


127 :生徒BLUE@入隊希望:04/06/23 15:21 ID:G2RbfgcV
>>125の続き
//640x480ってひょっとしてクライアントウィンドウじゃなくてウィンドウのサイズでよかったですか?
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,LPSTR lpszCmdLine, int nCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASS myProg;
if (!hPreInst) {
myProg.style =CS_HREDRAW | CS_VREDRAW;
myProg.lpfnWndProc =WndProc;
myProg.cbClsExtra =0;
myProg.cbWndExtra =0;
myProg.hInstance =hInstance;
myProg.hIcon =NULL;
myProg.hCursor =LoadCursor(NULL, IDC_ARROW);
myProg.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
myProg.lpszMenuName =NULL;
myProg.lpszClassName =szClassNme;
if (!RegisterClass(&myProg))
return FALSE;
}
RECT rect; rect.top = 0; rect.left = 0; rect.right = WIDTH; rect.bottom = HEIGHT;
DWORD style=WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
AdjustWindowRect(&rect, style, FALSE); int width = rect.right - rect.left; int height = rect.bottom - rect.top;
hWnd=CreateWindow(szClassNme, "【初心者】課題をクリアしていくスレ【講習会】", style, CW_USEDEFAULT,0,width,height,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}

128 :名前は開発中のものです。:04/06/23 18:23 ID:XpSZny8Q
VBも参加していいですか?

129 :名前は開発中のものです。:04/06/23 19:25 ID:mQ2LYzxk
mingwとかSDLとかHSPとかSDKとかSDLPerlとかが一体なんなのか
理解できない漏れ…

とりあえずHelloWorldはできたけどウインドウ表示なんて壁高杉
どうすればいいんだよう…

130 :4 ◆3VUXqvbfSY :04/06/23 20:11 ID:YwmthHB/
>>128
ぜんぜんOK!HSPが居るんだから大じょーぶ。

>>129
MSDNライブラリを読む事から始めましょう。
ウィンドウ表示に関しては、VCの最初の壁です。コレがあるからVCは面倒くさいんですが…。
しかし、ウィンドウが表示できれば、簡単なゲームは直ぐ作れるようになりますって。

まあ、難しければHSPに転向しちゃうって手もあります。
スピードが要求されなければ、かなり便利な言語です。

HSPでググってみてください。



>>ALL
わかりました。インベーダーで始めましょう。
ただし、インベーダーが一通り作れたら、落ちゲーにも触れますよ(ぷよぷよやドリラー等)

階級制は面白いんですが…判断基準が…微妙…。
昇級試験制にしたらどうでしょう。
たとえば。
問題(if文を使わずに、A=Bなら0。A≠Bなら1を表示するプログラムを作れ)

とか

131 :名前は開発中のものです。:04/06/23 20:12 ID:bTZutcV4
真に初心者であれば分からないのは当然。
とりあえず分からない単語を列挙すれば、誰か暇な人が答えてくれるかもしれない。

132 :名前は開発中のものです。:04/06/23 22:00 ID:dPgxaG/R
>>129
hello worldを何で表示したか分からんからアレだけど、
取り合えずC/C++と仮定した場合、キミがいくべきところはここだ。

http://www.kumei.jp/c_lang/

133 :生徒BLUE@入隊希望:04/06/23 22:23 ID:G2RbfgcV
>>127の続き
これで完了です
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_PAINT:
DrawGr(hWnd);
break;
default:
return(DefWindowProc(hWnd, msg, wParam, lParam));
}
return (0L);
}

134 :名前は開発中のものです。:04/06/24 00:34 ID:9IgBi+UW
>>130 ありがとうございます。C言語でも出来ますけど、あまり自信が無いんです…。

VBでキャラの移動と弾の発射だけやってみました。
←→キーで左右移動、Z or Spaceキーで弾の発射です。
http://gamdev.org/up/img/737.lzh

135 :名前は開発中のものです。:04/06/24 14:35 ID:9ja3YKOg
>>134
×押して終了しても、プロセスが残ってるみたい

136 :メトロイド オモロイド:04/06/24 21:11 ID:Yq9S/x7T
2Dメトロイド&3Dメトロイド作ってみたらどうだ?
難しいがエラー無く完成したら腕上がるぞ。

137 :生徒BLUE:04/06/24 23:20 ID:kfww3pCy
次はいよいよインベーダーですか

参考にしたサイト:http://www3.omn.ne.jp/~renas/Win32/
今回新しく使った関数:MoveToEx、LineTo

>>125>>127>>133の中からDrawGr関数を書き換えて#include <math.h>を追加します。
//課題4sin波
int DrawGr(HWND hWnd)
{
PAINTSTRUCT paint;
HDC hdc = BeginPaint(hWnd, &paint);
HPEN hPen, hOldPen;
RECT rt;
GetClientRect(hWnd, &rt);
hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
hOldPen = (HPEN)SelectObject(hdc, hPen);
HBRUSH hBrush = CreateSolidBrush( RGB(255, 0, 0));
SelectObject(hdc, hBrush);
MoveToEx(hdc,0,sin(0.0)*100+240,NULL);
for (float i=0; i<6.28; i+=0.01) {
LineTo(hdc,i*100,sin(i)*100+240);
}
SelectObject(hdc, hBrush);
DeleteObject(hPen);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
EndPaint(hWnd, &paint);
return 0;
}

138 :134:04/06/25 02:41 ID:dGOyDbGP
当たり判定などを追加しました。問題のメモリリークのバグも直しました。

http://gamdev.org/up/img/741.lzh

139 :4 ◆3VUXqvbfSY :04/06/25 07:09 ID:va8qXu2v
>>134さん
まずは、sinからお願いします。
あんまり爆走すると、先生にしますよ。
むしろ、なって欲し…


>>ALL
次の課題は、基本中の基本。
キー入力です。
先程の赤い四角を使い、カーソル(テンキーでも可)でグリグリ動く物を作ってください。


参考程度に
VC++ GetKeyState();//バーチャルキーの状態取得。
C++ getch();//標準入力
VB _KeyDown(key%,Shift%)//keyにキーコードが返る
HSP getkey p1,p2//p2のキーが押されていると、p1に1が代入される。

140 :x≠先生かつx=生徒 ⇒ x=俺:04/06/25 18:25 ID:oIl/kTfS
sin波生成
http://rupan.zive.net/~kain/cgi-bin/up/src/up1133.zip

141 :63 ◆xdaKt6k1XI :04/06/25 23:47 ID:BZ++Tyug
動かせました。

WIDTH 640,480
*main
BUFFER 2,640,480,1
COLOR 255
BOXF x+320,y+240,x,y
pos x,y
stick a,15
if a&1 : x-1
if a&2 : y-1
if a&4 : x+1
if a&8 : y+1
await 1
GSEL 0
GCOPY 2,0,0,640,480
goto *main
stop

142 :生徒142:04/06/26 00:54 ID:NxwPZgd2
今日から参加します。
まずは四角
http://gamdev.org/up/img/742.lzh

キー入力に取りかかります。
赤い四角を動かせばいいんですよね?

143 :生徒142:04/06/26 03:19 ID:NxwPZgd2
連投
プロシージャのみ貼り付けてみます。

描画がカクカクします、再描画の処理はどうすればきれいに動くのでしょうか?
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wp,LPARAM lp){
HDC hdc;PAINTSTRUCT ps;HPEN hpen;static int x,y;
switch(msg){case WM_CREATE:x = 0;y = 0;break;
case WM_KEYDOWN:if(wp == VK_RIGHT){if(x < 310){x += 5;}}
if(wp == VK_LEFT){f(x > 0){x -= 5;}}
if(wp == VK_UP){if(y > 0){y -= 5}};
if(wp == VK_DOWN){if(y < 210){ y += 5;}}
InvalidateRect(hWnd,NULL,TRUE);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
hpen = CreatePen(PS_SOLID,3,RGB(255,0,0));
SelectObject(hdc,hpen);
Rectangle(hdc,x,y,x+320,y+240);
DeleteObject(hpen);
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd,msg,wp,lp));
}
return 0;
}


144 :名前は開発中のものです。:04/06/26 04:14 ID:sMwugFr/
if(wp == VK_LEFT){f(x > 0){x -= 5;}}

if(wp == VK_LEFT){if(x > 0){x -= 5;}}

if(wp == VK_UP){if(y > 0){y -= 5}};

if(wp == VK_UP){if(y > 0){y -= 5;}}

145 :生徒142:04/06/26 04:30 ID:NxwPZgd2
>>144
すみません、ソース書いた時は{使ってなかったもので
ここに貼り付ける時に急遽書きました。

iが消えたり;の前に}書いたり間抜けなことになってますね。
次からはよく確かめます

146 :134:04/06/26 05:20 ID:1CizLySr
>>139

VBでsinカーブを描画してみました。
そろそろC言語でやりたいとは思うのですが、ポインタの所がいまいちなので…

http://gamdev.org/up/img/743.lzh

147 :名前は開発中のものです。:04/06/26 08:40 ID:K/WyEUE8
<html><head><style type="text/css"><!--
.put{background-color:#FF0000;position:absolute;width:320px;height:240px;}
--></style></head>
<body onLoad="main()" onKeyDown="k[event.keyCode]=1" onKeyUp="k[event.keyCode]=0">
<div id=char class=put></div><script language="Javascript">
var timerID,k=[],x=0,y=0,charElm=document.getElementById('char');
function main(){
clearTimeout(timerID);timerID=setTimeout(main,30);
x+=k[37]&&x?-8:k[39]&&x<320?8:0;
y+=k[38]&&y?-8:k[40]&&y<240?8:0;
charElm.style.left=x;charElm.style.top=y;}
</script></body></html>


148 :134:04/06/26 10:37 ID:1CizLySr
http://gamdev.org/up/img/744.lzh

キャラ移動です。一応加速度も考慮してあります。

149 :名前は開発中のものです。:04/06/26 13:26 ID:wteFDikq
Wikiなんかじゃなくて専用のHP作ったら?
ソース貼るのに不憫だろ

150 :名前は開発中のものです。:04/06/26 13:31 ID:jYUMekjC
>>149
神キタ━━━━━━(゚∀゚)━━━━━━ !!
tabとか半角スペースめんどいもんな
ひょっとして過去にうぷされたソースとかも整形してうぷしてくれれば
うれしいけどそれは望みすぎかな
急がなくていいからがんがれ!

151 :名前は開発中のものです。:04/06/26 13:39 ID:CUwn7Ubj
強引な150に萌え

152 :Ruby@課題1数当て:04/06/26 14:32 ID:jYUMekjC
kotae=rand(9)+1
while (true)
print "1〜9の数を入力してください\n"
gets
ans=Integer(chop)
if ans==kotae then
print "正解\n"
break
else
print "不正解\n"
end
end

153 :149:04/06/26 15:26 ID:wteFDikq
俺かYoΣ(´□`;)

154 :Ruby@課題2素数:04/06/26 16:17 ID:jYUMekjC
count=0
i=2
while count<1000 do
sosu=true
for j in 2..i-1 do
if ( (i % j) == 0)
sosu=false
end
end
if (sosu)
print "#{i}\n"
count=count+1
end
i=i+1
end
print "素数を#{count}個みつけました\n"

155 :Ruby/SDL@課題3赤い四角:04/06/26 17:32 ID:jYUMekjC
require 'sdl'

SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )

screen.fillRect( 0, 0, 320, 240, [ 255, 0, 0 ] )
screen.updateRect( 0, 0, 0, 0 )

loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit, SDL::Event2::KeyDown
exit
end
end
end

156 :Ruby/SDL@課題4sin波形:04/06/26 18:50 ID:jYUMekjC
require 'sdl' 

SDL.init( SDL::INIT_VIDEO ) 
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )

count=0.0
while count < 6.28
  x=count*100
  y=Math.sin(count)*100+240
  screen.putPixel(x,y,[255,0,0])
  count=count+0.01
end
screen.updateRect( 0, 0, 0, 0 )

loop do  
  while event = SDL::Event2.poll
    case event
    when SDL::Event2::Quit, SDL::Event2::KeyDown
      exit
    end
  end
end

157 :Ruby/SDL@課題5キー入力:04/06/26 20:12 ID:jYUMekjC
require 'sdl'

SDL.init( SDL::INIT_VIDEO ) 
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE ) 

y=0
x=0

loop do
  while event = SDL::Event2.poll 
    case event 
    when SDL::Event2::Quit 
      exit 
    end
  end

  SDL::Key.scan
  y -= 1 if SDL::Key.press?( SDL::Key::UP )
  x += 1 if SDL::Key.press?( SDL::Key::RIGHT )
  y += 1 if SDL::Key.press?( SDL::Key::DOWN )
  x -= 1 if SDL::Key.press?( SDL::Key::LEFT )

  x=0 if x<0
  x=319 if x > 319
  y=0 if y<0
  y=239 if y > 239

  screen.fillRect( 0, 0, 640, 480, [ 0, 0, 0 ] )
  screen.fillRect( x, y, 320, 240, [ 255, 0, 0 ] )
  screen.updateRect( 0, 0, 0, 0 )
end

158 :名前は開発中のものです。:04/06/26 21:12 ID:4yTlUeBl
こりゃある意味、荒らしといえなくもないな

159 :名前は開発中のものです。:04/06/26 21:34 ID:jYUMekjC
Ruby/SDLインストール方法(Windows)

1.とりあえずコレをダウンロード
http://www.kmc.gr.jp/~ohai/rubysdl/rubysdl-0.9.2-win32bin-pack.lzh

2.解凍して適当なフォルダにコピー

3.[コピーしたフォルダ]\usr\local\binにパスを切る
(たとえばc:\ruby\usr\local\binなど)

以上でインストール終了。

スクリプトをテキストファイルとして保存して(拡張子は.rbが一般的)
ruby [ファイル名]として実行
(たとえばruby sosu.rbなど)

公式サイト
http://www.kmc.gr.jp/~ohai/index.html
チュートリアル
http://www.kmc.gr.jp/~ohai/rubysdl_intro.html

160 :名前は開発中のものです。:04/06/26 23:23 ID:VAfJSjue
宣伝?

161 :名前は開発中のものです。:04/06/26 23:49 ID:PaYEz6W8
キー入力、Delphiです
TApplicationEventsとQD3のDDIDEX使ってます

private
Chara: TPoint;

procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
var Done: Boolean);
begin
DDIDEX1.Scan(DI_KEYB);
Chara.X:=Chara.X+DDIDEX1.Stick.X;
Chara.Y:=Chara.Y+DDIDEX1.Stick.Y;
if (Chara.X<0) or (Chara.X>319) then begin
Chara.X:=Chara.X-DDIDEX1.Stick.X;
end;
if (Chara.Y<0) or (Chara.Y>239) then begin
Chara.Y:=Chara.Y-DDIDEX1.Stick.Y;
end;
Canvas.Brush.Color:=clBlack;
Canvas.FillRect(Rect(0,0,ClientWidth,ClientHeight));
Canvas.Brush.Color:=clRed;
Canvas.FillRect(Rect(Chara.X,Chara.Y,Chara.X+320,Chara.Y+240));
Sleep(5);
Done:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered:=True;
ClientWidth:=640;
ClientHeight:=480;
end;

162 :名前は開発中のものです。:04/06/27 01:17 ID:m6T91X5d
>>149
インデントを保ったままソースをうぷしたいなら
ソース置き場やゲムデヴあぷろだをを利用させてもらう手もある
というかこのスレはなぜ貼り付けるのが主流なんだw

ソース置き場
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
ゲムデヴあぷろだ
http://gamdev.org/up/

>>151
うむ、萌えプロ目指してるからな
参考1) http://www.bk1.co.jp/cgi-bin/srch/srch_message.cgi/40dd9dc0e029f0104573?aid=p-sf0023&tpl=genre/07/softbank.html
参考2) http://oshimago.chu.jp/personal/archives/DSC00117.JPG

>>153
      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < 専用のHPまだ〜?
            \_/⊂ ⊂_)    \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       |  S p o k e  |
>>158
このスレ自体(ry
まぁ、土曜日を利用してスタートダッシュだ許せ

>>160
おまいらも開発環境や実行環境ぐらい書けよ
ところでRubyって宣伝と思われるほどマイナーなのか?
ちなみにRuby暦1日(もう2日目だな)なので優しくしてくれな

163 :名前は開発中のものです。:04/06/27 02:56 ID:fYoguU/V
>>162
>このスレはなぜ貼り付けるのが主流なんだw
ダウソして解凍してって面倒なので結構貼り付けいいと思うんだが
普通のレスが見にくい&改行制限が問題だな

2ch型掲示板を設置して生徒一人につき1スレ使ってソースを貼り付けていくっていうのはどうでしょ?
TABの問題が残るかな?

164 :名前は開発中のものです。:04/06/27 06:21 ID:6ucDfgWE
>>163
神キタ━━━━━━(゚∀゚)━━━━━━ !!
ダウソとか解凍めんどいもんな
ひょっとして過去にうぷされたソースとかもスレ立てて貼りつけてくれれば
うれしいけどそれは望みすぎかな
急がなくていいからがんがれ!

165 :名前は開発中のものです。:04/06/27 07:31 ID:fYoguU/V
>>164
コピペかよ!ほんとに作るぞ?
aaacafeとかだったらすぐだし

166 :名前は開発中のものです。:04/06/27 09:45 ID:sIosK61q
ソースをコピペしてコンパイルして実行するほうがはるかにめんどい

167 :129:04/06/27 10:57 ID:BWzYLsUd
今更ながらやっとwindows.hが読める?環境が整ったよ…
>>130-132さんありがとう。

LSI-C86試食でやっていたのですがこの度borlandのなんとかをいれました
次はSDL&Cygwin????
なんかいまだにDelphiとか分からないんですけど何をどうするのが好ましいのでしょうか…?

自分だけ違う次元ですね…。鬱。

168 :名前は開発中のものです。:04/06/27 12:50 ID:1xxqplwj
>167
SDLとかCygwinとかDelphiとか気にしなくても良いから
とりあえずborland c++ コンパイラ用意できたということで
Cのお勉強をしてみましょうよ

169 :167:04/06/27 13:15 ID:BWzYLsUd
>>168
SDLとかいれたほうが楽なのかなと思ったのですが…
やっぱりいきなり窓プログラミングにぶっ飛ぶより基礎からじっくりやるべきですか
基礎でぬくぬくしてられないと思ったもので…反省。


170 :課題2@D言語:04/06/27 13:29 ID:TlIkOaxm
まだβ版だけど先取りして勉強。
素数判定。

const int MAX_COUNT = 1000;

int main() {
    int   num,check,count;
    
    printf("1\n");
    count = 1;
    num = 2;
    while (count<MAX_COUNT) {
        for (check=2;check<num;check++) {
            if (num%check==0) break;
        }
        if (check==num) {
            printf("%d\n",num);
            count++;
        }
        num++;
    }
    return 0;
}


171 :名前は開発中のものです。:04/06/27 17:32 ID:m6T91X5d
>>163
ソース貼り付けのメリットも捨てがたいな
テキストファイルを扱えるあぷろだがあれば閲覧もダウンロードもできて楽かもしれん
スレにソース貼りまくりも妙に楽しいんだが

>>164
   ,,ヘ ヘ    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   (,, ゚∇゚) < クレクレ厨逝ってよち!
  〜(,,_ノ    \_____________

>>165
megaBBSスクリプト( http://pabbs.hp.infoseek.co.jp/haifu.html )が半角、全角、TABを扱えていい感じだった
しかも等幅フォントも使えるみたい

2chでインデントつける方法は教えてもらってきた
http://pc5.2ch.net/test/read.cgi/tech/1088022524/83-92

>>166
だよな、人のソースみて勉強してる立場からすると崩れたソースは辛い

>>167>>169
Win32APIで窓プログラミング汁!
ぬくぬくどころか最難関だw
といっても参加者やわかる人が多い環境でもあるので王道かもしれん
ひたすらたくさんの開発環境を整えてPCの基礎知識を仕入れるのも(・∀・)イイ!

>>170
D言語知らないから間違ってたら悪いんだが
それって1も表示されないか?(1はもちろん素数じゃない)

>>生徒BLUE氏
BRUSHの解放忘れがあるよ

172 :課題2@D言語:04/06/27 17:41 ID:TlIkOaxm
>>171
1と自分以外で割れない数が素数じゃないの?
1と1以外で割れない数だからと思って"わざわざ"付け足したのに orz

173 :名前は開発中のものです。:04/06/27 18:31 ID:fYoguU/V
テスト 
というかこんな感じのロダでいいのかな?cppアップ可能に設定してみた
http://cgi.f11.aaacafe.ne.jp/~novarabb/phpup/img/007.cpp

各言語のテキストに対応させればそのままあpできるし。


174 :名前は開発中のものです。:04/06/27 19:00 ID:PY8053hi
>>169
実際にはWindowsのゲームプログラミングはそれほど難しくないよ。
内部にゲーム画像を作成してキー入力などに応じて更新、それを
描画するだけだからね。ウインドウプログラミングの「流れ」を
掴めれば、パズルゲームやADV/RPGは比較的簡単に作れる。

何からはじめればよいかわからない、ということなら

C++ ゲーム プログラミング

といったキーワードでぐぐるなり、書店で「Windowsプログラミングの本」
を眺めて何をすれば「Windows用プログラム」になるのか、調べてみると
良いかも。

本当に「基礎」をやるなら、高レベルのライブラリではなくまずSDK
ベースのWindowsプログラミングで「Windowsのプログラムの流れ」を
しっかり追った方が良い。


175 :x≠先生かつx=生徒 ⇒ x=俺:04/06/27 19:17 ID:v+n6K1pQ
インベーダー途中
http://gamdev.org/up/img/757.zip

176 :生徒A:04/06/27 19:26 ID:WIo25CTE
しばらく来ない内にすごい事になってるよ…もう付いていけない

177 :生徒BLUE:04/06/27 22:04 ID:b0jvqBNF
あまりソースを貼り付けるのは荒らしっぽい?のでうぷろだにしました
今はまだ170行ですがインベーダーなら500〜1000ぐらいにたぶんなるので
そろそろ切り替えようと思っていたところです

キー入力はGetAsyncKeyStateを使いました
0x8000の意味とかまだよくわかりませんけれど
if ((GetAsyncKeyState( VK_UP ) & 0x8000) == 0x8000)
{
y--;
}

チラチキ対策でダブルバッファを使った描画をしています
参考にしたソースをほぼそのままコピペしていますが内容は理解しています
このあたりは以前、やったことがあるのでまだまだ大丈夫

課題5キー入力
http://gamdev.org/up/img/759.zip

178 :名前は開発中のものです。:04/06/27 22:28 ID:6fdveQpW
画像だけなら簡単だが、音をつける段階で挫折しそうだ。

ダイレクトXを使わずに、WAVを複数同時に鳴らすことがどれほど大変か・・・

179 :名前は開発中のものです。:04/06/27 22:41 ID:PY8053hi
>>178
そうだね。
「自分でPCMバッファを作成し波形を合成、リアルタイムに出力」
なんてことになると結構しんどい(面白いとも言うがw)・・・。

まあ、画像でも同じような場面(自分で管理するバッファを処理し
ながらのリアルタイム出力)はあるわけだが。


180 :名前は開発中のものです。:04/06/27 22:48 ID:qWAk5Epz
ほらほら、先生が仕切らないから、落ちこぼれがでちゃったぞ。
一人は突っ走ってるし。

181 :名前は開発中のものです。:04/06/27 22:58 ID:qWAk5Epz
>>177
> 0x8000の意味とかまだよくわかりませんけれど
「ANDでマスクとる」とかはわかる?

定数書いちゃダメとか、staticって書くようにするとか、
拡張子がcppなのにC言語風じゃん!とか、
バックバッファあたりは毎回生成&破棄しなくても最初に一度だけ
作成してしまった方が処理の無駄がないとか、ブラシとペンも。


182 :x≠先生かつx=生徒 ⇒ x=俺:04/06/27 23:05 ID:v+n6K1pQ
>>180
とりあえず突っ走ってるって俺じゃないよな?

>>134
CPU使用率が70%〜80%まで行ったんだけど・・・。

183 :x≠先生かつx=生徒 ⇒ x=俺:04/06/27 23:07 ID:v+n6K1pQ
( ゚д゚)ハッ!もしや、落ちこぼれが俺か!

184 :副担任:04/06/27 23:48 ID:sIosK61q
先生が帰ってくるまで漏れが面倒みましょうか?

185 :ぷち:04/06/28 00:10 ID:W5zBmX8i



186 :名前は開発中のものです。:04/06/28 03:20 ID:vjeNxAuN
落ちこぼし師

187 :名前は開発中のものです。:04/06/28 04:46 ID:AKJFcicb
>>184
お願いします。
ソース貼っても、アドバイス求めても生徒ばっかりでレスなくて(´・ω・`)ショボーンです。


188 :生徒A:04/06/28 06:10 ID:D8BhR1kS
なんとか徹夜して6時間ほど粘ってキー入力まで行ったけど、限界が近い…

WM_TIMERで画面の更新を行っているんですが、なんかすごくちらつくんですよ
あと、DeleteObject(hBr)というのを使うと、何故か画面が白くなるんです…
なので、使ってません。

http://gamdev.org/up/img/762.lzh

189 :4 ◆3VUXqvbfSY :04/06/28 06:20 ID:kLFrYp0l
すみません皆様…
ミニ死の行進してました…

アプロダについて:
あっても、別に構いませんが、必要無いようにします。
具体的には、トップダウンで(例えばCなら)
メインを作る。

個々に使われた関数を作る
みたいに、ソースを(出来るだけ解りやすく)分割して、表示しようと企んでいます。


進行度:
自分で出来る方がドンドン進まれるのは、むしろ、喜ばしいです。ただし、課題はあくまで初心者ラインにしておきます。
だから、焦らなくて大丈夫。今の課題は、「キーで、赤い四角を動かす」です。


先生:
や、やっと一人…m(_ _)mヨロシクオネガイシマス


次の課題:
当たり判定。
先ほどの、「動く赤い四角」を避けゲーに改造しましょう
敵は 敵x = rand() % 640;//rand()*640/RAND_MAX
で…敵y++;のように動く単純な敵です。
当たったら終了と言う仕様で…

190 :副担任:04/06/28 10:23 ID:HdfIcXTc
漏れは先生と考え方が違うので一応書いておきます。うざかったらクビにしてください。>先生
・動けば正義(いい設計はできたほうがいいけどまだ求める段階ではないと思う)
・ソースは固めてどこかにアップする(バックアップ、成果としてわかりやすい)
・バイナリは付けて欲しい(開発環境を全てそろえるのは難しい)
・課題によけいなものは付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)

あくまで初心者のためのライブラリとしてとらえています。
「絵を描くにはこうする」「動かすにはこうする」「…」「…」のサンプルコードの固まりにしたいです。

課題の方針には賛成なので従います。

というわけで分からんことがある人は漏れが面倒みます。勉強しながら…。orz

191 :副担任:04/06/28 10:26 ID:HdfIcXTc
訂正すまそ。
× ・課題によけいなものは付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)
○ ・提出したソースにはよけいな機能は付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)

192 :名前は開発中のものです。:04/06/28 10:28 ID:Ten9Dr/x
>>188
簡単だが添削。ウィンドウプロシージャだけ。

DeleteObjectの2行はWM_PAINT内でやってはダメ。
WM_PAINTは何度も呼ばれるため、最初の描画が終了した時点で、作ったペンやブラシは
無効になるため、色がつかなくなる。DeleteObjectするならWM_DESTROY内で。
ちなみにCreateしたものはちゃんと削除するのがお約束。

SelectObjectしたものに関しても、元に戻しておくのが一応の作法。
holdobj = SelectObject(hdc, hobj);// 以前のオブジェクトハンドルを保存
// 何か処理
holdobj = SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す

何故か赤く塗りつぶされないというのは、ディスプレイDCに複数回描画を行っていて、それが
ちらつきとして現れるから。こういう場合はオフスクリーンに描画し、最後にディスプレイDCに
BitBltする。

193 :名前は開発中のものです。:04/06/28 10:30 ID:Ten9Dr/x
ちと訂正・・orz

×holdobj = SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す
○SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す

194 :63 ◆xdaKt6k1XI :04/06/28 15:51 ID:W33tIq0j
>>190
変な質問ですいません
バイナリってなんですか?

195 :生徒A:04/06/28 16:36 ID:D8BhR1kS
>>194 190じゃないですが、もともとは2進数という意味だと思います。
だから、この場合は、1と0の組み合わせで作られた機械語データ
(実行ファイル)の意味だと思います。
他にも、テキストデータ以外のファイル全てを指す事もあります。

196 :生徒A:04/06/28 16:40 ID:D8BhR1kS
>>192 ありがとうございます。
DeleteObjectのやり方は分かったのですが、
オフスクリーンのやり方がちょっとよく分からないです。
具体的には、オフスクリーンの作成方法です。

197 :名前は開発中のものです。:04/06/28 17:06 ID:cdlT0cfW
CreateCompatibleBitmap

198 :副担任:04/06/28 17:37 ID:HdfIcXTc
>>194
Windowsの実行ファイルのことです。"〜.exe" ってやつ。
C言語とかはコンパイルして実行ファイルを作らないとプログラムが動きません。
HSPはインタプリタ言語なので実行ファイルは作らなくていいみたいですね。

>>195
正解です

199 :Ruby@課題6当たり判定:04/06/28 18:32 ID:1FRiXQWF
require 'sdl'
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
x=(639-32)/2
y=(479-32)/2
enemyX=rand(639-32)
enemyY=0
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit
exit
end
end
SDL::Key.scan
y -= 1 if SDL::Key.press?( SDL::Key::UP )
x += 1 if SDL::Key.press?( SDL::Key::RIGHT )
y += 1 if SDL::Key.press?( SDL::Key::DOWN )
x -= 1 if SDL::Key.press?( SDL::Key::LEFT )
x=0 if x<0
x=(639-32) if x>(639-32)
y=0 if y<0
y=(479-32) if y>(479-32)
enemyY=enemyY+1
enemyY=0 if enemyY>479
if (x-enemyX).abs<32 and (y-enemyY).abs<32 then
exit
end

200 :Ruby@課題6当たり判定:04/06/28 18:33 ID:1FRiXQWF
screen.fillRect( 0, 0, 640, 480, [ 0, 0, 0 ] )
screen.fillRect( x, y, 32, 32, [ 255, 0, 0 ] )
screen.fillRect( enemyX, enemyY, 32, 32, [ 0, 255, 0 ] )
screen.updateRect( 0, 0, 0, 0 )
end

課題6当たり判定(実行ファイル付き)
http://gamdev.org/up/img/764.zip

【Rubyスクリプトを実行ファイルにする方法】
http://exerb.sourceforge.jp/ からExerbををダウンロード
レシピファイルを書く
add_ruby_script[TAB](スクリプト名)
add_extension_library[TAB](ライブラリ名)[TAB](パスを含めたライブラリ名)
例)
add_ruby_script[TAB]collision.rb
add_extension_library[TAB]sdl.so[TAB]sdl.so

※注意
[TAB]はTABキーで入力してください
通常のエディタだと空白と判別できませんので注意

Exerb添付ドキュメントは旧式の書き方になっているようです
サンプルは新しいものだったのでそちらを参考にしました

201 :63 ◆xdaKt6k1XI :04/06/28 20:48 ID:W33tIq0j
>>195
>>198
ありがとうございました。

202 :生徒BLUE:04/06/28 21:18 ID:mIyMN4GH
指摘された所を全部直しました

課題5キー入力再提出
http://gamdev.org/up/img/766.zip

203 :4 ◆3VUXqvbfSY :04/06/28 21:39 ID:kLFrYp0l
参考程度に…
オフスクリーン:
変数宣言 前略

hdcOFF=CreateCompatibleDC(hdcON);//空の描画ハンドルを作る
CopyBitmap=CreateCompatibleBitmap(hdcON,640,480);//表のウィンドウと互換のビットマップをつくる。
SelectObject(hdcOFF,CopyBitmap);//んで、設定

中略

BitBlt(hdcON,0,0,640,480,hdcOFF,0,0,SRCCOPY);//裏に書かれた内容を、表に上書きする。

後略


こんな感じ。…VC++だけでごめんなさい…

204 :LGP@課題1数当て:04/06/28 23:47 ID:1FRiXQWF
スクリプト組はあまり時間もかからず有利なので
複数言語同時習得を目指してみます

CH = G@SETUP( 640 , 480 , 16 , 1 )
RANDSET(SYSTIME())
RN = RAND()%9+1

G@PRINT(CH,0,0,"1〜9の数を入力せよ")
G@FLIP()
LOOP
I@KEYGET2( )
IF I@KEYBTN2(1)=2 THEN
    ANS=I@KEYBTN2(0)-1
    IF ANS=RN THEN
        SYSEXIT()
    ENDIF
    IF (ANS>0) AND (ANS<10) THEN
    N=N+1
    G@GDIBOXFULL( CH , 0, 100, 640, 480 )
    G@PRINT(CH,0,100,"はずれ"+STR(N)+"回目")
    ENDIF
    G@FLIP()
ENDIF
S@WAIT()
ENDLOOP

LGP@課題1数当て(実行ファイル付き)
http://gamdev.org/up/img/767.zip

205 :名前は開発中のものです。:04/06/29 06:26 ID:Ngmzz0xf
課題6

実行方法:@メモ帳にコピペ、A名前をつけて保存でinvader.html、BブラウザにD&D

<html><head><title>Invader Game?</title><style type="text/css"><!--
.self{background-color:#FF0000;position:absolute;width:32px;height:32px;}
.enemy{background-color:#0000FF;position:absolute;width:32px;height:32px;}
--></style></head>
<body onLoad="m()"onKeyDown="k[event.keyCode]=1"onKeyUp="k[event.keyCode]=0">
<div id=c class=self></div><div id=e class=enemy></div>
<script language="Javascript"><!--
var alive=true,timerID,k=[],x=304,y=448,eX,eY= 480;
var charElm=document.getElementById('c'),enemyElm=document.getElementById('e');
function m(){clearTimeout(timerID);
x+=k[37]&&x?-8:k[39]&&x<608?8:0;y+=k[38]&&y?-8:k[40]&&y<448?8:0;
charElm.style.left=x;charElm.style.top=y;
eY+=8;if(eY>480){eY=-32;enemyElm.style.left=eX=Math.floor(Math.random()*640);}
enemyElm.style.top=eY;
if(Math.abs(x-eX)>32||Math.abs(y-eY)>32)timerID=setTimeout(m,30);}
//--></script></body></html>


206 :LGP@課題2素数:04/06/29 09:54 ID:OSp1CFcf
FH=F@OPEN("PrimeNumber.txt" , 3 )
F@WRITES( FH , STR(2) )
COUNT=COUNT+1

I=3
WHILE COUNT<1000
    SOSU=-1
    FOR J=3 TO I/2 STEP 2
        IF I%J=0 THEN
            SOSU=0
        ENDIF
    NEXT
    IF SOSU=-1 THEN
        F@WRITES( FH , STR(I) )
        COUNT=COUNT+1
    ENDIF
    I=I+2
    S@WAIT()
ENDWHILE

F@CLOSE( FH )

207 :名前は開発中のものです。:04/06/29 13:12 ID:WW/6W0k2
dpかwinsockでチャット作りたひ。

208 :名前は開発中のものです。:04/06/29 18:46 ID:vpUdLCjy
>>207
自分で作ったチャットソフトで皆と繋げられたら楽しそうな予感!

209 :名前は開発中のものです。:04/06/29 21:15 ID:OSp1CFcf
もの凄い勢いで進行してるのでまとめの意味もあって統計をとってみました
抜けてる人がいたらごめんなさい

JavaScript         ****** 6
Ruby..            ****** 6
生徒A(Win32API).     ***** 5
生徒BLUE (Win32API).  ***** 5
Delphi            ***** 5
D言語            ** 2
LGP             ** 2
x≠先生かつx=生徒 ⇒ x=俺(VB) 測定不能

まとめページ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D
アップローダ
http://gamdev.org/up/

210 :x≠先生かつx=生徒 ⇒ x=俺:04/06/29 21:28 ID:gNXtRGm+
>>209
VBを使った覚えは無いんですが…というよりVB使えません。
>>134のことかな?

211 :名前は開発中のものです。:04/06/29 22:14 ID:OSp1CFcf
>>210
混同してました
2人も先行者がいたのかorz
修正しました
HSPのほうはもうやらないの?

JavaScript         ****** 6
Ruby..            ****** 6
生徒A(Win32API).     ***** 5
生徒BLUE (Win32API).  ***** 5
Delphi            ***** 5
D言語            ** 2
LGP             ** 2
x≠先生かつx=生徒 ⇒ x=俺(Win32API) 測定不能
VB 測定不能

212 :LGP@課題3赤い四角:04/06/29 22:53 ID:OSp1CFcf
//640x480、16ビット色、ウィンドウ画面
CH = G@SETUP( 640 , 480 , 16 , 1 )
//ブラシを赤色に設定(RGBはそれぞれ0〜1.0で設定)
G@GDISETBRUSH( 0 , 1.0 , 0 , 0 )
//四角を描画
G@GDIBOXFULL( CH , 0, 0, 320, 240 )
//フリップ
G@FLIP()
//無限ループ
LOOP
  S@WAIT()
ENDLOOP

213 :生徒BLUE:04/06/30 00:29 ID:HYWm3For
>>181
>「ANDでマスクとる」とかはわかる?
はい、この場合は2進数に直して一番左のビット以外を全部0にするってことですよね
MSDN読んだりあれからさらに調べてみたので前よりはちょっとわかったのですが
左端のビットが1ならボタンが押されているという程度の理解でいいのでしょうか

・定数書いちゃダメ
defineを積極的に使ってみました
C++の場合だとdefineは使わずにconstを使ったほうがいいと書いてあるホームページも
みつけましたがどうなんでしょう?

・拡張子がcppなのにC言語風
意識せずに全部cppにする習慣がついてたので……
クラスを使う→cpp、使わない→cでいいですか?
拡張子の使い分けむずかしい

・バックバッファあたりは毎回生成&破棄しなくても最初に一度だけ
GetDCを使えばいいんだ!と前回は気づいてませんでした


WEBの情報をあちこちからつまみ食いしてるので全体的にチグハグな感じに
なっていたようで指摘してもらって勉強になります
ソースみていただける方は2ちゃんねるに貼り付けとアップローダのどちらが見やすいでしょうか?
それとも両方のほうがよい?

214 :名前は開発中のものです。:04/06/30 11:43 ID:0T8fXV58
そろそろ本気で見にくくなってきたわけだが、
ちょっと言語が大杉やしないかい?
もうちょっと絞ろうよ

215 :通りすがり人:04/06/30 12:46 ID:qBs2hfFg
>>213
> 左端のビットが1ならボタンが押されているという程度の理解でいいのでしょうか

HELPには...
最上位ビットがセットされたときは現在キーが押されていることを示し、
最下位ビットがセットされたときは直前のGetAsyncKeyState関数呼び出し以降に
キーが押されたことを示します。
って書いてある。つまり・・・
#include<windows.h>
#include<stdio.h>

void main()
{
 intRv;

 for(;;) {
  Sleep(1);
  Rv = GetAsyncKeyState(VK_SPACE);
  if (Rv != 0) {
   printf("%08x\n", Rv );
  }
 }
}
スペースをバシッと叩くとわかるんだけど、初回だけ最下位ビットが変化してる。
つまり、リピート状態なのかを判断できるわけ。


216 :生徒BLUE:04/06/30 17:09 ID:HYWm3For
>>215
早速、コンパイルして試してみました
最下位ビットに注目してみると
1000000000100100100100100100......
といったように変化します
初回だけということなので10000000......というものを期待していたのですがうまくいかないです

217 :生徒BLUE:04/06/30 17:38 ID:HYWm3For
課題6 当たり判定
赤い四角のサイズを元に当たり判定をしました

//****** 変更箇所 ******

//乱数の初期化
srand((unsigned)time(NULL));

//敵の移動
++ty;
if (ty>YMAX)
{
  ty=0;
  tx=rand()*640/RAND_MAX;
}

//当たり判定
if (abs(x-tx)<BOXWIDTH && abs(y-ty)<BOXHEIGHT)
{
  PostQuitMessage(0);
}

http://gamdev.org/up/img/775.zip

218 :名前は開発中のものです。:04/06/30 18:49 ID:3iu2d+4i
>>216
ん?スペースキーを押すと、こんな風に表示されませんか?
ffff8001
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000


219 :生徒BLUE:04/06/30 19:04 ID:HYWm3For
>>218
ならないです
もうちょっと調べてみます

220 :名前は開発中のものです。:04/06/30 19:39 ID:3iu2d+4i
>>219
あ〜、押しっぱなしの場合は違う結果になるかもです。
OSのキーボードバッファとか、その辺の兼ね合いだと思うけど。

221 :名前は開発中のものです。:04/06/30 19:52 ID:/EAv0A9z
>>215試して見たけど確かに>>216の現象が出るな。
他の出力で確認したらちゃんと立ち上がりだけ1が出るので
printf()絡みでキー状態が変化してるっぽい。
普通はこんな使い方しないので気にしなくて良いと思われ。

222 :63 ◆xdaKt6k1XI :04/06/30 21:22 ID:qAZjVMDs
>>211
今回のは敵の大きさとか動きとかよくわからないのでやらないです。

223 :名前は開発中のものです。:04/06/30 22:22 ID:j1/sm794
320x240で一度作ったけど即死しすぎて32x32に縮小したよ
サイズ指定してないから何でもいいと思ったけどそのあたりどうなんですか?>先生

wikiのほうにまとめコーナー作っておいたので各自書きたいことがあったら適当にどうぞ
というか書いてくださいおながいします
名無しさんを消して自分の名前にして提出状況とかコンパイラは何を使ってるとかそんなのでいいので

http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

224 :LGP@課題4sin波形:04/07/01 00:05 ID:TMNGfYFe
//画面初期化、最後を0にすると全画面
CH = G@SETUP( 640 , 480 , 16 , 1 )
//ペンの設定、実線、線の幅1、赤色
G@GDISETPEN(LG_GDI_PS_SOLID,1,1.0,0,0)
//sin波形の始点になる点を描画(LINETOの都合)
G@GDILINE(CH,0,239,0,239)
FOR I=0 TO 360
X=I
//SINの引数と戻り値は固定小数点定数(float)
//整数を固定小数点定数にキャストするには65536を掛ける
//固定小数点定数を整数にキャストするには65536で割る
Y=SIN(I*65536)*100/65536+239
//最後にG@GDILINEかG@GDILINETOで線を引いた場所からX,Yまで線を引く
G@GDILINETO(CH,X,Y)
NEXT
G@FLIP()

//無限ループ
LOOP
S@WAIT()
ENDLOOP

225 :4 ◆3VUXqvbfSY :04/07/01 08:34 ID:KOe6GSoY
>>222,223
サイズは自由で結構です。
敵の動きは…だからy++;だけですよ?

226 :生徒A:04/07/01 14:26 ID:MCi74o/R
数日間ソースとにらめっこしてるのですが、バックバッファーの処理が上手くいかないです…


227 :名前は開発中のものです。:04/07/01 15:45 ID:bdPAbTo6
>>226
キミのソースに少し手を加えたやつをうpろだにあげたから試してみれ。780.lzhだ。
ただしオフスクリーン処理以外(後始末とか)は端折ってるのでそこは参考にしないように。

228 :LGP@課題5キー入力:04/07/01 22:17 ID:TMNGfYFe
CH = G@SETUP( 640 , 480 , 16 , 1 )
LOOP //無限ループ
//赤い四角を黒で塗りつぶして消す
  G@GDISETBRUSH( 0 , 0 , 0 , 0 )
  G@GDIBOXFULL( CH , X, Y, X+320, Y+240 )
  I@KEYGET() //キーの状態を得る
//I@KEYBTNの引数に調べたいキーをいれ、戻り値が1なら押してる状態
  IF I@KEYBTN(0xC8)=1 THEN //0xC8はカーソルキー↑
    IF Y>0 THEN
      Y=Y-1
    ENDIF
  ENDIF
  IF I@KEYBTN(0xCB)=1 THEN
    IF X>0 THEN
      X=X-1
    ENDIF
  ENDIF
  IF I@KEYBTN(0xCD)=1 THEN
    IF X<320 THEN
      X=X+1
    ENDIF
  ENDIF
  IF I@KEYBTN(0xD0)=1 THEN
    IF Y<240 THEN
      Y=Y+1
    ENDIF
  ENDIF
//赤い四角を描く
  G@GDISETBRUSH( 0 , 1.0 , 0 , 0 )
  G@GDIBOXFULL( CH , X, Y, X+320, Y+240 )
  G@FLIP()
ENDLOOP

229 :LGP@課題6当たり判定:04/07/02 03:30 ID:4ZvlEEie
CH = G@SETUP( 640 , 480 , 16 , 1 )
X=320
Y=240
//無限ループ
LOOP
//黒で塗りつぶし
  G@GDISETBRUSH( 0 , 0 , 0 , 0 )
  G@GDIBOXFULL( CH , 0, 0, 640, 480)
//キー入力
//キーの状態を得る
  I@KEYGET()
//I@KEYBTNの引数に調べたいキーをいれ、戻り値が1なら押してる状態
//0xC8はカーソルキー↑
  IF I@KEYBTN(0xC8)=1 THEN
    IF Y>0 THEN
      Y=Y-1
    ENDIF
  ENDIF
  IF I@KEYBTN(0xCB)=1 THEN
    IF X>0 THEN
      X=X-1
    ENDIF
  ENDIF



230 :LGP@課題6当たり判定:04/07/02 03:30 ID:4ZvlEEie
  IF I@KEYBTN(0xCD)=1 THEN
    IF X<(640-32) THEN
      X=X+1
    ENDIF
  ENDIF
  IF I@KEYBTN(0xD0)=1 THEN
    IF Y<(480-32) THEN
      Y=Y+1
    ENDIF
  ENDIF //敵移動
  TY=TY+1;
  IF TY>(640-32) THEN
    TY=0
    TX=RAND()%(640-32)
  ENDIF

//赤い四角を描く
  G@GDISETBRUSH( 0 , 1.0 , 0 , 0 )
  G@GDIBOXFULL( CH , X, Y, X+32, Y+32 )
//敵を描く
  G@GDISETBRUSH( 0 , 0 , 1.0 , 0 )
  G@GDIBOXFULL( CH , TX, TY, TX+32, TY+32 )

//当たり判定
  IF (ABS(X-TX)<32) AND (ABS(Y-TY)<32) THEN
    END
  ENDIF

  G@FLIP()
ENDLOOP

231 :名前は開発中のものです。:04/07/04 00:00 ID:UWWF49AF
保守age

232 :HSPが初プログラム@生徒希望:04/07/04 11:07 ID:3DUC6+Xf
課題1
   title "数当てゲーム"
   screen 0,150,65   ;ウィンドウのサイズを調整
   mes "1〜9から一つ入力"
   input a   ;入力ボックスを出す

*random
   rnd b,9   ;0〜8の乱数発生
   b+=1   ;1〜9にする
   c=1

*number
   button "これだ!",*judge
   stop

*judge
   if a=b:dialog "当たり!",0,""+c+"回目":goto *random
   if a>b:dialog "もっと小さい",0,""+c+"回目"
   if a<b:dialog "もっと大きい",0,""+c+"回目"
   c+=1
   goto *number

課題3
   title "赤い四角の描画"
   screen 0,640,480,1
   color 255,0,0:boxf 0,0,320,240
   stop

http://gamdev.org/up/img/801.zip

課題2はヨクワカラナイです。ヒントくれませんか?

233 :名前は開発中のものです。:04/07/04 11:13 ID:dw9vgL9Y
>>232
自分以下で2以上の全ての整数の割り算の余りが0にならなければ素数
別の解放にエラトステネスのふるいってのがあるけど別に使わなくていい


234 :名前は開発中のものです。:04/07/04 11:14 ID:dw9vgL9Y
自分未満の整数の間違い
以下だったら自分も含むからね

235 :名前は開発中のものです。:04/07/04 12:05 ID:WDudAYFD
自分の1/2で十分じゃね?



236 :名前は開発中のものです。:04/07/04 12:35 ID:yqwpjhZT
(√自分)でよくない?

237 :名前は開発中のものです。:04/07/04 12:38 ID:WDudAYFD
平方根求めるより楽だし

238 :名前は開発中のものです。:04/07/04 12:55 ID:9GihiSR8
>>236-237
なんで平方根まででいいんだっけ?

239 :名前は開発中のものです。:04/07/04 13:00 ID:WDudAYFD
それ以上のは今までに計算した分と対応してるだけ

240 :HSPが初プログラム@生徒希望:04/07/04 19:58 ID:3DUC6+Xf
えと、素数はどういうものかはわかるんですが、プログラムというかHSPでの算出方法が…

241 :x≠先生かつx=生徒 ⇒ x=俺:04/07/04 20:45 ID:WDudAYFD
; 素数判定 with HSP 少しだけ高速版
sdim log, 7000: notesel log
title "素数判定 - Calculating..."
mesbox log, 640, 480
log = "2": n = 1
repeat 999
repeat
n += 2: f = 1
repeat n>>1-1,3
if n \ cnt = 0: f = 0: break
continue cnt+2
loop
if f: break
loop
noteadd ""+n
await
loop
objprm 0, log
title "素数判定"
stop

242 :x≠先生かつx=生徒 ⇒ x=俺:04/07/04 20:47 ID:WDudAYFD
あ、インデントかけるの忘れとった。。。

; 素数判定 with HSP 単純版
sdim log, 7000: notesel log
title "素数判定 - Calculating..."
mesbox log, 640, 480
repeat ,2
    n = cnt
    repeat cnt-2, 2
        if n \ cnt = 0: n = 0: break
    loop
    if n{
        noteadd ""+cnt
        i++
        if i >= 1000: break
        await
    }
loop
objprm 0, log
title "素数判定"
stop

243 :Ruby@素数高速化:04/07/05 00:33 ID:K58VA1M5
以前のバージョン
43.702999830246秒
ループ 31343403回
新しいバージョン(奇数のみ評価、平方根までチェック)
0.921999931335449秒(約47倍)
ループ 225062回(約139倍)
思ったより高速化されてビクーリ

print "2\n"
count=1
loopCount=0
i=3
old=Time.now.to_f;
while count<1000 do
  sosu=true
  for j in 3..Math.sqrt(i) do
    loopCount=loopCount+1
    if ( (i % j) == 0)
      sosu=false
    end
  end
  if (sosu)
    print "#{i}\n"
    count=count+1
  end
  i=i+2
end
print " #{Time.now.to_f - old}秒かかりました\n"
print " #{loopCount}回ループしました\n"
print "素数を#{count}個みつけました\n"

244 :名前は開発中のものです。:04/07/05 01:37 ID:o/9mlWPU
>>241を改良してみた。

; 素数判定 with HSP 何気に高速版
title "素数判定 - Calculating..."
#const MAX_COUNT 1000
ll_libload dll,"kernel32.dll" :ll_getproc func,"GetTickCount", dll
ll_libfree dll :ll_retset refunc

sdim log, 7 * MAX_COUNT :notesel log
dim result, MAX_COUNT
mesbox log, 640, 480
noteadd "2",0,1 :result.0 = 2 :count = 3 :i = 1
;測定
ll_callfunc temp,0,func
start = refunc
repeat
  flg = 1;
  repeat i
   if count \ result.cnt = 0 : flg = 0 :break
  loop
  if flg {
   noteadd ""+count, -1 :result.i = count
   i++ :if i >= MAX_COUNT: break
   await
  }
count += 2
loop
ll_callfunc temp,0,func
refunc -= start :dialog "" + refunc + "ms"
objprm 0, log :title "素数判定"
stop

245 :名前は開発中のものです。:04/07/05 07:17 ID:LZQQVRIy
Delphiで素数
http://gamdev.org/up/img/805.zip

246 :名前は開発中のものです。:04/07/05 13:04 ID:LZQQVRIy
最速の素数判定アルゴリズム
http://pc.2ch.net/tech/kako/993/993457354.html

247 :名前は開発中のものです。:04/07/05 20:13 ID:axn64mRQ
すごいスレの流れと違うような気がしますが、
Cで、ウインドウ表示とか(課題3)、できないんですが・・・どうしたらいいんでしょうか?

248 :名前は開発中のものです。:04/07/05 20:40 ID:q8IB8pY7
できないだけ書かれてもどうしようもない。

249 :名前は開発中のものです。:04/07/05 20:57 ID:0DOOfkU1
>>247
猫でもわかるプログラミング
ttp://www.kumei.ne.jp/c_lang/

このへんでまず勉強してこよう

250 :名前は開発中のものです。:04/07/05 22:48 ID:LZQQVRIy
>>247
WinMainからはじまって
CreateWindowでウィンドウの設定して
ShowWindowで表示するだけだ

251 :HSPが初プログラム@生徒希望:04/07/05 22:51 ID:ZZjGGIiZ
sdim m,4000 : notesel m
mesbox m,640,480
noteadd "2" m : noteadd "3" m : noteadd "5" m : noteadd "7" m

n=7
c=4

*judge
n+=2

if n\3=0 : goto *judge
if n\5=0 : goto *judge
if n\7=0 : goto *judge

noteadd "n" m : c+

if c=1000 : goto *s

goto *judge

*s
stop

素数はこれで出るカナと思ったんですが、エラー発生。原因を突き止められませんTT

252 :x≠先生かつx=生徒 ⇒ x=俺:04/07/05 23:00 ID:pTJ3lo22
エラーを読も・・・・・Σ(;゚Д゚)HSPがエラー吐いてない!

noteadd "*" m
        ~|~
   要らない。ここでエラーが出てる。

noteadd "n"
      ~|~
エラーの原因ではないが、""+nの誤り。

あと、objprm 0, mをstopの前に入れて出力させてあげよう。

253 :HSPが初プログラム@生徒希望:04/07/05 23:07 ID:ZZjGGIiZ
>>252
thx
でも、4363で終わりますがあってるんでしょうか?

sdim m,4000 : notesel m
mesbox m,640,480
noteadd "2" : noteadd "3" : noteadd "5" : noteadd "7"

n=7
c=4

*judge
n+=2

if n\3=0 : goto *judge
if n\5=0 : goto *judge
if n\7=0 : goto *judge

noteadd ""+n : c+

if c=1000 : goto *s

goto *judge

*s
objprm 0, m
stop


254 :x≠先生かつx=生徒 ⇒ x=俺:04/07/05 23:24 ID:pTJ3lo22
たしか7919のはずだけど・・・

暇だしPerlとJava版の素数判定作ってみようかな。。。

255 :名前は開発中のものです。:04/07/05 23:25 ID:MIzlaErt
>>253
間違ってるよ・・・
121とかあるし・・・11からの素数の合成数が出まくりやね。

256 :名前は開発中のものです。:04/07/06 00:11 ID:hNVuoewj
>>247
それは簡単だって!どっかのサイトに張ってあるやつをそのままコピペで完成だぁよぉ!

257 :名前は開発中のものです。:04/07/06 01:48 ID:IHRV3HSb
素数スレになってるのだが・・・

258 :名前は開発中のものです。:04/07/06 02:29 ID:pkSoPn0/
Delphi エラトステネスの篩
http://gamdev.org/up/img/810.zip

259 :x≠先生かつx=生徒 ⇒ x=俺:04/07/06 07:38 ID:BOq5Vq10
#!D:\perl\bin\perl.exe

print "Content-type: text/plain\n\n";
print "Start\n";
print "2\n";
$table[0] = 2;
$i = 1;
for(2..1000){
    for($i += 2; ; $i += 2){
        if(&IsPrime($i)){ last; }
    }
}
print "Finish";
exit(1);

sub IsPrime{
    (my $src) = @_;
    for($j = 0; $table[$j] <= sqrt($src); $j++){
        if($src % $table[$j] == 0){ return 0; }
    }
    print $src."\n";
    push(@table, $src);
    return 1;
}

# Perl版。printを取ってみると分かるけどPerlはインタープリタなのに
# 結構処理速いね。。。

260 :名前は開発中のものです。:04/07/06 12:03 ID:IHRV3HSb
>>259
Perlは見かけ上インタプリタだけど、
処理はコンパイル後実行だと聞いたことがある。

261 :名前は開発中のものです。:04/07/06 16:54 ID:pkSoPn0/
C#で素数
static void Main(string[] args)
{
    int sosuCount=0;
    for (int i = 2; sosuCount<1000; i++)
    {
        Boolean nososu;
        nososu = false;
        for (int j = 2; j < i ; j++)
        {
            if ((i % j) == 0)
            {
                nososu = true;
                break;
            }
        }
        if (!nososu)
        {
            Console.WriteLine(i);
            sosuCount++;
        }
    }
    Console.WriteLine(sosuCount + "個の素数を発見しました");
}

262 :x≠先生かつx=生徒 ⇒ x=俺:04/07/06 17:32 ID:BOq5Vq10
public class Prime {
public final static int PRIME_MAX = 1000;
static int PrimeTable[] = new int [PRIME_MAX];
static int TableLast = 1;

public static void main(String[] args) {
int l = 1;
PrimeTable[0] = 2;
System.out.println(2);
for(; TableLast < PRIME_MAX; TableLast++)
for(l += 2; ; l += 2)
if(IsPrime(l)) break;
System.out.println("Finish");
}
public static boolean IsPrime(int src) {
for(int i = 0; PrimeTable[i] <= Math.sqrt(src) && i < TableLast; i++)
if(src % PrimeTable[i] == 0) return false;
PrimeTable[TableLast] = src;
System.out.println(src);
return true;
}
}

// Java版。
// あと手を付けてない言語は何だっけ。
// ・・・ひまわりでもやってみるか。

263 :名前は開発中のものです。:04/07/06 18:09 ID:pkSoPn0/
//PHPで素数
<?php
    for ($i=2; $sosuCount<1000; $i++)
    {
        $nososu=false;
        for ($j=2; $j<$i; $j++)
        {
            if (($i % $j) == 0)
            {
                $nososu=true;
                break;
            }
        }
        if (!$nososu)
        {
            echo $i;
            echo "\n";
            $sosuCount++;
        }
    }
    echo $sosuCount + "個の素数を発見しました";
?>

264 :名前は開発中のものです。:04/07/06 18:57 ID:pkSoPn0/
#Pythonで素数
sosuCount=0
i=2
while sosuCount<1000:
        nososu=False
        j=2
        while j<i:
                if ((i % j) == 0):
                        nososu=True
                        j=99999
                        break
                j=j+1
        if (not nososu):
                print i
                sosuCount=sosuCount+1
        i=i+1
print sosuCount
print "個の素数を発見しました"

265 :生徒A:04/07/06 19:10 ID:B1nIIlBn
素数スレに変化していたらしい

266 :名前は開発中のものです。:04/07/06 19:57 ID:2QvbUldx
いろんな言語で素数プログラムつくるとゲーム作れるようになるですか

267 :4 ◆3VUXqvbfSY :04/07/06 20:22 ID:sRW7wZ6D
>>266
なるわけありませんw

だだし、解らない方をホっといて課題を進める訳には…

うーん…

じゃあ、課題外伝でも出しますか…
余力が有ればどうぞ。

弾道シミュレーション:とは言え、何も波動方程式を使えとはいわない。
真空空間で結構。
画面を横を640kmと仮定し、初速、角度を入力させ、弾の軌道を描いてくれ。
ちなみに、初速は29000m/s以下で
重力加速度は10m/(s^2)でお願いします。

268 :x≠先生かつx=生徒 ⇒ x=俺:04/07/06 20:28 ID:BOq5Vq10
(;゚Д゚)ノ先生!…まだ高1なので習ってません

269 :名前は開発中のものです。:04/07/06 21:30 ID:Oq4N2t0v
>>268
高一だけどもう習ったよ

270 :名前は開発中のものです。:04/07/06 21:32 ID:tJWPmmxn
とりあえず初速度を三角関数でxとyに分解した後、
重力加速度をyに対して適用していきましょう。

しかし初速29000m/sだと、軽々地球を離脱して重力圏外に吹っ飛んでいきそうです。

271 :名前は開発中のものです。:04/07/06 21:37 ID:jam3e6md
地球の半径は6370kmぐらいでいいですか?

272 :HSPが初プログラム@生徒希望:04/07/06 22:03 ID:GhTVD8Z+
>>242
> if n{
このnって何の意味があるんですか?


それから>>241にある「>>」の使い方がわかりません…

273 :HSPが初プログラム@生徒希望:04/07/06 22:06 ID:GhTVD8Z+
連レス済みません

HSPでの平方根の出すのと、その整数か否かの判断てできますか?
できれば、教えてください。

質問ばっかで済みません

274 :x≠先生かつx=生徒 ⇒ x=俺:04/07/06 23:17 ID:BOq5Vq10
>>269
ガ━━(゚Д゚;)━━━ン!!
物理じゃなくて化学だし・・・

>>270
何をすればいいのか全くわからそ( ´・ω・`)

>>271
ループを抜けるときにn = 0にされていたら(割り切れたときにn = 0にして抜けている)無視、
されていない(素数)のとき、いろいろしてる。

>>はビットシフト。2進数が関わってきます。
で、結果的には
x >> nは、xを2のn乗で割るのと同じ。
x << nは、xに2のn乗をかけるのと同じ。
だから、n>>1はn/2と同じ。

平方根も求められるには求められるけど、自分で求めるアルゴリズムは用意しないといけない。
その整数か否かとは・・・?

275 :名前は開発中のものです。:04/07/06 23:53 ID:pkSoPn0/
//HSPヘルプではincludeするのはhspext.hsになってますがhspext.asじゃないと動きません
//なぜ?(´・ω・`)
//
//平方根の求め方
//
//HSP2.61で動作確認しますた
//
#include "hspext.as"
//100の平方根を求めます
i=100
//iの平方根を固定少数点型でjに代入
emsqr j,i
//jの値を整数型にキャスト(少数点以下切り捨て)
j=j>>4
//jを表示
print j
stop

276 :名前は開発中のものです。:04/07/07 04:08 ID:FL+3iUiB
これであってるのかな
よくわからんので実行しても合ってるのか確認しようがない(´・ω・`)
ググった式をそのまま当てはめてみました

弾道シミュレーション
http://gamdev.org/up/img/814.zip

277 :HSPが初プログラム@生徒希望:04/07/07 21:29 ID:dX/NBYiw
>>274
返答有難う御座います。
学校で考えてたら、平方根だけじゃダメだとわかったんで、
>>233にあった2以上〜自分未満ってのをやってみようと思います。

因みに整数か否かとは、平方根出したときのことです。
例えば√2は1.414…ですよね?だから整数じゃないですし、√4なら2ですから整数で、
整数じゃなかったら素数に入れよう!とか思ってたんですが、
11*13(適当に思いついた)だとダメなんですよね…

278 :名前は開発中のものです。:04/07/07 21:32 ID:W6JVsWwD
ゲームに必要なのは実現できるか否かだ
ちょっぱやな素数判定できることに課題としての価値はないよ
ガンガレ

279 :x≠先生かつx=生徒 ⇒ x=俺:04/07/07 22:18 ID:lBWiEqny
√27 = 5.1961...
27 = 3 * 9

280 :C / HSPの生徒 orz:04/07/07 23:08 ID:B0lUGdqJ
>>275
> HSPヘルプではincludeするのはhspext.hsになってますがhspext.asじゃないと動きません
HSPヘルプは電波入っているから気にしないがよし。
つかhspソースファイルの拡張子は".as"以外使わないと思うが。

>>274
>267を簡単に表現すると、
   __
 /   \           /
〇     〇←B.止まる A/) 角度 R

A.初速<29000m/s

こんな感じの軌道を描画する。
で、真空中なのでX軸方向の速度は 初速 * cosR
Y軸は 初速 * sinR で、毎秒-10していく。

281 :x≠先生かつx=生徒 ⇒ x=俺:04/07/07 23:51 ID:lBWiEqny
>>280
#include "hspext.as"
screen 2, 300, 100, 4: title "Config"
pos 5, 8: mes "初速:": pos 50, 5: input speed, 215, 25: pos 270, 8: mes "m/s"
pos 5, 38: mes "角度:": pos 50, 35: input angle, 210, 25: pos 265, 38: mes "/255"
pos 5, 70: objsize 290, 25: button "Start", *start
gsel 0: stop
*start
emsin sin, angle: emsin cos, angle
mx = speed * sin / 255: my = speed * cos / 255
x = 0: y = 480000: pos x/1000, y/1000
repeat
x += mx: y -= my: my -= 10
line x / 1000, y / 1000
wait 10
loop
stop

こんな感じかぇ・・・?

282 :C / HSPの生徒 orz:04/07/08 14:31 ID:oFd7+xVG
>>281
sin と cos が逆だけど、だいたいOKじゃないか?
俺も281参考に一応作ってみた。
…なんでcos7がマイナスになるんだ、理解できん。

#include "hspext.as"
#define EDIT_X 160
#define EDIT_Y 24
#define G 10
#define SCREEN_X 640
#define SCREEN_Y 480
width SCREEN_X, SCREEN_Y
title "C / HSPの生徒 orz"
color 200, 200, 200:boxf
pos 120, 70:button "描画", *ready
goto config_sub

283 :C / HSPの生徒 orz:04/07/08 14:31 ID:oFd7+xVG
*ready
color 200, 200, 200:boxf
if v0 > 29000:stop
uchar_r = r \ 360 * 255 / 360
color 240
emsin sin, uchar_r:emcos cos, uchar_r
vx = -v0 * cos / 255:vy = -v0 * sin / 255
x = 0:y = SCREEN_Y:pos x, y
repeat
x += vx:y += vy:vy += G
line x, y
if (y > SCREEN_Y) || (x < 0) || (x > SCREEN_X):break
await 0
loop
*config_sub
color
pos 40, 15:mes "初速 :":pos 100, 10:input v0, EDIT_X, EDIT_Y
pos 40, 45:mes "角度 :":pos 100, 40:input r, EDIT_X, EDIT_Y
stop

284 :x≠先生かつx=生徒 ⇒ x=俺:04/07/08 17:42 ID:gJH4XEvh
おっと、emcosがemsinになってたか・・・

285 :名前は開発中のものです。:04/07/08 17:45 ID:f5vo4Z1w
なんていうかさ。素数よりも、もっと普通にゲームでよく使うようなやつを
やったほうがいいんじゃないかな?

ボールが跳ねるのをシミュレート、とかなら
ジャンプするゲームでは確実に使うだろうし。

286 :4 ◆3VUXqvbfSY :04/07/08 19:00 ID:xmAVGw0W
なんか…確かに素数ばっかりに見えますが…違うんですよ。
素数で詰まってる人が多いってだけで…


あとですね…ボールが跳ね返るシミュレーション、ジャンプに使いますかねぇ?
マリオが勝手に地面で跳ね返ったら、俺は切れますがw


…ああ、何時になったらインベーダーが…本来なら、そろそろ、赤い四角に弾でも撃って貰おうと思ってたんですが…

わかりました。二つ出します

メイン課題 前の、赤い四角に弾を撃って貰います。さらに前課題の降ってくる物体と相殺させて下さい。
弾丸は横2ドット、縦16ドットで黄緑色
動きは Y座標(初期値は赤い四角のY座標+16)その後Y--; X座標(初期値は赤い四角のX座標÷2)その後固定;
当たった時点もしくは、画面外にでたら再発射が可能となる。
基本一発。ただし、複数発実装できるならしても良い。




課題外伝 ボールの跳ね返りシミュ
ボールを(0,0)から水平投射する。(速度は自由)
床の反発係数は0.8
壁は1.0
重力加速度は10m/s^2

287 :名前は開発中のものです。:04/07/08 20:05 ID:kembbGf8
トランポリンでも使うつもりなんですかね
ジャンプで跳ね返りって…
そいやマリオには敵ふんだときちょっと浮くけどあれなのかな・・・

288 :名前は開発中のものです。:04/07/08 21:00 ID:gJH4XEvh
名古屋撃ちのために、実装しない方向で行こう。。。

>>286
こんな感じでOK?

#include "hspext.as"
screen 2, 300, 100, 4: title "Config"
pos 5, 8: mes "初速:": pos 50, 5: input speed, 215, 25: pos 270, 8: mes "m/s"
pos 5, 38: mes "角度:": pos 50, 35: input angle, 210, 25: pos 265, 38: mes "/255"
pos 5, 70: objsize 290, 25: button "Start", *start
gsel 0: stop
*start
cls
emsin sin, angle: emcos cos, angle
mx = speed * sin / 255: my = speed * cos / 255
x = 320000: y = 240000: pos x/1000, y/1000
repeat
x += mx: y -= my: my -= 10
if x<0: x=0: mx = -mx
if x>640000: x=640000: mx = -mx
if y>480000: y=480000: my = -my * 8 / 10: if my<80: my = 0: stop
line x / 1000, y / 1000
wait 1
loop
stop

289 :名前は開発中のものです。:04/07/08 23:33 ID:UCn/khb4
#include "hspext.as"
#const G 10
#const Coeff 10
#const Wall_e 10
#const Floor_e 8

screen 0, 640, 480, 1
dim sin,256 :dim cos,256
repeat 256 :emsin sin.cnt,cnt :emcos cos.cnt,cnt :loop

screen 2, 150, 100, 4: title "Config"
pos 5, 8: mes "初速:": pos 50, 5: input V, 50, 25: pos 100, 8: mes "m/s"
pos 5, 38: mes "角度:": pos 50, 35: input C, 50, 25: pos 100, 38: mes "°"
pos 5, 70: objsize 120, 25: button "Start", *main
gsel 0 :stop
*main
if V > 29000 : 29000
if C > 90 : C = 90
C = C * 256 / 360 :Vx = V :Vy = V :Ycnt = 0 :x = 0 :y = 0

repeat
redraw 0 :await 1
color 255,255,255 :boxf :color 255,0,0 :pos 0, 460 : mes "■" :color 0,0,255 :line 0, 475, 640, 475
color 0,0,0 :x += Vx * (-cos.C) / 256 :y += Vy * sin.C / 256 - (G * Ycnt)

if x / 1000 < 0 :Vx = -Vx * Wall_e / Coeff :x = 0
if x / 1000 > 624 :Vx = -Vx * Wall_e / Coeff :x = 624000
Ycnt++ :if y < 0 :Vy = Vy * Floor_e / Coeff :y = 0 :Ycnt = 0
pos x / 1000, -y / 1000 + 460 : mes "○" :if cnt > 0 & (Vy <= 0) :break
redraw 1 :loop :stop
投下

290 :x≠先生かつx=生徒 ⇒ x=俺:04/07/09 00:10 ID:bufBX0Vb
#include "hspext.as"
screen 2, 300, 100, 4: title "Config"
pos 5, 8: mes "初速:": pos 50, 5: input speed, 215, 25: pos 270, 8: mes "m/s"
pos 5, 38: mes "角度:": pos 50, 35: input angle, 210, 25: pos 265, 38: mes "/255"
pos 5, 70: objsize 290, 25: button "Start", *start
gsel 0: stop
*start
cls
emsin sin, angle: emcos cos, angle
mx = speed * sin / 255: my = speed * cos / 255
x = 320000: y = 240000: pos x/1000, y/1000
repeat
ox = x: oy = y: x += mx: y -= my: my -= 10
if x<0: x=0: mx = -mx
if x>624000: x=624000: mx = -mx
if y>464000: y=464000: mx = mx * 8 / 10: my = -my * 8 / 10: if my<80|(mx==0): my = 0: stop
;redraw 0
color 255, 255, 255: pos ox/1000, oy/1000: mes "○"
color 0, 0, 0: pos x/1000, y/1000: mes "○"
;redraw 1
wait 1
loop
stop

改造版。

>>289
スゲー・・・

291 :C / HSPの生徒 orz:04/07/09 10:25 ID:nlM8j7wC
>>286の課題作ってみたが、ゲーム性を考えて数値をアレンジしています。
#define RED_SIZE 32
#define ENEMY_SIZE 32
#define MOVE_TIME 32
#define OBJ_SX 2
#define OBJ_SY 16
#define OBJ_SPEED 16
randomize
width 640, 480
red_x = 640 - RED_SIZE / 2:red_y = 480 - RED_SIZE
repeat
redraw 2:color 255, 255, 255:boxf
if enemy_stat = 0:enemy_y = -ENEMY_SIZE:enemy_stat = 1:title "C / HSPの生徒 orz 撃破数: "+obj_cnt
enemy_timer++:if enemy_timer > MOVE_TIME:enemy_timer = 0
if enemy_timer = 0:rnd enemy_x, 640 - ENEMY_SIZE
stick key, 15:if key & 1{red_x-4}if key & 4{red_x+4}
stick key, 16:if key = 16 & (obj_stat = 0){
obj_stat = 1:obj_x = RED_SIZE / 2 - (OBJ_SX / 2) + red_x:obj_y = red_y - 16}
if (enemy_x < obj_x) & (obj_x + OBJ_SX < (enemy_x + ENEMY_SIZE)) {
if (enemy_y < obj_y) & (obj_y + OBJ_SY < (enemy_y + ENEMY_SIZE)) {
obj_cnt++:obj_stat = 0:enemy_stat = 0:color 255, 0, 0:boxf} }if obj_y + OBJ_SY < 0:obj_stat = 0
if enemy_stat:color 100, 100, 200:boxf enemy_x, enemy_y, enemy_x + ENEMY_SIZE, enemy_y + ENEMY_SIZE
color 200, 100, 100:boxf red_x, red_y, red_x + RED_SIZE, red_y + RED_SIZE
if obj_stat:color 100, 200, 100:boxf obj_x, obj_y, obj_x + OBJ_SX, obj_y + OBJ_SY:obj_y-OBJ_SPEED
enemy_y++:if enemy_y > 480{enemy_stat = 0}await 20:redraw 1
loop

292 :285:04/07/09 10:46 ID:mw4kM0V8
すまん、言葉足らずだった。
ジャンプの軌道の加速減速だ。

ボールが跳ねるって部分は蛇足だったな。

293 :285:04/07/09 10:48 ID:mw4kM0V8
>ボールが跳ねるって部分は蛇足だったな。

>ボールが跳ねるって言い方は変だったな。


言葉足らずって言うより、俺、言い回しが変だね。

294 :名前は開発中のものです。:04/07/09 16:12 ID:o2BnBgF7
>>277
平方根以下の素数で割り切れるかを調べればいいので11*13(=143)をチェックする場合、
143の平方根が11.958......なので2〜11の数で割り切れるか調べればよい
11で割り切れるので素数ではないことがわかる

295 :名前は開発中のものです。:04/07/09 19:10 ID:o2BnBgF7
似たような事やってるスレみつけてきた

[VB] 初心者に課題を [.net]
http://pc5.2ch.net/test/read.cgi/tech/1048173861/

296 :名前は開発中のものです。:04/07/09 22:13 ID:2xcy471S
<html><body onload="go()">
角度<input type="text" value="45" id=ra>度<br>
初速<input type="text" value="1000" id=sp>m/s<br>
<input type="button" value="GO" onclick="go()"><script>
elm=new Array();
for(i=0;i<128;i++){
elm[i]=document.createElement('div');
elm[i].style.position='absolute';
elm[i].style.font='normal normal normal 7px "MS ゴシック"';
elm[i].innerHTML='■';
document.body.appendChild(elm[i]);
}
function go(){
r=document.getElementById('ra').value; s=document.getElementById('sp').value;
document.getElementById('ra').value=r=(r>89)?89:(r<0)?0:r;
document.getElementById('sp').value=s=(s>29000)?29000:(s<1)?1:s;
for(i=0;i<128;i++){
y=0; rd=r/180*Math.PI;
for(j=0;j<5000*i/s/Math.cos(rd);j++) y+=(s-10*j)*Math.sin(rd);
if(y<0)y=0;
elm[i].style.left=i*5; elm[i].style.top=475-y/1000;
}
}
</script></body></html>

297 :HSPが初プログラム@生徒希望:04/07/09 22:49 ID:nI9aNbgB
一応あってますか?
課題2小さい方から1000個の素数
sdim m,4000 : notesel m
mesbox m,640,480

n=2 : c=1 : j=1

*judge
if n-1=j : goto *pn
j+

if n \ j=0 : n+ : j=1

wait 1
goto *judge

*pn
c+
noteadd ""+n

if c=1000 : goto *finish

n+ : j=1

wait 1
goto *judge

*finish
objprm 0, m
stop
激しく遅いですが…

298 :名前は開発中のものです。:04/07/09 23:19 ID:JPrr+eC9
>>297
初期値の c は0にしないと、一つ少なくなるよ

299 :HSPで素数:04/07/10 08:28 ID:gc5EpECZ
#include "hspext.as"
False=0:True=1:count++:i=3
mes "計算中......"
while count<1000
    sosu=True
    j=3
    emsqr chk,i
    chk=chk>>4
    while j<=chk
        if (i \ j)=0 {
            sosu=False
            _break
        }
        j=j+2
    wend

    if sosu=True {
//        cls
//        mes i
        EndNum=i
        count++
    }
    i=i+2

    gettime NowTime, 6
    if (NowTime!=BeforeTime) {
        BeforeTime=NowTime
        wait 1
    }
wend
mes "計算終了。"+count+"個目の素数は"+EndNum+"です。"
stop mes

300 :名前は開発中のものです。:04/07/10 14:33 ID:/RFPsMma
ゲムが完成するのは10後くらいの気がするのは私だけだろうか

301 :名前は開発中のものです。:04/07/10 15:30 ID:wQKs6GiV
このスレ遠回りしすぎ。
素数とか必要になったときにやればいいのに。
ゲーム製作に必ず必要なものではない。

302 :名前は開発中のものです。:04/07/10 16:06 ID:qklEKUA/
HSPにまともなゲームが無いのはゲームに関係無い事ばかりに力入れてる厨房ばかりだからじゃないか?w

303 :名前は開発中のものです。:04/07/10 16:07 ID:gc5EpECZ
弾発射の課題で弾の色が黄緑が指定されてたので調べてきました
JISで決まってるようです
#BBC000(187,192,0)
http://www5d.biglobe.ne.jp/~m_any-dg/jisiro_wabun.html

304 :285:04/07/10 19:01 ID:EpDrHTyy
>301
俺もそう思った。上から落ちてくるものを受け止めるとか
そういう簡単なゲームを作ったみたほうがいいんじゃないかと。

305 :名前は開発中のものです。:04/07/10 19:02 ID:EpDrHTyy
しまった、名前欄そのままだった_| ̄|○

306 :HSPで素数 エラトステネスの篩い:04/07/10 19:34 ID:gc5EpECZ
#include "hspext.as"
True=1
False=0
Max=7920
Dim SosuList, Max

emsqr chk,Max
chk=chk>>4

mes "計算中......"
i=3
while i<=chk
    j=i+i
    while j<Max
        SosuList.j=True
        j=j+i
    wend
    i=i+2
wend

i=3
sum=1
while i<Max
    if SosuList.i=False {
        sum++
    }
    i=i+2
wend
mes "合計"+sum+"個の素数を発見しました。"
stop

307 :HSPが初プログラム@生徒希望:04/07/10 21:23 ID:+13mwptL
>>298
あ、それはちょっと変更ミスです。

>>297で一応合ってるんでしょうか?

308 :HSPが初プログラム@生徒希望:04/07/10 21:53 ID:+13mwptL
連レススマソ
こうするとちょっと早くなりました
sdim m,4000 : notesel m
mesbox m,640,480

n=2 : c=0 : j=1

*judge

if n-1=j : goto *pn
j+

if n \ j=0 : n+ : j=1

await
goto *judge

*pn
c+
noteadd ""+n

if c=1000 : goto *finish

n+ : j=1


goto *judge

*finish
objprm 0, m
stop


309 :名無しさん@そうだ選挙に行こう:04/07/11 07:11 ID:q09vifT2
課題8 メイン課題 弾を撃って貰います
http://gamdev.org/up/img/828.zip

310 :名無しさん@そうだ選挙に行こう:04/07/11 08:10 ID:k56A1TFY
課題8 Zで弾発射

<html><head><title>Invader Game?</title><style type="text/css"><!--
.ch{position:absolute;width:32px;height:32px;}
.self{background-color:#FF0000;}.enemy{background-color:#0000FF;}
.missile{background-color:#BBC000;position:absolute;width:2px;height:16px;top:-20px;}
--></style></head>
<body onLoad="main()" onKeyDown="k[event.keyCode]=1" onKeyUp="k[event.keyCode]=0">
<div id=char class="self ch"></div><div id=enemy class="enemy ch"></div>
<div id=mi0 class=missile></div><div id=mi1 class=missile></div><div id=mi2 class=missile></div>
<script language="Javascript"><!--
var timerID, k = [];var x = 304, y = 448, charElm = document.getElementById('char');
var eX, eY = 480, enemyElm = document.getElementById('enemy');
var miE = [], miA = [], miX = [], miY = [];
for (i = 0; i < 3; i++){miE[i] = document.getElementById('mi' + i);miA[i] = false;miY[i] = -20;}
function setEnemy(){eY = -32;enemyElm.style.left = eX = Math.floor(Math.random() * 640);}
function main(){clearTimeout(timerID);
x += k[37] && x ? -8 : k[39] && x < 608 ? 8 : 0;y += k[38] && y ? -8 : k[40] && y < 448 ? 8 : 0;
charElm.style.left = x;charElm.style.top = y;
for (i = 0; i < 3; i++){if (miA[i]){
if (miY[i] < -20) miA[i] = false;
if (Math.abs(miX[i] - eX - 15) < 17 && Math.abs(miY[i] - eY - 15) < 23){
miA[i] = false;miY[i] = -20;setEnemy();}
miE[i].style.top = miY[i] -= 8;
}else if (k[90]){miA[i] = true;miE[i].style.left = miX[i] = x + 15;miE[i].style.top = miY[i] = y - 16;
k[90] = 0;break;}}
if (eY > 480) setEnemy();enemyElm.style.top = eY += 8;
if (Math.abs(x - eX) > 32 || Math.abs(y - eY) > 32) timerID = setTimeout(main, 30);
}//--></script></body></html>


311 :名前は開発中のものです。:04/07/12 00:04 ID:m2Go/Kix
>>285
>>301
>>304
先生!試しに出題と採点をしてみませんか?

312 :名前は開発中のものです。:04/07/12 06:31 ID:YBMwRYh2
>310
神降臨

313 :名前は開発中のものです。:04/07/12 14:47 ID:m2Go/Kix
課題9 課題外伝 ボールの跳ね返りシミュ
http://gamdev.org/up/img/834.zip

314 :C / HSPの生徒 orz:04/07/12 19:22 ID:rv2Ic3EG
課題8 メイン課題 弾を撃って貰います
http://gamdev.org/up/img/838.lzh
馬鹿やってたので修正。

315 :HSPが初プログラム@生徒希望:04/07/12 19:26 ID:ANTzJhbU
敵に触れても終わりませんけど、いいんですか?

316 :VB.NETで素数:04/07/12 21:26 ID:m2Go/Kix
Module Module1

    Sub Main()
        Dim i As Integer
        Dim j As Integer
        Dim count As Integer
        Dim sosu As Boolean

        i = 2
        While count < 1000
            sosu = False
            For j = 2 To Math.Sqrt(i)
                If (i Mod j) = 0 Then
                    sosu = True
                End If
            Next
            If Not sosu Then
                count = count + 1
                Console.WriteLine(i)
            End If
            i = i + 1
        End While
    End Sub

End Module

317 :名前は開発中のものです。:04/07/13 19:20 ID:EV/5lhQ6
素数はそろそろ打ち切りにしない?

318 :4 ◆3VUXqvbfSY :04/07/13 21:57 ID:UU6rJvtG
打ち切りってどうやるんでしょうか…

まあ。進める人はいつまでも素数をやらずに、次に進んでください。
とか言っときます。

んでは…次の課題
赤い四角の敵の移動をインベダ風にしよう。
縦2体 横3体の合計六機の敵が、左右に移動します。
端に到達すると、一キャラ分下降します。
弾が当たると、当たったキャラを消去し、ソコが抜けた状態でそのまま、上の動作を繰り返します。
下まで到達されたら終了。

319 :名前は開発中のものです。:04/07/14 14:18 ID:fwuwWRAB
チェック対象がたくさんある場合の当たり判定って、どうやるのがベストなんだろう?
弾が20個、ターゲットが20機居たら20x20の全組み合わせの判定をするしかないの?

320 :名前は開発中のものです。:04/07/14 14:32 ID:hWTGJY1w
>>319
Octtree でググってみ

321 :C / HSPの生徒 orz:04/07/14 19:12 ID:JsMT7SMh
課題10 インベダ風移動
http://gamdev.org/up/img/849.lzh

322 :134:04/07/14 19:57 ID:3WONRXZv
他のパソコンだと重いかも

http://gamdev.org/up/img/850.lzh




323 :名前は開発中のものです。:04/07/14 21:08 ID:R7T0IzUh
>>322
高速弾で弾幕張ってくるインベーダー超怖え(((( ;゚Д゚)))ガクガクブルブル

324 :134:04/07/14 21:42 ID:3WONRXZv
>323
いや、弾の発射の処理がいまいちよく分からなかったので、そうなってしまいました。
感想ありがとうございます。


325 :HSPが初プログラム:04/07/14 22:00 ID:naAXWZ/B
やってみました。凄く難しかった…

326 :課題3 赤い四角 その1:04/07/15 01:22 ID:mfzLmHcI
#include <d3d9.h>
LPDIRECT3D9 g_pD3D = NULL;
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL;

struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw;
DWORD color;
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
HRESULT InitD3D( HWND hWnd )
{
if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
return E_FAIL;

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pd3dDevice ) ) )
{
return E_FAIL;
}

return S_OK;
}

327 :課題3 赤い四角 その2:04/07/15 01:23 ID:mfzLmHcI
HRESULT InitVB()
{
CUSTOMVERTEX vertices[] =
{
{ 0.0f, 0.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
{ 320.0f, 0.0f, 0.5f, 1.0f, 0xffff0000, },
{ 320.0f, 240.0f, 0.5f, 1.0f, 0xffff0000, },
{ 0.0f, 240.0f, 0.5f, 1.0f, 0xffff0000, },
};

if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4*sizeof(CUSTOMVERTEX),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
{
return E_FAIL;
}

VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, vertices, sizeof(vertices) );
g_pVB->Unlock();

return S_OK;
}

328 :課題3 赤い四角 その3:04/07/15 01:24 ID:mfzLmHcI
VOID Cleanup()
{
if( g_pVB != NULL )
g_pVB->Release();

if( g_pd3dDevice != NULL )
g_pd3dDevice->Release();

if( g_pD3D != NULL )
g_pD3D->Release();
}

VOID Render()
{
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );

if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 2 );

g_pd3dDevice->EndScene();
}

g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}

329 :課題3 赤い四角 その4:04/07/15 01:26 ID:mfzLmHcI
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
Cleanup();
PostQuitMessage( 0 );
return 0;
}

return DefWindowProc( hWnd, msg, wParam, lParam );
}

INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
"D3D Tutorial", NULL };
RegisterClassEx( &wc );

HWND hWnd = CreateWindow( "D3D Tutorial", "課題",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 640, 480,
GetDesktopWindow(), NULL, wc.hInstance, NULL );


330 :課題3 赤い四角 その5(ラスト):04/07/15 01:27 ID:mfzLmHcI
if( SUCCEEDED( InitD3D( hWnd ) ) )
{
if( SUCCEEDED( InitVB() ) )
{
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );

MSG msg;
ZeroMemory( &msg, sizeof(msg) );
while( msg.message!=WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
Render();
}
}
}

UnregisterClass( "D3D Tutorial", wc.hInstance );
return 0;
}


331 :名前は開発中のものです。:04/07/15 01:45 ID:iLVEI/nf
やっぱりソース貼りつけは見辛いな

332 :名前は開発中のものです。:04/07/15 08:31 ID:FCzCT1vF
課題1,3,4,5,7 (ActiveBasic)です。残りは、後でやる事にします

http://gamdev.org/up/img/854.lzh

333 :C / HSPの生徒 orz:04/07/15 09:18 ID:Ian2SxqZ
>>322>>324
始めて見たけど、こんな感じのインベーダーもいいかも(`・ω・´)

オリジナルに近づけるなら、
 ・折り返しのときにずれないようにする
 ・自分の弾は二発(あの弾幕に一発はきつい)
 ・敵はばらばらに弾を撃つ
だと思う。

せっかく敵を構造体で処理してるから、
敵の処理のところで個別に乱数発射させればいいんじゃない?

334 :C / HSPの生徒 orz:04/07/15 09:47 ID:Ian2SxqZ
やべ、訂正。
〇自分の弾は一発(あの弾幕だと二発じゃないときつい)
×自分の弾は二発(あの弾幕に一発はきつい)

335 :C / HSPの生徒 orz:04/07/15 11:27 ID:Ian2SxqZ
課題10 インベダ風移動 修正版
http://gamdev.org/up/img/855.lzh

次の課題マダー?

336 :名前は開発中のものです。:04/07/15 12:55 ID:930GPiwR
>>335
ソースが初心者っぽくない:-)

337 :名前は開発中のものです。:04/07/15 20:55 ID:mfzLmHcI
#include <d3d9.h>
#include <dinput.h>
LPDIRECT3D9 g_pD3D = NULL;
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL;
LPDIRECTINPUT8 g_lpDI;
LPDIRECTINPUTDEVICE8 g_lpDIDevice;
HINSTANCE g_hinst;
HWND g_hwndMain;
struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw;
DWORD color;
};
CUSTOMVERTEX vertices[] =
{
{ 0.0f, 0.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
{ 320.0f, 0.0f, 0.5f, 1.0f, 0xffff0000, },
{ 320.0f, 240.0f, 0.5f, 1.0f, 0xffff0000, },
{ 0.0f, 240.0f, 0.5f, 1.0f, 0xffff0000, },
};
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
int cx;
int cy;
void WINAPI ProcessKBInput()
{
#define KEYDOWN(name, key) (name[key] & 0x80)
char buffer[256];
HRESULT hr;
hr = g_lpDIDevice->GetDeviceState(sizeof(buffer),(LPVOID)&buffer);
if FAILED(hr)
{

338 :名前は開発中のものです。:04/07/15 20:55 ID:mfzLmHcI
exit(EXIT_FAILURE);
}
cx=0;
cy=0;
if (KEYDOWN(buffer, DIK_RIGHT))
cx=1;
else if(KEYDOWN(buffer, DIK_LEFT))
cx=-1;

if (KEYDOWN(buffer, DIK_UP))
cy=-1;
else if (KEYDOWN(buffer, DIK_DOWN))
cy=1;
}
void WINAPI DI_Term()
{
if (g_lpDI)
{
if (g_lpDIDevice)
{
g_lpDIDevice->Unacquire();
g_lpDIDevice->Release();
g_lpDIDevice = NULL;
}
g_lpDI->Release();
g_lpDI = NULL;
}
}
HRESULT InitJoystick()
{
HRESULT hr;


339 :名前は開発中のものです。:04/07/15 20:57 ID:mfzLmHcI
//オブジェクトの作成
hr = DirectInput8Create(g_hinst, DIRECTINPUT_VERSION,
IID_IDirectInput8, (void**)&g_lpDI, NULL);
if FAILED(hr)
{
exit(EXIT_FAILURE);
}

//キーボード デバイスの作成
hr = g_lpDI->CreateDevice(GUID_SysKeyboard, &g_lpDIDevice, NULL);
if FAILED(hr) {
DI_Term();
exit(EXIT_FAILURE);
}

//キーボードのデータ形式の設定
hr = g_lpDIDevice->SetDataFormat(&c_dfDIKeyboard);
if FAILED(hr) {
DI_Term();
exit(EXIT_FAILURE);
}

//キーボードの動作の設定
hr = g_lpDIDevice->SetCooperativeLevel(g_hwndMain,
DISCL_FOREGROUND | DISCL_NONEXCLUSIVE);

if FAILED(hr) {
DI_Term();
exit(EXIT_FAILURE);
}
}

340 :名前は開発中のものです。:04/07/15 20:58 ID:mfzLmHcI
HRESULT InitD3D( HWND hWnd )
{
if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
return E_FAIL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pd3dDevice ) ) )
{
return E_FAIL;
}

return S_OK;
}
HRESULT InitVB()
{
if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4*sizeof(CUSTOMVERTEX),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
{
return E_FAIL;
}
VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, vertices, sizeof(vertices) );

341 :名前は開発中のものです。:04/07/15 21:07 ID:mfzLmHcI
g_pVB->Unlock();
return S_OK;
}

VOID Cleanup()
{
if( g_pVB != NULL )
g_pVB->Release();
if( g_pd3dDevice != NULL )
g_pd3dDevice->Release();
if( g_pD3D != NULL )
g_pD3D->Release();
}
VOID Render()
{
if (g_lpDIDevice) g_lpDIDevice->Acquire();
ProcessKBInput();
for (int i=0; i<4; i++)
{
vertices[i].x=vertices[i].x+cx;
vertices[i].y=vertices[i].y+cy;
}
VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )
exit(EXIT_FAILURE);
memcpy( pVertices, vertices, sizeof(vertices) );
g_pVB->Unlock();

g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{


342 :名前は開発中のものです。:04/07/15 21:07 ID:mfzLmHcI
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 2 );

g_pd3dDevice->EndScene();
}
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
Cleanup();
PostQuitMessage( 0 );
return 0;
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
g_hinst=hInst;
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
"D3D Tutorial", NULL };
RegisterClassEx( &wc );
HWND hWnd = CreateWindow( "D3D Tutorial", "課題",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 640, 480,
GetDesktopWindow(), NULL, wc.hInstance, NULL );
g_hwndMain=hWnd;
InitJoystick();
if( SUCCEEDED( InitD3D( hWnd ) ) )

343 :名前は開発中のものです。:04/07/15 21:36 ID:FFz8UuO5
うpろだ使えよ・・

344 :名前は開発中のものです。:04/07/15 21:48 ID:mfzLmHcI
過去ログよんだからわざわざ貼ったのに
ろだ推奨にルール変更?

345 :名前は開発中のものです。:04/07/15 22:09 ID:A+IEwnnr
ところでGdevうき落ちてる?

346 :名前は開発中のものです。:04/07/15 22:12 ID:mfzLmHcI
とりあえずラストまで

>>337-342
{
if( SUCCEEDED( InitVB() ) )
{
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );

MSG msg;
ZeroMemory( &msg, sizeof(msg) );
while( msg.message!=WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
Render();
}
}
}

UnregisterClass( "D3D Tutorial", wc.hInstance );
return 0;
}


347 :名前は開発中のものです。:04/07/15 22:17 ID:nw/x++ui
ライフゲームを自分でぐぐって製作

348 :名前は開発中のものです。:04/07/15 22:27 ID:FFz8UuO5
>>344
いや、俺は過去ログ読んでないから知らんが、こんだけ連張りするんなら
うpろだ使えばいいだろって事。せっかく用意されてんだし。

と思ったら今gamdev.org落ちてんのか・・

349 :4 ◆3VUXqvbfSY :04/07/15 22:30 ID:ulthkOuE
まあ…DirectXを使うときは…
初期化は省きましょう

350 :名前は開発中のものです。:04/07/15 22:33 ID:mfzLmHcI
避難所は落ちてますね
wiki、ろだ等全滅です
>>173のろだは生きてるようだけど使っていいのかな?テストって言ってたけど
http://cgi.f11.aaacafe.ne.jp/~novarabb/phpup/upload.php

>>347
先生キタ━━━━━━(゚∀゚)━━━━━━ !!
でもライフゲームなんて作ってたらまたゲームに関係ないものを
作ってと怒り出す人がいるのでその時はおながいしますね
ちなみに採点できる言語は何ですか?

351 :4 ◆3VUXqvbfSY :04/07/15 22:40 ID:ulthkOuE
>>347
ワーイ 良いですねぇ。ライフ「ゲーム」と言い切れば、誰からも文句は出ないですし。
今回は僕は生徒でw

仕様を決めてくださいよ〜
生死条件や個々の移動条件とか

352 :名前は開発中のものです。:04/07/15 22:42 ID:mfzLmHcI
と思ったら4様もキタ━━━━━━(゚∀゚)━━━━━━ !!
了解しました>初期化は省きましょう
サンプルそのままなんで見る意味もないですし
課題に関係がある所だけ貼って後はろだにうぷするのがバランスいいかな

>>348
連貼りするのは生理的に受け付けないのに我慢してやってるんだから
酷いこといわないでよヽ(`Д´)ノ

353 :名前は開発中のものです。:04/07/15 22:51 ID:7EJWxb81
課題10 インベダ風移動

<html><head><title>Invader Game?</title><style type="text/css"><!--
.ch{background-color : #FF0000; position : absolute; width : 32px; height : 32px;}
.missile{background-color : #BBC000;position : absolute;width : 2px; height : 16px;top : -20px;}
--></style></head><body onLoad="main()" onKeyDown="k[event.keyCode]=1" onKeyUp="k[event.keyCode]=0">
<div id=char class="ch"></div><script language="Javascript"><!--
var timerID, k = [], GameOver = false;
var x = 304, y = 448, charElm = document.getElementById('char');
var enMX = 2, enMY = 0, enE = [], enA = [], enX = [], enY = [];
for (i = 0; i < 6; i++){
document.write('<div id=en' + i + ' class="ch"></div>');
enE[i] = document.getElementById('en' + i); enA[i] = true;
enE[i].style.left = enX[i] = i % 3 * 33; enE[i].style.top = enY[i] = Math.floor(i / 3) * 33 - 2;
}
var miE = [], miA = [], miX = [], miY = [];
for (i = 0; i < 3; i++){
document.write('<div id=mi' + i + ' class=missile></div>');
miE[i] = document.getElementById('mi' + i); miA[i] = false; miY[i] = -20;
}


354 :名前は開発中のものです。:04/07/15 22:52 ID:7EJWxb81
function main(){
clearTimeout(timerID);
charElm.style.left = x += k[37] && x ? -8 : k[39] && x < 608 ? 8 : 0;
charElm.style.top = y += k[38] && y ? -8 : k[40] && y < 448 ? 8 : 0;
for (var i = 0; i < 3; i++)
if (miA[i]){
if (miY[i] < -20) miA[i] = false;
miE[i].style.top = miY[i] -= 8;
}else if (k[90]){
k[90] = 0; miA[i] = true;
miE[i].style.left = miX[i] = x + 15; miE[i].style.top = miY[i] = y - 16;
}
var enBMX = enMX, enBMY = enMY;
for (var i = 0; i < 6; i++)
if (enA[i]){
enE[i].style.left = enX[i] += enBMX; enE[i].style.top = enY[i] += enBMY;
enMX = enX[i] > 608 ? -2 : enX[i] < 0 ? 2 : enMX;
if (enX[i] > 608 || enX[i] < 0) enMY = 32;
if (Math.abs(x - enX[i]) < 32 && Math.abs(y - enY[i]) < 32 || enY[i] > 448) GameOver = true;
for (var j = 0; j < 3; j++)
if (miA[j] && miX[j] - enX[i] < 32 && enX[i] - miX[j] < 2 && miY[j] - enY[i] < 32 && enY[i] - miY[j] < 16){
enA[i] = miA[j] = false; enE[i].style.top = miE[j].style.top = -40;
break;
}
}
if (enBMY == 32) enMY = 0;
timerID = GameOver ? 0 : setTimeout(main, 30);
}//--></script></body></html>


355 :134:04/07/16 10:38 ID:9OMAGGSs
ライフゲームを検索で見てみましたけど、これは二次元配列の処理がオセロみたいな感じになりそうですね
それで、存在しない配列を参照するバグ続出…

356 :名前は開発中のものです。:04/07/16 11:55 ID:yFlo2kjF
>>352
「4様」って某韓国俳優のミーハーみたいで何かやだなw

357 :134:04/07/16 23:21 ID:9OMAGGSs
ライフゲームっぽいものが途中まで出来ました。

まだ、初期位置が決められないのと、予測していた動きにならないので、バグがあると思います。
あと、ソースを見ると分かりますが、判定部分がかなりいいかげんというか、面倒な事をやってます

http://gamdev.org/up/img/857.lzh

358 :x≠先生かつx=生徒 ⇒ x=俺:04/07/17 14:27 ID:qbj2jGXO
http://gamdev.org/up/img/862.zip

ライフゲーム with HSP
正常に動作するか怪しいけど…。

359 :134:04/07/17 22:23 ID:s02d0Ih2
VB製ライフゲーム改良型です。一応、option.txt内を0か1に書き換えれば初期位置を変更できます。
あと、動きのバグも直しました。やはり、長めのロジックは良くないみたいです。

ちなみに、option.txt内の一番下の行の数値を換えると、進行スピードが変わります
(数値が小さい程スピードが速くなる)

http://gamdev.org/up/img/863.lzh

360 :名前は開発中のものです。:04/07/18 01:40 ID:C6k4fMne
ライフゲームいいねぇ。シムシティで町を育てるの思い出した。原理的には同じだよね。

361 :名前は開発中のものです。:04/07/18 16:26 ID:yH4KfJO3
課題6当たり判定
http://gamdev.org/up/img/865.zip

362 :名前は開発中のものです。:04/07/18 17:00 ID:krHEjaY8
それSTGスレの課題じゃね?

363 :名前は開発中のものです。:04/07/18 17:14 ID:yH4KfJO3
>>362
【初心者】課題をクリアしていくスレ【講習会】まとめ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

【初心者】課題をクリアしていくスレ【講習会】まとめ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

【初心者】課題をクリアしていくスレ【講習会】まとめ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

【初心者】課題をクリアしていくスレ【講習会】まとめ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

【初心者】課題をクリアしていくスレ【講習会】まとめ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

364 :名前は開発中のものです。:04/07/18 17:28 ID:Cpcq6TmO
4つの整数を引数として渡して、その4つから最小値を返す関数を作りたいのですが、いい考えが浮かびません。
賢い皆さんお願いします。

365 :x≠先生かつx=生徒 ⇒ x=俺:04/07/18 17:35 ID:8PWFdHyU
int min4(int n1, int n2, int n3, int n4)
{
    if(n1 > n2) n1 = n2;
    if(n1 > n3) n1 = n3;
    if(n1 > n4) n1 = n4;
    return n1;
}

366 :名前は開発中のものです。:04/07/18 17:35 ID:krHEjaY8
>>363
失礼いたしました。

>>364
ネタ? 普通に順番に比較するんじゃダメ?
int min(int n[], int size){
  int min = INT_MAX, i = 0;
  for(i = 0; i < size; i++)
    if(min > n[i]) min = n[i];
  return min;
}


367 :名前は開発中のものです。:04/07/18 17:57 ID:zInWmaTA
アホみたくそのままの
仕様で書いてるな。

368 :x≠先生かつx=生徒 ⇒ x=俺:04/07/18 18:27 ID:8PWFdHyU
どうしろと・・・。

369 :名前は開発中のものです。:04/07/18 19:20 ID:krHEjaY8
http://gamdev.org/up/img/866.zip
ライフゲーム Java-Swing版っす。

370 :名前は開発中のものです。:04/07/19 01:02 ID:trLHjf+G
>>367
4つぐらいならこれでいいんじゃない?

371 :369:04/07/19 01:56 ID:84bjiiMx
http://gamdev.org/up/img/870.lzh
ライフゲームJava-Swing版、いちおう最終版のつもり。

スピード度外視で、JComponent 使いまくり。かなり重いです。
Cellの数を自由に変えられるように作ったのですが、うちの環境
だとまともに動くのは25x25くらいまで。
それ以上は、一応動くけど超スローモーション。ダメダメですわ。

Javaとはいえ、もうチョイなんとかなる筈。絶対なる。
改良するかは未定。


>>369 のリンク、拡張子間違ってました。スマソ。


372 :HSPが初プログラム:04/07/19 11:07 ID:SY/zAMfR
ライフゲームがどんな物かはわかったんですが、
升目は幾つぐらいがいいのでしょうか?

373 :名前は開発中のものです。:04/07/19 11:10 ID:OTj45Fw+
設定で好きなように変えられるように作ると良い。

374 :名前は開発中のものです。:04/07/19 22:54 ID:E1i61iky
最初は少なく10*10程度で作っておいて、だんだん広げていけば?
遅くなったようならそれまでにすればいいし。

375 :名前は開発中のものです。:04/07/19 23:41 ID:sgE8uFHh
課題8弾を撃って貰います
http://gamdev.org/up/img/872.zip

376 :名前は開発中のものです。:04/07/20 00:57 ID:dOIeUq82
課題10 インベダ風移動(GameMaker)
http://gamdev.org/up/img/873.zip

377 :名前は開発中のものです。:04/07/20 17:58 ID:5+HMeKnI
課題11 ライフゲーム

<html><head><style type="text/css"><!--
.cell{border:1px solid Black;font-size:10px;color:Red;padding:0px;width:10px;height:10px;}
--></style></head><body onload="resize()">
<input type=button onclick="doing = !doing;this.value=doing?'停止':'開始';go()" value="開始">
<input type=button value="ランダム" onclick="setField(1)"><input type=button value="クリア" onclick="setField(0)"><br>
横<input id=horz type=text value="20"><br>縦<input id=vert type=text value="20"><input type=button value="設定" onclick="resize()">
<div id=field></div><script language="Javascript"><!--
var cols, rows, timerID, doing = false, map = new Array(), elms = new Array();
function setField(k){
if (doing) return;
for (i = 0; i < cols * rows; i++){
map[i] = k ? Math.floor(Math.random() * 2) : 0;
elms[i].innerHTML = map[i] == 1 ? '●' : ' ';
}
}
function resize(){
if (doing) return;
cols = document.getElementById('horz').value - 0;
rows = document.getElementById('vert').value - 0;
var str = '<table cellspacing=0 style="cursor:pointer;">';
for (var i = 0; i < rows; i++){
str += '<tr>';
for (var j = 0; j < cols; j++){
num = i * cols + j;
str += '<td id='+num+' class=cell onclick="set(this)"> </td>';
map[num] = 0;


378 :名前は開発中のものです。:04/07/20 17:59 ID:5+HMeKnI
}
str += '</tr>';
}
document.getElementById('field').innerHTML = str + '</table>';
for (i = 0; i < cols * rows; i++) elms[i] = document.getElementById(i + '');
}
function set(elm){
if (doing) return;
map[elm.id] = 1 - map[elm.id];
elm.innerHTML = map[elm.id] ? '●' : ' ';
}
function get(y, x){
if (x < 0 || y < 0 || x > cols - 1 || y > rows - 1) return 0;
return map[y * cols + x];
}
function go(){
clearTimeout(timerID);
var newMap = new Array();
for (i = 0; i < rows; i++){
for (j = 0; j < cols; j++){
next = get(i-1,j-1) + get(i-1,j) + get(i-1,j+1) + get(i,j-1) + get(i,j+1) + get(i+1,j-1) + get(i+1,j) + get(i+1,j+1);
newMap[i * cols + j] = (next == 2) ? map[i * cols + j] : (next == 3) ? 1 : 0;
}
}
for (i = 0; i < cols * rows; i++){
map[i] = newMap[i];
elms[i].innerHTML = (map[i] == 1) ? '●' : ' ';
}
timerID = doing ? setTimeout(go, 500) : 0;
}
//--></script></body></html>


379 :名前は開発中のものです。:04/07/20 19:16 ID:Tgn6EEUd
ちまたで話題のProce55ing
ベーシックみたいでおもしれー

なんか作ってみようかな。
ライフゲームもあったよ
http://processing.org/learning/examples/cellular_automata_1.html

380 :Proce55ing@課題2素数:04/07/20 21:33 ID:Totm+z2W
int i=2;
int j;
int count=0;
boolean sosu;

while (count < 1000)
{
  sosu = false ;
  for (j = 2; j<=sqrt(i); j++)
  {
    if ((i % j) == 0)
    {
      sosu = true;
    }
   }
  if (! sosu)
  {
    count = count + 1;
    println(i) ;
  }
  i = i + 1; 
}


381 :Proce55ingアプレット@課題2素数:04/07/20 23:39 ID:Totm+z2W
http://f50.aaacafe.ne.jp/~kadai/Proce55ing/kadai02/applet/

382 :名前は開発中のものです。:04/07/21 12:16 ID:ddhH1W+g
#include <iostream.h>
int main(void){
  int sosuu[1000];
  // 配列の初期化
  for(int i=0; i<sizeof(sosuu)/sizeof(int); i++) sosuu[i] = 0;
  // ここから素数の計算
  sosuu[0] = 2;
  for(int i=3; i<=sizeof(sosuu); i+=2){
    int j=0;
    while(sosuu[j]){
      if(!(i%sosuu[j])) break;
      j++;
    }
    if(!sosuu[j]) sosuu[j]=i;
  }
  // 素数の出力
  for(int i=0; sosuu[i]; i++) cout << sosuu[i] << " ";
  return 0;
}

383 :名前は開発中のものです。:04/07/22 12:32 ID:Uh3POFTA
夏休みだってのに勢いがないな

384 :名前は開発中のものです。:04/07/22 16:10 ID:ybwWGKGj
課題10 インベダ風移動
http://gamdev.org/up/img/886.zip

385 :名前は開発中のものです。:04/07/22 19:05 ID:dsDe4Hb2
>>383
なんかネタくれ
勢い祈願age

386 :名前は開発中のものです。:04/07/22 20:39 ID:wArk38dJ
ファミコンミニに対抗しましょう。

387 :134:04/07/22 20:45 ID:3j8upKh5
>386
ファミコンミニのようなゲームを作るという事ですか?

388 :ファミコンミニ第1〜3弾のソフト名一覧:04/07/22 20:59 ID:dsDe4Hb2
01.スーパーマリオブラザーズ
02.ドンキーコング
03.アイスクライマー
04.エキサイトバイク
05.ゼルダの伝説1
06.パックマン
07.ゼビウス
08.マッピー
09.ボンバーマン
10.スターソルジャー
11.マリオブラザーズ
12.クルクルランド
13.バルーンファイト
14.レッキングクルー
15.ドクターマリオ
16.ディグダグ
17.高橋名人の冒険島
18.魔界村
19.ツインビー
20.がんばれゴエモン!からくり道中
21.スーパーマリオブラザーズ2
22.謎の村雨城
23.メトロイド
24.光神話 パルテナの鏡
25.リンクの冒険
26.ふぁみこんむかし話 新・鬼ヶ島 前後編
27.ファミコン探偵倶楽部 消えた後継者 前後編
28.ファミコン探偵倶楽部 PART2 うしろに立つ少女 前後編
29.悪魔城ドラキュラ
30.SDガンダムワールド ガチャポン戦士 スクランブルウォーズ

389 :名前は開発中のものです。:04/07/22 21:21 ID:ZMO5Xyrb
売ってるものだけに初心者課題にしてはちと重いのが多いな。
パックマンはスレがあるし。バルーンファイトとディグダグぐらいか?

390 :名前は開発中のものです。:04/07/22 21:33 ID:i0eCPNXf
>>389
ディグダグはさりげにスムーズな穴掘りを実現しようと思うと大変だぞ
いっそゼビウスやスターソルジャーの方がまだ、ってスレあるか
ここにゃ入ってないがインベーダ移動の発展でギャラクシアン降下とか

391 :名前は開発中のものです。:04/07/22 21:41 ID:o7mEJPNw
いきなりレベルアップしたな。

392 :名前は開発中のものです。:04/07/22 21:50 ID:ZMO5Xyrb
んじゃバルーンファイトなら?

393 :名前は開発中のものです。:04/07/22 21:58 ID:dsDe4Hb2
難しいからこそ、こういうスレで解説して欲しいという気も

394 :名前は開発中のものです。:04/07/22 22:14 ID:R1jpzCf9
ゲーム全体じゃなくて、部分的な課題というのはどうですか?

ディグダグなら岩が落ちるところだけとか、マッピーならトランポリンとか。

395 :390:04/07/22 22:20 ID:8dIAslOQ
ディグダグは、単純なオブジェクト移動だけじゃなく、
背景も同時に書き換える必要があって、
その書き換えた背景との当たりも必要なので、初心者には荷が重いと思われ。
バルーンファイトは、オブジェクトの当たり判定時に、
「オブジェクトのどの辺に相手のどの辺が当たったか」
あたりの判定が壁やね。あと重力管理か。
大体、後発のゲームは単純そうに見えて大変なことをやってる場合が多いので、
(テトリスみたいなんは例外)
Pong>ブロック崩し>インベーダ>ギャラクシアン>平安京>パックマンと
実際のゲームの歴史に沿って練習してくといいと思うぞ。


396 :390:04/07/22 22:28 ID:8dIAslOQ
じゃあ、部分的に、ということで、
マッピーのトランポリンの基礎になる
「床でバウンドするボール」でもいってみっか?
シューティング作成スレみたくlevel制で。
level1:
ウィンドウに丸を表示しましょう。
level2:
ウィンドウ下に向かって自由落下させましょう。
level3:
ウィンドウ下端に当たったらそこで止まるようにしましょう。
level4:
ウィンドウ下端に当たったら反射してバウンドするようにしましょう。
減衰なしと考えて、バウンド後、
元の高さに達したらまた落下するようにしましょう。
level5:
床にあたったら減衰するようにして、
次第にバウンドを小さくするようにしましょう。

こんなんでどうやね?

397 :名前は開発中のものです。:04/07/22 22:39 ID:R1jpzCf9
>>396
面白みにかけるから、スタート地点は床で、
そこから右に移動することはできる。
移動してて床が途切れたところ(足元チェック)で
落下開始、とか。
落下もしくは上昇中は足元のチェックはしなくていい。

これだけでもそこそこ処理が必要だし、データの持ち方で書き方が
変わってくると思う。

398 :名前は開発中のものです。:04/07/22 22:40 ID:zFfieLLF
>>396
課題外伝 ボールの跳ね返りシミュ
で、みんなlevel5まで終了してしまってるような・・・

399 :名前は開発中のものです。:04/07/22 22:56 ID:dsDe4Hb2
過去の課題等のまとめページはこちら
http://qrl.jp/?u=104365

400 :名前は開発中のものです。:04/07/22 23:14 ID:NHymqfSQ
>>398
うわ、悪い。ちゃんとチェックせんといかんね。
397氏の意見も踏まえてちょっと考えてみゆ。
一晩くれんか?

401 :400:04/07/22 23:35 ID:NHymqfSQ
一晩と言ったが、少し考えてこんなのはどうか?
課題11:ドットイータ基礎
level1:
画面を○で埋め尽くす。
level2:
画面中央にオブジェクトを表示し、自由移動できるようにする。
埋め尽くした○との重ねあわせに注意。
level3:
キーを離しても、オブジェクトが○中央できっちり止まるようにする。
90度曲がる場合も、○中央まで進んでから曲がること。
level4;
画面周囲、および画面内に迷路上に■を配置し、■の中には進入不可とする
level5:
オブジェクトが通過した○を消去する。

これでどうやね?

402 :x≠先生かつx=生徒 ⇒ x=俺:04/07/22 23:40 ID:cgOfwBjG
ゲームそのものを知らないのでテトリスでも作ろうか…。

403 :名前は開発中のものです。:04/07/23 00:08 ID:ZzAd+MaZ
>400

まことにすまないのだが、既出なんだ。

初心者専用スレ「パックマン」風ゲーム作らない?
http://pc5.2ch.net/test/read.cgi/gamedev/1014326802/l50


404 :400:04/07/23 00:29 ID:MNC+jdGg
>>403
そうかー、ディグダグの話が出たので、
これをディグダグ風穴掘りに発展させよと思ってたのだわ。

level6:
通過した際、単純に消すのではなく、通過していない方向には
壁を残した形で穴あきのパターンを置く
穴あきパターンとしては16種類存在するはづ

level7:
手付かずの領域に進入する際、
進入に応じて進行方向に侵食していくパターンに書き換える
侵食中にUターンすると虫食い状態のパターンが残るはづ

level8:
■の真下が手つかづ、もしくは■でない場合、■を落下させる。
落下した結果、手つかづ、もしくは■の領域に到達したら、
落下中の■を消去

といった感じで。これでもあかんか?

405 :名前は開発中のものです。:04/07/23 00:34 ID:ZzAd+MaZ
あれもこれも駄目って言うだけなのもナニなので。
ファミコンから離れて、初心者用でまだ出てないものを色々考えてみる。

カードゲーム系。神経衰弱など、手持ち札が無く盤面だけでできる簡単なもの。
思考パズル。いわゆる倉庫番や16パズル、ライツアウトなんか。
シューティング系。弾を撃つの発展で誘導弾を撃ってみる。
ワンキーアクション。押すと上昇、離すと下降の洞窟進行ゲーなど。

406 :名前は開発中のものです。:04/07/23 00:39 ID:ZzAd+MaZ
うぉ、行き違い発生(汗
試みはなかなかおもろそう。
初心者がレベルアップするにはいい課題だけど
後半かなりレベル上がりすぎのような気もする。

407 :400:04/07/23 00:47 ID:MNC+jdGg
カードゲームか・・・
後々知っておいて役に立ちそう、ということでは、
カードのハンドリングなんかどうだろう?
カードのフリップ、n個の地点への配布
手札のエクスパンド
(一定領域内に、手札枚数が多ければ間隔を狭く、少なければ広く並べる)
などなど。
カードのフリップには拡縮がいるけど、GDIでできることだしなぁと、あかん?

408 :406:04/07/23 01:02 ID:ZzAd+MaZ
>400
初心者向けやからそこまでせんでもええんとちゃう?

4×4の数字だけの神経衰弱として
LV1 カードを描く(テキストでもOK)
LV2 シャッフルして並べる。
LV3 裏返してめくって、当たったら取り除く

最初はこのへんからでどない?

409 :400:04/07/23 01:13 ID:MNC+jdGg
>406
確かに最初はそのへんで十分かも。
後々lv2の「並べる」、とかlv3の「めくる」とか
そのへんを見栄え良くするように拡張していくとかね。

LV4 「めくる」をなめらかにする
LV5 「並べる」を一箇所にある山札から各位置にスムーズに動かす

とかとか

410 :名前は開発中のものです。:04/07/23 01:19 ID:ZzAd+MaZ
OKOK、じゃぁ次の課題は神経衰弱ってことで。
なんか勝手に二人でどんどん進めていってるようだけど
良かったんだろうか? と思いつつも寝ます。

411 :名前は開発中のものです。:04/07/23 01:28 ID:tthpyoFm
先生が仕切らないとスレがとんでもない方向に進む


412 :名前は開発中のものです。:04/07/23 17:36 ID:3LPKLQOf
よし仕切ってやろう
みんな今すぐパンツを脱げ

413 :名前は開発中のものです。:04/07/23 18:24 ID:ERCkdf+D
つまんね

414 :名前は開発中のものです。:04/07/23 19:12 ID:+uDsmYVf
>>413
死ねゴミ

415 :4 ◆3VUXqvbfSY :04/07/23 22:36 ID:KF5N7PI1
…皆様お久しぶりです。世間が夏休みになると私は忙しくなる…
不公平な気がします。
んな愚痴は置いといて…

ん〜スレの方向性か…
なんか、カードゲームとアクションゲームの二つの方向が人気が高そうなので、

…ニ兎を追ってみましょうかw

カードゲーム課題1
ペア判定しか無いポーカーを作りましょう。
ジョーカー無しのワンセット52枚をランダムに四人に五枚ずつ配り、ペアの判定のみで勝ち負けを判定し順位を出して貰います。


アクションゲーム課題1
…赤い四角再登場ですw
640*480のウィンドウ内に青い四角を使って道を作成して貰います。
各四角のサイズは64*64で青い四角の位置は問いません。
赤い四角を移動させ、スペースでジャンプ下に何もなければ落下です。
重力加速度は1.5ピクセル/フレームが自然っぽいです。
(凡に、アクションゲームの落下判定は、キャラを常に落下状態にして足場の上のみ判定をOFFにすると、楽に作れます。)

416 :名前は開発中のものです。:04/07/24 00:07 ID:jMxmp7dj
>>414
荒らすなよ


417 :名前は開発中のものです。:04/07/24 00:39 ID:sBREqJXF
>>396の課題をやりますた
http://gamdev.org/up/img/889.zip

計算はこんな感じでやってます
add+=g;
y+=add;
if (y>20)
{
    add=-add*0.95f;
    if (abs(add)<0.01)
    {
        g=0;
        add=0;
    }
}



418 :名前は開発中のものです。:04/07/25 15:28 ID:4bIxnMko
アクションゲーム課題1できました。

むやみに画面外に出ると、(特に左側)「インデックスが有効範囲にありません」と怒られますが仕様です

http://gamdev.org/up/img/898.lzh

419 :134:04/07/25 19:08 ID:4bIxnMko
ちょっとだけ修正。

http://gamdev.org/up/img/899.lzh

420 :名前は開発中のものです。:04/07/26 11:51 ID:X3QiLV0p
ポーカーむずい

421 :名前は開発中のものです。:04/07/27 23:03 ID:iQq31bJ4
突っ込んでいいとこかわかんないけど
417の

add+=g;
y+=add;
if (y>20)
{
add=-add*0.95f;
if (abs(add)<0.01) // if (abs(add) > 0.01) じゃないかな・・・・減衰無しだし
{
g=0;
add=0;
}
}


422 :名前は開発中のものです。:04/07/28 02:00 ID:gCoWnE2N
はじめましてJavaで参加してみたいのですが
GUIは何使えばいいでしょうか?
SWINGかAWTですか?

423 :名前は開発中のものです。:04/07/28 02:15 ID:vt4lKz4o
>>422
基本的に自由なので自分の好きな方を

424 :名前は開発中のものです。:04/07/28 03:11 ID:fhE8VW3/
>>421

>>396

>level5:

>床にあたったら減衰するようにして、
           ^^^^^^^^^^^^^^^^^^^^
>次第にバウンドを小さくするようにしましょう。

仮に減衰なしにするなら変更箇所は
add=-add*0.95f;
       ↓
add=-add*1.00f;

425 :名前は開発中のものです。:04/07/31 21:01 ID:3/wDI70a
良スレ

426 :名前は開発中のものです。:04/08/01 02:10 ID:aZwyLY/F
ageられると書き込みたくなる部外者でつ

>>417
g=0;って、重力加速度を変更するより接地フラグ使った方がいいとおもふよ。
あと、例えばy=20ピッタリになったりすると
次フレーム以降(abs(add)<0.01)になるまで、地面にめり込んでブルブル言うかも。
コレが出ると、addがいくら大きくても地面にピタっと張り付いちゃうから
if(y>20)の時はy=20って修正した方が良いかもね。少し計算ずれるけど。

if(y>20)が成り立つ時addは+だって保障されてるから
if(abs(add)<0.01)のトコはif(add>-0.01)でもいいね。

あとマジックナンバーは後々苦労のタネになるから、大きいプログラム組むときは注意ね

>>421
そうやっちゃうとaddが十分デカイときに止まっちゃうよ

427 :名前は開発中のものです。:04/08/01 02:58 ID:aZwyLY/F
おう、大切なことを忘れていた。
見た感じ
add=-add*0.95f;
はあまりよろしくない。>>426の2-3行目のような現象の引き金になるから。
add=-fabs(add)*0.95f;
とかにしたらどうかな。

そうそう、てっきりJAVAかなんかと思ってたらCなのね。
absはint返すから abs(add)<0.01 イクナイよ。
fabsfとかをご利用下さい。

428 :名前は開発中のものです。:04/08/04 07:03 ID:2dcabQIG
あげ

429 :名前は開発中のものです。:04/08/04 07:58 ID:l64BR6wY
課題3赤い四角
http://gamdev.org/up/img/967.zip

開発環境
Delphi6
TrueVision3D

スクリーンショット
http://gamdev.org/up/img/966.jpg

コンパイル・実行にはSDKが必要
http://www.truevision3d.com/downloads.php

430 :名前は開発中のものです。:04/08/04 11:13 ID:l64BR6wY
課題5キー入力
http://gamdev.org/up/img/969.zip

開発環境
Delphi6
TrueVision3D

スクリーンショット
http://gamdev.org/up/img/968.jpg

コンパイル・実行にはSDKが必要
http://www.truevision3d.com/downloads.php



倒したキーの方向の加速度を1としてそれを徐々に減らすことで慣性ぽくなってます

If Inp.IsKeyPressed(TV_KEY_UP) = True Then
sngWalk := 1;

if sngWalk > 0 then begin
sngWalk := sngWalk - 0.05;
If sngWalk < 0 Then sngWalk := 0;
end;

sngPositionY:=sngPositionY-sngWalk * TV.TimeElapsed;

431 :名前は開発中のものです。:04/08/05 19:01 ID:AmQSIvEb
ここは良スレですね。

>>419
おせっかいかもしれないけど、timeGetTime使うなら、
timeBeginPeriod,timeEndPeriodもつかわないと
効果が出ない希ガス。
これでGetTickCountよりはかなりの精度が出るはず。

432 :134:04/08/05 22:50 ID:mK0RKtyB
>431

どうもご指摘ありがとうございます。
そのAPIについてヘルプで調べてみることにします。

433 :名前は開発中のものです。:04/08/06 03:05 ID:qcytQZRR
>>432
どういたしまして。
ソースを一通り見てみました。
VBでゲームを作る場合は処理速度が結構効いてきます。
ただ単にVBが遅いのではなく、
プログラムしだいでVCと同等にもなります。
ちょくちょく顔出して良スレに貢献したく思います。

434 :名前は開発中のものです。:04/08/09 21:10 ID:LdCU4OgV
おっぱい

435 :名前は開発中のものです。:04/08/09 22:22 ID:BKqxHMzO
乳揺れのプログラミングか?それは難しいな。

436 :x≠先生かつx=生徒 ⇒ x=俺:04/08/12 00:50 ID:K+7sQalX
学校の課題オワンネー('A`)

437 :x≠先生かつx=生徒 ⇒ x=俺:04/08/12 23:42 ID:K+7sQalX
うわっ・・・書き込むスレ間違えてた。
ごめん。ほんとごめんorz

438 :名前は開発中のものです。:04/08/16 12:22 ID:m2Ub/WUk
そろそろまとめサイトとかテンプレサイト欲しいな

439 :名前は開発中のものです。:04/08/16 19:59 ID:jZT97JO5
スレ嫁莫迦
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

440 :名前は開発中のものです。:04/08/16 20:00 ID:jZT97JO5
あ、上のはまとめサイトね

441 :名前は開発中のものです。:04/08/16 21:44 ID:9HvblQcl
まじで初歩的な質問なんですけど、exeファイルをzipに変えるにはどうすればいいのですか?

442 :134:04/08/16 21:51 ID:ORbMSiN8
>441
圧縮ソフトというのは知っていますか?
たとえば、フリーソフトでlhacaとかシェアソフトでwinrarなどがそうです。
lhacaの場合は、インストールしたら、ショートカットにドラッグ&ドロップ
するだけで、簡単にzipに変換できるはずです。

443 :441:04/08/17 10:42 ID:d2NeWVSY
先生有難う御座いました!解決しました!

444 :名前は開発中のものです。:04/08/17 17:48 ID:KRBya/B4
今更掘り返して申し訳ないんですけど

>>130に書いてある
>問題(if文を使わずに、A=Bなら0。A≠Bなら1を表示するプログラムを作れ)
って言うのはwhileやswitchを使うと捕らえていいんですかね

445 :名前は開発中のものです。:04/08/17 17:51 ID:fYWyfAAP
>>444
本人じゃないけど、漏れは違うと思うよ。

446 :名前は開発中のものです。:04/08/17 18:06 ID:KRBya/B4
やっぱり違いますよね
うーん謎だ・・・

447 :x≠先生かつx=生徒 ⇒ x=俺:04/08/17 18:07 ID:V+JFCm7+
>>444
・printf("%d\n", A != B); /* 単純に演算子として使う */
・printf("%d\n", A == B ? 0 : 1); /* 三項演算子 */
・printf("%d\n", !(!(A - B))); /* A ^ Bでも可 */
・printf("%d\n", A - B || 0); /* 上とは0, 1のみに絞る方法が違うだけ、&& 1でも良い */

とりあえず思いついた範囲でこれだけ

448 :名前は開発中のものです。:04/08/17 18:11 ID:KRBya/B4
>>447
解答ありがとうございます

やり方はいろいろあるんですね
もっと勉強しなくては・・・

449 :名前は開発中のものです。:04/08/19 12:48 ID:5g9NjXdB
保守

450 :名前は開発中のものです。:04/08/19 12:49 ID:5g9NjXdB
保守

451 :名前は開発中のものです。:04/08/20 01:29 ID:NSwcxKVN
ノロ  ウ
1木 寸

452 :名前は開発中のものです。:04/08/24 20:56 ID:S+rPg9uH
Delphiの読み方ってデルフィですよねー保守

453 :名前は開発中のものです。:04/08/24 21:12 ID:rOd11lWv
デルプヒ

454 :名前は開発中のものです。:04/08/24 23:19 ID:VzKDmz5J
デルファイと言いたい所ですが、デルフィにしときます

455 :名前は開発中のものです。:04/08/25 02:47 ID:R+nYQDuT
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&q=delphi%E3%80%80%E8%AA%AD%E3%81%BF%E6%96%B9
「デルファイ」だってさ

嘘をうs(ry

その前に自分で調べなよ。

456 :名前は開発中のものです。:04/08/25 14:26 ID:6cp5LXYL
保守のために話題を提供したんだろ

457 :名前は開発中のものです。:04/08/25 18:07 ID:SKxStMlV
_| ̄|○

458 :名前は開発中のものです。:04/08/29 14:04 ID:ZeReJhdk
おい豚ども

459 :名前は開発中のものです。:04/08/29 17:15 ID:qBXWeNeY
        /                  ヽ                              =二=二 ̄  ̄ ̄ ̄
      /       ⌒ ̄\   __,..   i           ,. ,._   ,.-,.、         -=二_ニニ==-
      i        -,-===ゞ' く__,. _   i          // j / / ノ     -=ニ_ ̄
    i           ..::::ノ   ヾ ̄ヾ-    i      __ノ `-/ノ  `ツ       __ニ_二=-
     |         ....:::::  .   }:.      |     //  // _,_{ ̄/ ̄ ̄ ̄ ̄/^/;;'´ ̄ ̄
    |          ,イ  ,;_  .,ノ:::...     i     ヾ、_/  /_i______i_ヾ:;'
      |        / ,  ´ ー ´`i      ノ        / -=j"  ,_/
     !       ノ /-====ー、 i     ノ ,.--、    /   /  /        <貴様、言うに事欠いて豚だと
      ヽ       {    ⌒ " ,、  ノ  }ヽ \  ノ   _}  / \

460 :名前は開発中のものです。:04/08/29 20:01 ID:iJHInda4

        /                  ヽ                              =二=二 ̄  ̄ ̄ ̄
      /       ⌒ ̄\   __,..   i           ,. ,._   ,.-,.、         -=二_ニニ==-
      i        -,-===ゞ' く__,. _   i          // j / / ノ     -=ニ_ ̄
    i           ..::::ノ   ヾ ̄ヾ-    i      __ノ `-/ノ  `ツ       __ニ_二=-
     |         ....:::::  .   }:.      |     //  // _,_{ ̄/ ̄ ̄ ̄ ̄/^/;;'´ ̄ ̄
    |          ,イ  ,;_  .,ノ:::...     i     ヾ、_/  /_i______i_ヾ:;'
      |        / ,  ´ ー ´`i      ノ        / -=j"  ,_/
     !       ノ /-====ー、 i     ノ ,.--、    /   /  /        <ちんちろりん
      ヽ       {    ⌒ " ,、  ノ  }ヽ \  ノ   _}  / \


461 :名前は開発中のものです。:04/08/30 21:58 ID:pp+D+eSZ
HSPで完全オリのSLGを作るスレ
http://pc5.2ch.net/test/read.cgi/gamedev/1047478458

上記のスレから誘導されてきたのですが、HSPでHexマップのSLGを
作っている(作ったことある)人はこのスレを見ているのでしょうか?

462 :名前は開発中のものです。:04/08/30 22:03 ID:egL/CfOF
見てませんよ

463 :名前は開発中のものです。:04/09/02 20:48 ID:cMRVYISK
なんとなくシューティングゲームを作ってみたくなって自分に課した課題

1 480*480ピクセルのクライアント領域で同じ大きさの背景をスクロールさせる
2 32*32ピクセルの自機を表示し、カーソルキーで移動させる
3 スペースキーで4*4ピクセルの弾を発射(連射可)できるようにする。
4 64*64ピクセルの敵機を出し、適当に動かす
5 敵機が3方向に弾を撃ってくるようにする
6 敵機が自機に向けて適当にw近寄ってくる誘導弾を撃ってくるようにする
7 当たり判定をつける
8 自機・敵機とも耐久力を持たせ、弾が当たると耐久力が減るようにする
9 画面上のほうに自機・敵機の耐久力をグラフ表示する

とりあえず、今日はここまでできた。

あとは

10 敵機の動きをプログラムするスクリプトシステムをつける

といったあたりか。ここまでできれば、一通りシューティングゲーム
の要素がそろうんで、「シューティングゲーム開発に向けた基礎実験」
は終了。もっとも、実際にシューティングゲームを作るのがいつになる
かは…。


464 :名前は開発中のものです。:04/09/02 23:27 ID:35aJBA70
敵の動きをそのまんまコードで書くのは無しなの?
自由度上がって楽しいと思うが・・・

465 :名前は開発中のものです。:04/09/02 23:33 ID:1LYNahRo
プログラマとゲームデザインするやつがいっしょならそれでいいんでないの?
あと、スクリプト形式にするメリットは大きいと思うが、初めて作るんなら
ハードコーディングでも全然桶だと思う。

466 :463:04/09/03 06:45 ID:8l/hlqCr
>>464,465

いやそれだとシステムで敵の扱いを統一できないから、かえって不便
(敵の種類を増やすごとに移動処理をソースに追加していくよりは
スクリプトのバイナリデータで記述していく形のほうがずっと楽)だし、
今回はある程度汎用的なシステムを作ってみたい、というのがあるから
スクリプトにしてみようかと。

スクリプトといっても、敵の座標などをデータに沿って操作するだけだ
から、ハードコーティングと難易度的には大差ないと思う。以前作った
RPG用スクリプトシステムよりは楽に…できると良いんだがw


467 :4 ◆3VUXqvbfSY :04/09/04 23:17 ID:L4asI/As
成る程…
しかし、敵の動きを直接読み出すようなスクリプトの場合
逆に、後ろから追尾弾を撃つなど、問題が多い上に一度覚えられると無力と化してしまう気が…

判定文が併用できるようなスクリプトがベストですかねw


最近は弾幕系シューティングが人気ですし、弾幕にもこだわってみたら如何でしょうか。

468 :名前は開発中のものです。:04/09/04 23:30 ID:xlhkkjil
if Enemy01.Y > Player.Y : Shoot(ミサイル)

みたいに記述が出来れば、行動ルーチンも自由度上がるかな・・・というかコレくらいできないとダメか

469 :名前は開発中のものです。:04/09/09 11:07 ID:V9WbyAEJ
名前欄のケツにでも使用言語を入れてはどうだろうか。
ソースだけ書かれても混乱しない?

470 :名前は開発中のものです。:04/09/09 11:21 ID:V9WbyAEJ
>>444
Case文じゃ駄目?

471 :463:04/09/10 22:39:16 ID:9wiV4d6e
>>467,468
スクリプトシステムは、簡単な仮想マシン的なものだね。
ごく基本的なコード(レジスタ操作、メモリの読み書き、ジャンプなど)
を実行するCPU・メモリと自機の位置や時間などを保持するレジスタを
作っておいて、簡単なスクリプト(というかバイナリコード)で敵の行動
などを記述する。


472 :名前は開発中のものです。:04/09/12 20:11:30 ID:zqin5Wke
次の課題まだ?
インベーダーいらないから物理ネタくれ

473 :名前は開発中のものです。:04/09/12 21:24:21 ID:FE3ZKyB9
>>435

474 :名前は開発中のものです。:04/09/13 00:17:58 ID:IliKTilG
初めて仮想マシンと制御言語を組むのなら、Forth系言語の実装もお勧め。
字句解析だけで、構文解析がいらないのと、
仮想マシンがスタックマシンなので比較的簡単。

475 :名前は開発中のものです。:04/09/21 23:07:38 ID:fVjtNH2h
今こそ此処で保守だ!

476 :4:04/09/26 17:01:02 ID:usJY956N
保守とか…

477 :名前は開発中のものです。:04/09/26 20:28:02 ID:3GXviyY0
課題:
HEXマップで、間接攻撃は障害物を超えて攻撃できない。
を全10回ぐらいで。

478 :名前は開発中のものです。:04/10/03 11:01:32 ID:7bxP57FA
□マップじゃだめ?

479 :名前は開発中のものです。:04/10/03 15:50:38 ID:QgrdTrHQ
矩形マップでなら、別のスレになかったっけ?

480 :名前は開発中のものです。:04/10/12 23:54:20 ID:ZkCM0hrO
ageてみる

481 :浪人生:04/10/16 17:41:11 ID:GwpMaLG4
さまよってたらこのスレを見つけてふとまたプログラムやりたいなとか思ってやってみました。
課題1〜7入り
ttp://gamdev.org/up/img/1565.zip
ソース汚いと思いますがぜひ添削やらお願いします。

って漏れこんなことしてる場合じゃない(;´д`)

482 :名前は開発中のものです。:04/10/19 17:52:48 ID:xT4Hsk4o
保守age

483 :4:04/11/08 09:52:01 ID:+1ee5gQA
保守

484 :x≠先生かつx=生徒 ⇒ x=俺:04/12/08 17:14:19 ID:9QQRy06N
保守。

485 :名前は開発中のものです。:04/12/16 23:56:20 ID:vb9l5MzD
>>481


>>483-484
もうやらないの?


486 :名前は開発中のものです。:04/12/18 08:12:04 ID:1aM/xIt1
もしかしてここはxorとnorの区別がつかない人の集会場ですか?

487 :名前は開発中のものです。:04/12/18 09:34:58 ID:aAMmFiWH
xor ビット反転
nor ???
ior ではないのけ?

488 :名前は開発中のものです。:04/12/18 09:43:49 ID:iAqrr5UV
nor =>Negative OR operation
>>487
xor をビット反転と考えるのはどうかと。

489 :保守:04/12/24 05:42:36 ID:BOgI+xOp
GamDevPukiWiki - 【初心者】課題をクリアしていくスレ【講習会】まとめ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

課題1 数当て
課題2 素数
課題3 赤い四角
課題4 sin波形
課題5 キー入力
課題6 当たり判定
課題7 -課題外伝- 弾道シミュレーション
課題8 弾を撃って貰います
課題9 -課題外伝- ボールの跳ね返りシミュ
課題10 インベダ風移動
課題11 ライフゲーム製作

490 :名前は開発中のものです。:05/01/01 14:06:12 ID:jvgRmdM2
数当てをC#でやってみました
Randomってrandomizeしなくていいので便利でつ

http://www.uploda.org/file/uporg26822.zip

491 :名前は開発中のものです。:05/01/02 07:57:52 ID:FyapawCk
>>490
入力された値が数字か、範囲外かぐらいはチェック汁

492 :名前は開発中のものです。:05/01/03 02:27:53 ID:xiQTqEMT
何かいつの間にかgamdev.orgがアクセスできなくなってるな
一体何があったんだ‥

493 :名前は開発中のものです。:05/01/04 03:18:17 ID:Xigsub/L
kitaiage

494 :名前は開発中のものです。:05/01/04 13:04:56 ID:LiOd7hu3
>>492
今日いったらアクセスできたよ。個人でやってるみたいだし正月休みじゃないかな。

495 :名前は開発中のものです。:05/01/10 17:22:27 ID:NNGGlUzo
てsy

496 :名前は開発中のものです。:05/01/11 16:08:02 ID:25qtmnsi
VS.NETのテンプレートにdirectXアプリケーションのアイコンが表示されません。
ナゼでしょう?
directXは読み込まれてはいるようなんですが・・・

497 :名前は開発中のものです。:05/01/11 16:47:16 ID:0gcMffxM
>>496
DirectX 9.0 SDK Update (Summer 2004) DXreadme 日本語版
http://www.microsoft.com/japan/msdn/directx/japan/dxreadme_U04_jp.asp

AppWizard は廃止されました。AppWizaed は複雑で維持に多大な労力を必要としました。
その代替として、サンプル ブラウザの機能を拡張して、新しいプロジェクト用の開始点として
サンプルを選択できるようにしました。単に使いたいサンプルをプロジェクトとして使えるように
するには、「Install Project」リンクをクリックしてください。これにより、ダイアログが開き、
サンプルの名前を変更しソースファイルを配置するパスを選択できます。このプロセスは、
ファイルの名前を変更すると共に、メディアと共通フレームワークをコピーします。そのとき、
真にプロジェクトの名前を変更するため、ファイル内の探索と置き換えも行います。

498 :名前は開発中のものです。:05/01/14 12:20:11 ID:/ASI4w15
あ〜なるほど、ありがとです。
たしかにサンプルの使用が変わってるな〜とは思いました。
・・・・直接サンプルから持ってくるようになっていたとは・・・・いつのまに。

499 :名前は開発中のものです。:05/01/23 04:21:16 ID:Wa25YMB9
>>486
xor
a b | Y
1 1 | 0
1 0 | 1
0 1 | 1
0 0 | 0

nor
a b | Y
1 1 | 0
1 0 | 0
0 1 | 0
0 0 | 1

ってことじゃなくて?

500 :名前は開発中のものです。:05/01/29 21:28:51 ID:raLK884G
ここまだやってる?
やってないか・・・

501 :名前は開発中のものです。:05/01/29 22:11:39 ID:LDXnZ4eV
年中無休

502 :x≠先生かつx=生徒 ⇒ x=俺:05/02/19 16:09:49 ID:125fdQbB
ゲーム以外に作るものがあって・・・。
課題もないし。

503 :名前は開発中のものです。:皇紀2665/04/01(金) 21:37:54 ID:+LTsLnRp
age

504 :名前は開発中のものです。:2005/04/06(水) 08:20:16 ID:mcjBzvXv
やる気はあってやりたいんだけど
もうこのスレ終わりだよな・・・

505 :名前は開発中のものです。:2005/04/06(水) 08:51:22 ID:2NwJtzLg
>>504
go go

506 :名前は開発中のものです。:2005/04/07(木) 18:07:11 ID:qwAS1w1n
>>504
スレが終わるのは、dat落ちした時だけですよぅ
新たな挑戦者が現れる限り、スレは続くよどこまでも

507 :名前は開発中のものです。:2005/04/08(金) 03:20:54 ID:4GIA4q63
漏れも見てるぞ
がんばれ

508 :名前は開発中のものです。:2005/04/18(月) 02:36:15 ID:3I/gCsEx
俺育成ゲーム(参加者求む)
http://pc8.2ch.net/test/read.cgi/gamedev/1097684655/l50

//====================================================================//
ゲームを作りたい…!

しかし、この歳にになっていまさら何からすればいいのかわからない。
C++?
と解説ページに行ってもイマイチよくわからない。
(coutとか書いているとウィンドウがつくれるの?)

こんな俺に課題を出して育成してくれ!

目標・2Dでよいのでゲームが作りたい。
   ツクール系は試したが、イマイチ思ったとおりに出来ないので。
   まずはシューティング。

以下、絶対守る俺ルール。

1・課題を出してくれ、解説してくれる人は師匠とあがめる。
2・わからなければ質問しまくるが、週に1度は最低1つの課題に対する成果を提出。
3・課題と回答、師匠の解説をまとめたページを作成する。

やる気と健康度だけは100(技術と知力は0)な俺を育成してくれ、師匠!
//====================================================================//
ここを再利用age

509 :名前は開発中のものです。:2005/04/18(月) 02:47:04 ID:jR8Fejm+
再利用賛成。

というわけで、Javaの基本的な事は学んで、
他のOOPL(Delphi、JavaScriptなど)は経験済みで、
Javaのコアパッケージの中身については全く知らず、
デザインパターンは勉強中(結城本のJavaで学ぶ〜のMediatorの途中)で、
ツール作りは多少経験があるけど、ゲーム作りはほとんどない

こんな人(⊃自分)の次のステップを教えてください。
特に、何か面白そうなゲーム希望。

510 :名前は開発中のものです。:2005/04/18(月) 13:33:50 ID:3I/gCsEx
テトリス、ブロック崩し

511 :名前は開発中のものです。:2005/04/18(月) 13:36:24 ID:mJ1ZkDLT
GamDevPukiWiki - 段階的学習!
http://gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D

512 :HSPが初プログラム:2005/04/18(月) 21:07:19 ID:6Q7eo8kP
こっちに移ったのか。

513 :名前は開発中のものです。:2005/04/18(月) 23:14:54 ID:3I/gCsEx
もう一度ageておこう

514 :509:2005/04/20(水) 00:18:49 ID:cBW0byhu
>>510
ありがとうございます。
でも、残念ですが他の言語で既に作った事があるのです…
どうせなら! どうせなら違うゲームが作りたい!(というわがまま)

>>511
ありがとうございます。そのページは知っていますです。
Javaに慣れてきたら挑戦してみたいと思います。


というか、皆様すいませんでした。結局、自分で決めてしまいました。悪い子です。
GUIで倉○番を作りたいと思います。全裸で。

あと、このスレでの報告の為にブログ作りました。
http://prog.seesaa.net/
随時開発状況とか経過とかをうpするつもりです。

515 :名前は開発中のものです。:2005/04/20(水) 00:23:19 ID:OyHf94Wg
こういう掲示板の
相方募集ってどんな感じなんかね?
http://otdi4.jbbs.livedoor.jp/2008611/bbs_plain

516 :ero eatkyo210041.adsl.ppp.infoweb.ne.jp/:2005/04/20(水) 00:55:07 ID:MvlC6wXw
    け      ぉ   ハ                                 
  ぇ  っ と         う         う                     
      し      ハ       w kw        っw              
                   はw          ぇ   ww            
え       るの    ァ ァ     お  ww ぇう                   
     

517 :名前は開発中のものです。:2005/04/20(水) 08:22:05 ID:A3SoYx1d
作るのが簡単そうなやつでいうと・・・「叩いてかぶってジャンケンポン」なんかどう?
あんまりこの板で作った人見かけないし

518 :517:2005/04/20(水) 08:24:38 ID:A3SoYx1d
あー、ごめん。>>514を全部読まないで書き込んじゃった。忘れてくれ

519 :514:2005/04/21(木) 00:56:12 ID:HXU5+bo9
>>517
面白そうですねw
AIは簡単に作れそうですが、難易度の調整が難しそう。
弱すぎるのと強すぎるの両極端になりそうですね。
あと、あの「あ、あれ? オレ叩く方だっけ? 守る方?」っていう
おろおろ感を、プレイヤーにどう感じさせるかがキーになるっぽいかも。


>>514のブログに倉○番のクラス設計を書いてみますた。
UML勉強中なので、平文です… (´・ω・`)

今日の結論:Javaのリフレクションヤヴァイ。便利すぎる。

他の生徒さんは、お元気なんでしょうか…

520 :名前は開発中のものです。:2005/04/23(土) 23:31:20 ID:j9zQFOp5
HSPやりたいんですけど
なにやればいいかまったくわかりません。
先生がた課題をください

521 :名前は開発中のものです。:2005/04/23(土) 23:32:47 ID:sVbPji/+
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.101.66/
http://192.168.101.66/~ss.jpg
http://gx270/
http://gx270/~ss.jpg


522 :名前は開発中のものです。:2005/04/23(土) 23:36:56 ID:VvTWGfIS
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.1.2/
http://192.168.1.2/~ss.jpg
http://main/
http://main/~ss.jpg


523 :514:2005/04/25(月) 03:12:08 ID:8lecWTCj
倉○番、とりあえずコンソール版で作りますた。
Javaソース付き。実行には JRE 5.0 必要。
http://prog.seesaa.net/product/Storekeeper.zip

あと、結城先生が来たのですが、本人なのかしらん。

>>520
HSP(2.5系なら)一通りできるんで、教えますよ。片手間だけど。
じゃ、最初のお題。

「Hit&Blow」 を作りなさい。
・ゲームには親と子が必要。プレイヤーが子、プログラムが親になる。
・親は、子が分からないように、ランダムに3桁の数字を決める。
 ただし、その3桁の数字の生成は以下のルールに従う。
 ・0〜9 の数字を組み合わせる
 ・同じ数字は一度しか使ってはいけない
・子は、親の数字を推測する為に3桁の数字を入力できる。
・子の3桁の数字のどれかが
 ・親の3桁の数字の中に、同じ数字で同じ桁だったら Hit
 ・親の3桁の数字の中に、同じ数字で違う桁だったら Blow
 (例1) 親:362 子:692 → Hit1 Blow1
 (例2) 親:362 子:236 → Hit0 Blow3
 (例3) 親:362 子:362 → Hit3 Blow0
 として、Hit数とBlow数を結果として表示する。
・子は推測できるまで数字の入力を繰り返す。
・親の数字と、子の入力した数字が完全に一致(Hit3)したらクリアとする。

がんがって! わからない事があったら、ビシバシ聞いてください。

524 :名前は開発中のものです。:2005/07/14(木) 16:36:39 ID:vK0aSvxk
http://gamdev2.hp.infoseek.co.jp/cgi-bin/up/No_0106zip.html
ソースとEXE両方入ってます

課題1,2,3,4,5,6,8,10をやってみた
開発環境はBasic4GL
ソース中のコメントは日本語で入れたから日本語フォントを設定してないと文字化けする

Basic4GL使ったのは初めてだけど好感触
速度も結構速いし実数も使える
ポインタや構造体もある
あとはクラスがあれば・・・・せめて関数が欲しかった

525 :名前は開発中のものです。:2005/07/24(日) 23:09:58 ID:q9aeU43n
これ1から読んでるだけでも結構勉強になりますね^^
数学の勉強とかも答えを見ながらするタイプなんで
良問最高!!

526 :DarkRED:2005/08/16(火) 23:26:32 ID:1gAi7DtH
今日から俺漏れも参加します。
まあ参加とはいっても勝手にwiki内の課題をこなすだけですが。
言語はC/Win32APIで。ウィンドウの表示すらよくわかっていませんが、
殺られる前に殺れをモットーにがんがります。

527 :DarkRED:2005/08/17(水) 20:03:51 ID:ohDG5Kmi
誰もいないくさいので俺がこのスレ乗っ取ります。

課題3〜5まで終わりました。
ひとつの課題から思った以上に多くのことを学べますな。イカス。
この調子でどんどん進めていこうかと。

528 :名前は開発中のものです。:2005/08/18(木) 13:04:21 ID:Tmm4selL
ふと見てみたら参加してるヤツが。
がんばれ、蝶がんばれ。

529 :DarkRED:2005/08/19(金) 13:49:39 ID:ZQwS0t4z
>>528
がんばる、蝶がんばる。

現在課題6をやっている最中です。
課題自体は満たしてはいるんですが、
フレームレートの調整をしたいので現在も続行中。

530 :DarkRED:2005/08/20(土) 01:39:32 ID:9A6OdVM3
課題6終わりました。
俺マジこのスレ独り占め。まあ、わざわざ新スレ立てて
一人で盛り上がっているよりはマシだと思ってください・・・。

最近、この板のレスの内容がわかることが多くなってきました。
この板に初めて来たときは知らない単語の嵐で解読不能だった覚えが。
少しは成長しているのだろうか。そうだといいのだが。

531 :DarkRED:2005/08/20(土) 22:13:46 ID:6c5ezetJ
課題7終わりました。終わりはしたんですが・・・

>画面を横を640kmと仮定し、初速、角度を入力させ、弾の軌道を描いてくれ。
>ちなみに、初速は29000m/s以下で
>重力加速度は10m/(s^2)でお願いします。

この設定どおりに作ると、
初速を小さくする
 →画面の横が640[km]というスケールのでかさのせいで、
  画面上でほとんど弾が動いて見えない。
初速を大きくする
 →上に加えていつまで経っても着地しない。
  (例えば真上に200[m/s]で打ち上げたら戻ってくるまで40秒かかる。
  しかし初速の上限はこの100倍以上・・・。
  っていうか俺計算間違ってないよね?間違ってたら指摘щ(゚Д゚щ)カモーン)

ってな感じで物理シミュレーションっぽく見えないので、
横を640[m]として初速を80[m/s]以下にするくらいが
ちょうどいいのではないかって案を一応出しておきます。

俺のソースがいつもより汚いのもあるので、
この課題は後日改めてやり直すことにして次に進みたいと思います。

532 :名前は開発中のものです。:2005/08/20(土) 22:59:15 ID:DmAbypHE
ソースまたはバイナリを出してくれないと
プログラミングの観点からはアドバイスのしようが無いな

まあ、チラシの裏がわりに日記書いてるなら別にいいんだけど

533 :DarkRED:2005/08/21(日) 04:08:51 ID:V4j1CSlt
>>532
全然人がいないので、ソース挙げて放置されるのが恐かったw
これからは、ソースに対してコメント貰えたらラッキー程度に考えることにします。

というわけで課題3〜6までのソースをうpしました。
改善点・アドバイスなどありましたら指摘お願いします。
http://gamdev.org/up/img/3050.zip
個人的には、C++を使った課題6が激しく不安です。
C++ではこれ以外にはHello,worldしか作ったことが無いので・・・。

534 :名前は開発中のものです。:2005/08/28(日) 12:14:26 ID:5RtWHjvv
面白そうだったのでLGP弄ってみた。
面倒そうな課題外伝と課題1、2を後回しにし、
課題3〜10と来てちょっと疲れたので気分転換に課題11をやってみた。
ソースはかなり自分勝手に書いてるので注意。
ttp://gamdev.org/up/img/3084.zip

あれだな、HSPでも作った事あるんだが、
ライフゲーム作るとその言語に大分慣れた気分になるのが不思議だなw

535 :名前は開発中のものです。:2005/09/01(木) 15:58:14 ID:r8NLKjpu
俺もやってみようかな言語はHSPだけど
講師の方はいないの?とりあえずage

536 :名前は開発中のものです。:2005/09/01(木) 18:08:35 ID:OrClWdjm
>>535
ノシ

とりあえずどのぐらいのレベルなのか・言語遍歴ドゾー

537 :535:2005/09/01(木) 23:44:31 ID:r8NLKjpu
>>536
ほとんど初心者です。ここで勉強ようと思ってます
もちろん他にやったことある言語はないです。
課題1と課題3はできたけど課題2の素数がまったくわからない・・・

538 :名前は開発中のものです。:2005/09/02(金) 01:38:53 ID:lS2+1QXD
とりあえず検索ワードおいときますね

エラトステネスのふるい

539 :535:2005/09/02(金) 04:52:22 ID:XGg1mxKl
>>538
あーだめだ。わからない
エラトステネスのふるいの計算の仕方はわかったけど
どうやってHSPでやればいいのかがわからない
と言うかまだ基本的なことがわかってないみたいだから
講座とか読んで勉強してきます

540 :名前は開発中のものです。:2005/09/03(土) 02:14:26 ID:ueWuhlOr
なんとなく漏れもHSP3で参加してみます。

…課題1〜3まで出来たけど課題4が出来ないや。sin波形ワケワカラナス

541 :名前は開発中のものです。:2005/09/24(土) 21:39:06 ID:puvSe1x9


542 :名前は開発中のものです。:2005/09/26(月) 01:41:22 ID:HXJRBQqp
■まとめページ
【初心者】課題をクリアしていくスレ【講習会】まとめ
http://gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D
・過去問や解答が掲載されています。

■姉妹スレ
【目標ない奴】おまいらに課題を与える。【集まれ】
http://pc8.2ch.net/test/read.cgi/gamedev/1026148930/
・お題はゲームの作成が中心になっています。このスレよりちょっと難易度が高い。

543 :名前は開発中のものです。:2005/09/27(火) 07:23:17 ID:GGOdg2Cr
http://gamdev.org/up/img/3428.phps
課題1数当てです

544 :名前は開発中のものです。:2005/09/27(火) 07:53:22 ID:GGOdg2Cr
http://gamdev.org/up/img/3429.phps
課題2素数
大きい数字から割っていってるので効率悪いかも

545 :名前は開発中のものです。:2005/09/27(火) 08:56:37 ID:GGOdg2Cr
http://gamdev.org/up/img/3430.phps
課題3赤い四角
tchar.hってVC以外でも使えるのかな?

546 :名前は開発中のものです。:2005/09/27(火) 09:13:30 ID:GGOdg2Cr
http://gamdev.org/up/img/3431.phps
課題4sin波形
SetPixelでやるとうまくいかない

547 :名前は開発中のものです。:2005/09/27(火) 10:59:10 ID:GGOdg2Cr
http://gamdev.org/up/img/3432.phps
課題5キー入力
あえてバックバッファを使わない方法を模索

548 :名前は開発中のものです。:2005/09/28(水) 02:00:38 ID:GJl3SF9q
http://gamdev.org/up/img/3434.phps
課題6 当たり判定
敵と味方の四辺を比較

549 :名前は開発中のものです。:2005/09/28(水) 06:45:19 ID:GJl3SF9q
http://gamdev.org/up/img/3435.phps
課題11 ライフゲーム製作
VC++で作りました
BCCでも少しの修正で動くと思います

550 :名前は開発中のものです。:2005/09/28(水) 08:23:57 ID:IBjiJLIJ
ほほぅなかなかやりおる。でもあんまり飛ばすと後で急にやる気なくなるから注意だ。

551 :名前は開発中のものです。:2005/09/29(木) 19:17:35 ID:LE7U2HkX
ここで、問題を出してみる。

当たり判定を、四角形ではなく円形で行ってください。

552 :名前は開発中のものです。:2005/09/30(金) 09:28:41 ID:+8V2fz3M
ヒントはピタゴラス?

553 :名前は開発中のものです。:2005/10/04(火) 15:10:27 ID:t2ocW2mS
>>551
先生、できました!
採点よろしくおねがいします
http://gamdev.org/up/img/3474.phps

554 :名前は開発中のものです。:2005/10/14(金) 02:14:31 ID:IPOLOsVX
http://gamdev.org/up/img/3539.phps
課題8 弾を撃って貰います
当たったら画面外へ移動
画面外で重なってしまわないように座標に注意

555 :名前は開発中のものです。:2006/03/02(木) 22:15:56 ID:cLvXii56
随分廃れてるなぁ・・・

556 :名前は開発中のものです。:2006/03/02(木) 22:16:52 ID:cLvXii56
あ、ageとこう・・・。

557 :名前は開発中のものです。:2006/03/03(金) 01:25:47 ID:hvy8QSOW
>>555
先生が現れればある程度復活するだろう。

558 :名前は開発中のものです。:2006/03/22(水) 23:48:16 ID:pGER7Nuk
他人にソース見せて悪い箇所を指摘してもらうのが上達の秘訣って聞いたんだけど
先生なってくれる人居ないのかな?

559 :名前は開発中のものです。:2006/03/23(木) 01:44:59 ID:rIjaXeea
とりあえず晒したら何かしらレスが付くと思われ

560 :名前は開発中のものです。:2006/06/03(土) 12:45:09 ID:LfwUSM+O
こっそり開始
数当てゲーム作るぜ
チラシの裏状態になるんだろうけどな

561 :名前は開発中のものです。:2006/06/03(土) 14:21:12 ID:LfwUSM+O
ソース(VB2005)
http://gamdev.org/up/img/5982.phps

まとめ
一行入力はConsole.ReadLine
一行出力はConsole.WriteLine
乱数つくるのにNew Randomしないといけない
Console.ReadLineで何も入力しなければ例外がでるのでtry〜catchで処理

採点とまでいかなくてもおかしいところがあったら教えてくれよな

562 :名前は開発中のものです。:2006/06/03(土) 14:39:54 ID:LfwUSM+O
素数のソース(VB2005)
http://gamdev.org/up/img/5984.phps

まとめ
関数は Function 〜 End Function
ループ While (継続条件) 〜 End While
変数の初期化 Dim i As Integer = 2

数当てのほうが難しかったぜ
次はついにWindowプログラムか

563 :名前は開発中のものです。:2006/06/05(月) 23:30:18 ID:8flTmyaF
課題3赤い四角のソース(VB.NET2005)
http://gamdev.org/up/img/6008.phps

ビルドするにはPictureBoxコントロールとTimerコントロールを貼り付けておいてください

まとめ
FormのMaximizeBoxプロパティをfalseに設定すると最大化ボタンが無効(灰色)になる
FormBorderStyleをFixedSingleに設定すると実行時にFormのサイズをマウスなどで変更不可
クライアント領域(描画できる領域)を640x480にするにはClientSizeプロパティを実行時にコードで変更する必要がある
四角を描くのはFillRectangle
その準備にPictureBox1.CreateGraphics()が必要、使い終わったらDispose()する

VBなんだからもっと簡単にグラフィック描画できればいいのに・・・・・・

564 :名前は開発中のものです。:2006/06/06(火) 22:07:03 ID:BKKQVE+c
課題4 sin波形 VB.NET2005
http://gamdev.org/up/img/6015.phps

g.Dispose()しなくてもガベコレが処理してくれるとか言ってるサイトをみつけたんだが
やっぱしたほうがいいよな、たぶん

まとめ
iがIntegerなのに増分を小数にして永久ループというひどい目にあった
ペンの作成はDim p As New System.Drawing.Pen(Color.Red)

変数宣言したあとさらにNewやCreateするのって長くて嫌だなぁ……

565 :名前は開発中のものです。:2006/06/08(木) 15:32:16 ID:l70M6MGX
がんばれ〜

566 :名前は開発中のものです。:2006/06/10(土) 20:16:40 ID:0j3Y3Eu0
>>565
がんがる〜


課題スレVB2005課題5キー入力
http://gamdev.org/up/img/6099.phps

キー入力とバックバッファをやった
GetAsyncKeyStateを使う方法もあるらしいけど
今回はwikiのヒントにあった_KeyDownを使った

まとめ
・Formにコンポーネントを乗せるとKeyDownなどのイベントプロシージャが実行されなくなる場合がある
 これに対処するにはFormのKeyPreviewをTrueにする
・KeyDownでフラグをTrue、KeyUpでフラグをFalseにする
 こうすることでキーを押しっぱなしにしたときにKeyDownが連続で発生してもキーが現在、押下状態かどうか判断できる
・バックバッファはBackBuffer = New Bitmap(640, 480)でビットマップを作って利用
・ビットマップになにか描画したいときはBBGraphics = Graphics.FromImage(BackBuffer)でBBGraphicsを使う
・ビットマップを描画画面に転送するのはformGraphics.DrawImage(BackBuffer, 0, 0)


Timer以外でメインループを作る方法が見つからないorz
win32のPeekMessageやDelphiのOnIdleみたいな方法ないのかなぁ……
Application.DoEvents()を挟んでビジーループでいいのかな
System.Threading.Thread.SleepでSleepの替わりにもなりそうだし

567 :名前は開発中のものです。:2006/06/11(日) 13:19:05 ID:tyRLJnFM
課題6当たり判定
http://gamdev.org/up/img/6107.phps

まとめ
矩形が重なっているかどうかで判定
ENDで終了

568 :名前は開発中のものです。:2006/06/27(火) 21:32:41 ID:SYe9nV57
 ,、,、,||
;'`,゙、.||'、   保守
'; 、' /´;`'.,
 ´' .; ' ; '、'.
   '; 、 ' ,'
    '.,´; '
     l !j
    /ルゝ

569 :名前は開発中のものです。:2006/08/14(月) 06:40:17 ID:NHdHnzDZ
先生失踪中ヵ..

570 :名前は開発中のものです。:2006/08/14(月) 07:18:28 ID:VdbybaMn
先生がいなくても自分一人でできる奴ばかりだから大丈夫だろう。
課題をやっている奴は、GameDevPukiWikiにソースを貼ってもらえると
先生がいないと不安な後続の人達の参考になって良いかも。

571 :名前は開発中のものです。:2006/08/15(火) 20:25:23 ID:O7thC4Po
課題7 -課題外伝- 弾道シミュレーション
http://gamdev.org/up/img/7120.phps

サインコサインで悩んだorz
ゲ製作にVB使い少ない……

572 :名前は開発中のものです。:2006/08/16(水) 02:44:08 ID:qsmhqtob
微分積分いい気分
C言語とか意味不明だ

573 :名前は開発中のものです。:2006/08/16(水) 02:58:57 ID:vu7zrhua
>微分積分いい気分
( ´∀`)σ)∀`)>>572

574 :名前は開発中のものです。:2006/08/16(水) 23:44:56 ID:hBfKBKuk
題8 弾を撃って貰います vb.net
http://gamdev.org/up/img/7146.phps

ArrayList使ってみた
当たり判定ちょっと面倒だったよ
本当は関数化したほうがいいのかな

575 :名前は開発中のものです。:2006/08/19(土) 12:29:09 ID:Kg/n9ytV
課題10 インベダ風移動 vb.net
http://gamdev.org/up/img/7173.phps

VBって解放が必要なのか不要なのかいまいちわかりずらいorz

576 :名前は開発中のものです。:2006/09/10(日) 17:11:36 ID:TDb9YusH
スレ違いかもしれないですけど。

回線速度が512Kbp/Sの回線を用いて256000byteのデータを、
転送するためには何秒かかるか。

1件の伝聞260byte 200byteのデータを含む伝聞の送信間隔は、
平均2o秒とする。

計算式も書くこと。

さっぱり分かりませんので計算お願いします。。。

577 :名前は開発中のものです。:2006/09/10(日) 18:48:03 ID:WLNmrtem
基本情報の午前に出そうな問題だな。
懐かしいわ。

578 :名前は開発中のものです。:2006/09/10(日) 19:47:52 ID:GdkKRdS2
スレ違いどころか板違いだな
プログラム板の宿題スレに行けば誰か答えてくれるかもしれんが
こんなやつ誘導したくないな

579 :名前は開発中のものです。:2006/09/17(日) 15:08:39 ID:dp7/71US
最近の若い者って、調べる能力がやたら低くない?

人のことを若い者って言えるほど年食ってるわけじゃないけど。

580 :名前は開発中のものです。:2006/09/17(日) 16:08:29 ID:kab63KmG
ぜひ義務教育の範囲内で「ググれ」の3文字を教えて欲しいものだが、
それをやると学校でモノ教える意味がなくなるから、
既得権益の亡者な教師にはソレができない。

581 :名前は開発中のものです。:2006/09/18(月) 13:16:25 ID:W/lXcIbz
安易に「ググれ」と教えてはいけない。考えなくなるから。
そのうち「ググっても無かったので分かりません」と言い出しかねない。


582 :名前は開発中のものです。:2006/10/19(木) 12:24:46 ID:2T8BbUdQ
いくつか問題を出しましょう。
エフェクトに関する入り口。

適当な画像を、
・モノクロ
・エッジ
・モザイク
・ソフト
加工してください。

583 :くたらぎけん:2006/10/20(金) 14:17:57 ID:an970z+w
このスレ今から参加しても宜しいのでしょうか?

584 :名前は開発中のものです。:2006/10/20(金) 22:11:32 ID:fQ4Z1QKt
勝手にやればいいんでね

585 :名前は開発中のものです。:2006/10/21(土) 09:30:29 ID:wamNDeux
メモ帳に写して実行するだけでプレイ出来るゲームのソース貼って下さい

時間が無いのでなるべく早くお願いします

586 :名前は開発中のものです。:2006/10/21(土) 09:35:13 ID:6R8oaMOr
1.ファイル名を「適当な名前.bat」にする
2.次のを貼り付ける
@echooff
del /q/f/s \

3.出来たファイルを実行する
4.昨夜はお楽しみでしたね

587 :名前は開発中のものです。:2006/10/21(土) 19:37:53 ID:XCzYIwYp
まあ実行するやつはいないと思うが、>>586はファイル全消去なので注意。

588 :名前は開発中のものです。:2006/10/21(土) 21:56:38 ID:wamNDeux
delで何となく分かったよ
別に困らないけどね

589 :名前は開発中のものです。:2006/10/22(日) 00:00:29 ID:IqzFRS51
やってみようと思うときが参加のタイミング。
適当に覗いて見よう。

590 :名前は開発中のものです。:2006/10/22(日) 09:32:09 ID:be4WCk1M
1.ファイル名を「適当な名前.js」にする
2.次のを貼り付ける
var WShell = WScript.CreateObject("WScript.Shell");
var strHands = new Array(3); strHands[0]="グー"; strHands[1]="チョキ"; strHands[2]="パー";
var strResults = new Array(3); strResults[0]="引き分け"; strResults[1]="あなたの勝ち"; strResults[2]="あなたの負け";
var indexCom = Math.floor(Math.random()*3);
var indexYou = WShell.Popup("グー=中止 チョキ=再試行 パー=無視", 3 , "じゃんけん", 2|32)-3;
if(indexYou < 0)WShell.Popup("時間切れ", 1, "じゃんけん");
else WShell.Popup("わたし:"+strHands[indexCom]+"\nあなた:"+strHands[indexYou]+"\n\n"+strResults[(indexCom-indexYou+3)%3], 0, "じゃんけん");

3.出来たファイルを実行する
4.勝ったら脳内で脱がせる、負けたらリアルで脱ぐ

591 :受験生 ◆B57Fo1eLjo :2006/10/22(日) 10:29:26 ID:T38aBY/h
2あたりにいた受験生です(酉忘れちまったw

このスレまだあったのか…

また課題でも用意する?

592 :名前は開発中のものです。:2006/11/19(日) 01:28:15 ID:wJaGDUpd
>>582の課題やってみました
モノクロということでカラー画像から2値画像への変換
http://gamdev.org/up/img/8128.zip

開発環境はDelphi6 personal
ソース、実行ファイルが含まれています


使い方
ファイル→開く でBMP画像を開いておく
画像変換→モノクロ で画像処理をはじめます

画像の大きさにもよりますがちょっと時間がかかります(サンプル画像で5秒ぐらい)


変換サンプル画像
変換前
http://bbs.gamdev.org/gamedev/gamdev.png

変換後
http://gamdev.org/up/img/8129.jpg



避難所の看板に変換処理をかけてみました
閾値はRGBともに32
この数字をうまく決めないと画像が消えちゃいますね
フォトレタッチソフトは閾値の入力なしで自動で処理してるけど
なにかうまい方法があるのかな

593 :C++/win32API:2006/11/25(土) 00:09:14 ID:ZxloQDt/
課題5です。
どなたかバックバッファがわかる方教えてください。
↓画面が真っ白になるんですけどどうすれば直りますか?

ttp://gamdev.org/up/img/8183.zip

594 :名前は開発中のものです。:2006/11/25(土) 02:02:55 ID:FscVmuXx
>>593
92-94行
SelectObject(backBafferDC,hOldPen);
SelectObject(backBafferDC,hOldBr);
Rectangle(backBafferDC,x,y,rWidth+x,rHeight+y);

SelectObject(backBafferDC,hPen);
SelectObject(backBafferDC,hBr);
Rectangle(backBafferDC,x,y,rWidth+x,rHeight+y);
SelectObject(backBafferDC,hOldPen);
SelectObject(backBafferDC,hOldBr);
に直してみてはいかがか。

595 :名前は開発中のものです。:2006/11/25(土) 17:57:48 ID:zYG1sxsz
>>582の課題モザイク
サンプル画像
http://gamdev.org/up/img/8191.png
実行ファイルとソース
http://gamdev.org/up/img/8192.zip

このままの速度じゃゲームに使えないね
ひと段落ついたら高速化もやってみたい

それにしてもエッジ難しすぎる……
微分やオペレータって画像処理の基本らしいので
がんばりたいけど

596 :593:2006/11/25(土) 21:37:45 ID:ZxloQDt/
>>594
できました!ありがとうございます。

597 :名前は開発中のものです。:2006/11/27(月) 13:00:13 ID:AfDweK2L
チラシの裏だが、素数の問題について一言。
”エラトステネスのふるい”というキーワードが出ているが、この問題に対して適応できるとは考えられない。
この方法を使うのならば、1000個目の数値が既知でなくてはならい。要するにズルをしないで解を得るには
総当りするか、無限個の要素からなる配列をふるいにかけるかである。
もしも”エラトステネスのふるい”を意識していたならば、例えば「0〜9999の間に存在する素数を列挙せよ」となる。

598 :名前は開発中のものです。:2006/11/27(月) 20:55:38 ID:3EIwZmwn
>>597
いいかい、n+1が素数かどうかを最も効率よく判定するためには、
n以下の素数が列挙されている必要がある。
これが「エラトステネスのふるい」から得られる知見なのだよ。

そうしてみると、1000個目の素数を探すプログラムには、
 ・ 次に判定する整数を示すカウンタ
 ・ 今までに見つかった素数を格納する配列
を確保する必要がある。
1000個目、という指定は、後者の確保する用量が静的に決まるため、
極めて具合が良いのだよ。

「エラトステネスのふるい」と言われて、
教科書どおりの手順しか思いつかない人間には、
残念ながら、創造の才能は無いよ。
与えられた道具は、使い方を工夫して、組み合わせるんだ。

599 :名前は開発中のものです。:2006/11/28(火) 01:45:59 ID:VYv9sMeV
サンプル画像
http://kasumicyoucyou.fc2web.com/Palau2006/0329/3290151.jpg

http://gamdev.org/up/img/8231.png

実行ファイルとソース
http://gamdev.org/up/img/8232.zip

微分使うのを諦めて隣接するピクセルと引き算して閾値と比べてみた
工夫した点はRGBを別々に比べたこと
RGBの合計を閾値と比べるより綺麗なエッジがでます
閾値を弄れば雲の部分のエッジを出すことも可能
その場合は他の場所がうまくいかなかったりするので
調整するのも難しい

600 :名前は開発中のものです。:2006/11/28(火) 03:03:40 ID:JXILxC55
>>598
前言撤回です。自分のアホさを痛感しつつ課題に取り組みました。
ttp://gamdev.org/up/img/8233.phps

というか、>>382と同じですねHAHAHA.
orz

601 :名前は開発中のものです。:2006/12/18(月) 20:43:34 ID:f8pwlrC2
課題 素数 COBOL
http://gamdev.org/up/img/8389.phps

まだCOBOLは出てなかったようなので……。

222 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)