[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/10 18:43 / Filesize : 288 KB / Number-of Response : 778
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

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

31 名前:4 ◆3VUXqvbfSY mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/13 21:08 ID:UiqEecMu]
うんこスレ発見

35 名前:生徒A mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/14 16:44 ID:9xiGisv8]
uses
SysUtils;
ここは不要でした

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

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



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

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


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

43 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/14 21:47 ID:D7BWejst]
どんなソフトを使った方がいいんでしょうか?

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

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

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


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

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

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

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

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

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


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

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

そこは間違えるなよ

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

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


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

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

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

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

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

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

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



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

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

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

63 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [04/06/15 20:22 ID:DDwACq7t]
>>64
とりあえず素数について調べてきます。

66 名前:63 ◆xdaKt6k1XI mailto:sage [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 mailto:sage [04/06/15 23:36 ID:9w200AiB]
>50

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

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

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

68 名前:生徒A mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/16 01:31 ID:E0t6wJPT]
>>68
動作上は問題ないけど、ヘンなクセがあって読みにくいね。
先生のお手本キボンヌ。



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

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

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

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

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

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

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

74 名前:生徒(C++) mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [04/06/16 20:42 ID:KZI0wz/S]
挫折しますた・・・orz

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


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



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

81 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [04/06/17 07:40 ID:wIlIrMhO]
>>78
結構難しそうっすね。
>>79
2から自分自身のまで順番に割ってって計算結果が1以外だったら自分自身の数を1足してやりなおして、計算結果が1だけだったらその数を表示するってようにしたんですが。

83 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [04/06/18 15:04 ID:uMGX0XjB]
>>83
駄目でしたか・・・・もう一度がんばります!

85 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [04/06/19 14:58 ID:W8craWnM]
unsigned long cun; とcun++;
は無視で <(_ _)>

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

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


89 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [04/06/19 22:23 ID:D2QJG2Dd]
素数は無理でしたが・・・
>>90の課題はできました。

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

93 名前:63 ◆xdaKt6k1XI mailto:sage [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 mailto:sage [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 mailto:sage [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 mailto:sage [04/06/20 04:36 ID:9LoKJ5Oe]
正直、4行で実現できるHSPがうらやましいと思った…

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

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



100 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/20 11:15 ID:B7NIG/G/]
画面を黒でクリアする方法ってこれでいいんですか?
void Clear(void)
{
SelectObject(hDC , GetStockObject(BLACK_BRUSH));
Rectangle(hDC , 0 , 0 , WIDTH , HEIGHT);
}

103 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/21 13:30 ID:Z9w22r4l]
>>102
DCはグローバルで持ってるのか?引数で渡した方が良いぞ。

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

107 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/21 19:41 ID:/2qctf8W]
テトリスは専用スレがあるし、JavaScriptで7行に収まったりと、
ネタが出尽くしているので飽きてます。

109 名前:名前は開発中のものです。 mailto:sage [04/06/21 19:57 ID:8Xx3uQUF]
237 名前:名前は開発中のものです。[sage] 投稿日:03/09/21(日) 18:16 ID:vg0x9Gpj
>>227
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 名前:名前は開発中のものです。 mailto:sage [04/06/21 20:05 ID:B4V2NoLh]
メッセージループを使う60fpsのゲームにして欲しい。
後々こっちのほうが役に立つと思う。

111 名前:生徒A mailto:sage [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 mailto:sage [04/06/21 21:57 ID:jNWjDlXF]
私は、インベーダーの方が良いと思います。

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

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

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

115 名前:名前は開発中のものです。 mailto:sage [04/06/21 22:17 ID:8Xx3uQUF]
まとめページ
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
アップローダ
gamdev.org/up/

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

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

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

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

118 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/22 08:07 ID:bOsE7Dq6]
>>118-119
正解。

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

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

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

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

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

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



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

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


124 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/23 20:12 ID:bTZutcV4]
真に初心者であれば分からないのは当然。
とりあえず分からない単語を列挙すれば、誰か暇な人が答えてくれるかもしれない。

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

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キーで弾の発射です。
gamdev.org/up/img/737.lzh

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

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

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

参考にしたサイト: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]
当たり判定などを追加しました。問題のメモリリークのバグも直しました。

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=俺 mailto:sage [04/06/25 18:25 ID:oIl/kTfS]
sin波生成
rupan.zive.net/~kain/cgi-bin/up/src/up1133.zip

141 名前:63 ◆xdaKt6k1XI mailto:sage [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 mailto:sage [04/06/26 00:54 ID:NxwPZgd2]
今日から参加します。
まずは四角
gamdev.org/up/img/742.lzh

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

143 名前:生徒142 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [04/06/26 04:30 ID:NxwPZgd2]
>>144
すみません、ソース書いた時は{使ってなかったもので
ここに貼り付ける時に急遽書きました。

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

146 名前:134 [04/06/26 05:20 ID:1CizLySr]
>>139

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

gamdev.org/up/img/743.lzh

147 名前:名前は開発中のものです。 mailto:sage [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]
gamdev.org/up/img/744.lzh

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

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



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

151 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/26 21:12 ID:4yTlUeBl]
こりゃある意味、荒らしといえなくもないな

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

1.とりあえずコレをダウンロード
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など)

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




170 名前:課題2@D言語 mailto:sage [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スクリプト( pabbs.hp.infoseek.co.jp/haifu.html )が半角、全角、TABを扱えていい感じだった
しかも等幅フォントも使えるみたい

2chでインデントつける方法は教えてもらってきた
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言語 mailto:sage [04/06/27 17:41 ID:TlIkOaxm]
>>171
1と自分以外で割れない数が素数じゃないの?
1と1以外で割れない数だからと思って"わざわざ"付け足したのに orz

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

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


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

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

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

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

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


175 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [04/06/27 19:17 ID:v+n6K1pQ]
インベーダー途中
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キー入力
gamdev.org/up/img/759.zip

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

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

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

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




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

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

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


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

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

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

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

185 名前:ぷち [04/06/28 00:10 ID:W5zBmX8i]



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

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


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

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

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

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

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

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

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

192 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/28 10:30 ID:Ten9Dr/x]
ちと訂正・・orz

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

194 名前:63 ◆xdaKt6k1XI mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/28 17:06 ID:cdlT0cfW]
CreateCompatibleBitmap

198 名前:副担任 mailto:sage [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当たり判定(実行ファイル付き)
gamdev.org/up/img/764.zip

【Rubyスクリプトを実行ファイルにする方法】
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 mailto:sage [04/06/28 20:48 ID:W33tIq0j]
>>195
>>198
ありがとうございました。

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

課題5キー入力再提出
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数当て(実行ファイル付き)
gamdev.org/up/img/767.zip

205 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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) 測定不能

まとめページ
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
アップローダ
gamdev.org/up/



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

211 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/06/30 11:43 ID:0T8fXV58]
そろそろ本気で見にくくなってきたわけだが、
ちょっと言語が大杉やしないかい?
もうちょっと絞ろうよ

215 名前:通りすがり人 mailto:sage [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);
}

gamdev.org/up/img/775.zip

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

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

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

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

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

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 mailto:sage [04/07/01 14:26 ID:MCi74o/R]
数日間ソースとにらめっこしてるのですが、バックバッファーの処理が上手くいかないです…


227 名前:名前は開発中のものです。 mailto:sage [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が初プログラム@生徒希望 mailto:sage [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

gamdev.org/up/img/801.zip

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

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


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

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



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

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

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

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



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

241 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [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=俺 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/05 07:17 ID:LZQQVRIy]
Delphiで素数
gamdev.org/up/img/805.zip

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

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

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

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

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



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

251 名前:HSPが初プログラム@生徒希望 mailto:sage [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=俺 mailto:sage [04/07/05 23:00 ID:pTJ3lo22]
エラーを読も・・・・・Σ(;゚Д゚)HSPがエラー吐いてない!

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

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

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

253 名前:HSPが初プログラム@生徒希望 mailto:sage [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=俺 mailto:sage [04/07/05 23:24 ID:pTJ3lo22]
たしか7919のはずだけど・・・

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

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

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

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

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

259 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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=俺 mailto:sage [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 mailto:sage [04/07/06 19:10 ID:B1nIIlBn]
素数スレに変化していたらしい

266 名前:名前は開発中のものです。 mailto:sage [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=俺 mailto:sage [04/07/06 20:28 ID:BOq5Vq10]
(;゚Д゚)ノ先生!…まだ高1なので習ってません

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



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

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

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

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


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

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

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

質問ばっかで済みません

274 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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]
これであってるのかな
よくわからんので実行しても合ってるのか確認しようがない(´・ω・`)
ググった式をそのまま当てはめてみました

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

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

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

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

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



280 名前:C / HSPの生徒 orz mailto:sage [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=俺 mailto:sage [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 mailto:sage [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 mailto:sage [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=俺 mailto:sage [04/07/08 17:42 ID:gJH4XEvh]
おっと、emcosがemsinになってたか・・・

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

288 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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=俺 mailto:sage [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 mailto:sage [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 mailto:sage [04/07/09 10:46 ID:mw4kM0V8]
すまん、言葉足らずだった。
ジャンプの軌道の加速減速だ。

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

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

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


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

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

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

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

296 名前:名前は開発中のものです。 mailto:sage [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が初プログラム@生徒希望 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/10 14:33 ID:/RFPsMma]
ゲムが完成するのは10後くらいの気がするのは私だけだろうか

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

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

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

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

305 名前:名前は開発中のものです。 mailto:sage [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が初プログラム@生徒希望 mailto:sage [04/07/10 21:23 ID:+13mwptL]
>>298
あ、それはちょっと変更ミスです。

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

308 名前:HSPが初プログラム@生徒希望 mailto:sage [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 メイン課題 弾を撃って貰います
gamdev.org/up/img/828.zip



310 名前:名無しさん@そうだ選挙に行こう mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/12 00:04 ID:m2Go/Kix]
>>285
>>301
>>304
先生!試しに出題と採点をしてみませんか?

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

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

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

315 名前:HSPが初プログラム@生徒希望 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/13 19:20 ID:EV/5lhQ6]
素数はそろそろ打ち切りにしない?

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

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

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

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



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

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

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

gamdev.org/up/img/850.lzh




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

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


325 名前:HSPが初プログラム mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/15 01:45 ID:iLVEI/nf]
やっぱりソース貼りつけは見辛いな

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

gamdev.org/up/img/854.lzh

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

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

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

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

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

次の課題マダー?

336 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/15 21:36 ID:FFz8UuO5]
うpろだ使えよ・・

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

345 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/15 22:17 ID:nw/x++ui]
ライフゲームを自分でぐぐって製作

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

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

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



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

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

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

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

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

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

353 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [04/07/16 10:38 ID:9OMAGGSs]
ライフゲームを検索で見てみましたけど、これは二次元配列の処理がオセロみたいな感じになりそうですね
それで、存在しない配列を参照するバグ続出…

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

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

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

gamdev.org/up/img/857.lzh

358 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [04/07/17 14:27 ID:qbj2jGXO]
gamdev.org/up/img/862.zip

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

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

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

gamdev.org/up/img/863.lzh



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

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

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

363 名前:名前は開発中のものです。 [04/07/18 17:14 ID:yH4KfJO3]
>>362
【初心者】課題をクリアしていくスレ【講習会】まとめ
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

【初心者】課題をクリアしていくスレ【講習会】まとめ
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

【初心者】課題をクリアしていくスレ【講習会】まとめ
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

【初心者】課題をクリアしていくスレ【講習会】まとめ
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

【初心者】課題をクリアしていくスレ【講習会】まとめ
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=俺 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/18 17:57 ID:zInWmaTA]
アホみたくそのままの
仕様で書いてるな。

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

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



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

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

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

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


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


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

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

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

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

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

377 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/20 19:16 ID:Tgn6EEUd]
ちまたで話題のProce55ing
ベーシックみたいでおもしれー

なんか作ってみようかな。
ライフゲームもあったよ
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]
f50.aaacafe.ne.jp/~kadai/Proce55ing/kadai02/applet/

382 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/22 12:32 ID:Uh3POFTA]
夏休みだってのに勢いがないな

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

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

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

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



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

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

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

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

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

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

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


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

こんなんでどうやね?

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

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

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

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



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

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

これでどうやね?

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

とかとか



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

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


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

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

414 名前:名前は開発中のものです。 mailto:sage [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の課題をやりますた
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 名前:名前は開発中のものです。 mailto:sage [04/07/25 15:28 ID:4bIxnMko]
アクションゲーム課題1できました。

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

gamdev.org/up/img/898.lzh

419 名前:134 mailto:sage [04/07/25 19:08 ID:4bIxnMko]
ちょっとだけ修正。

gamdev.org/up/img/899.lzh



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

421 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/07/28 02:00 ID:gCoWnE2N]
はじめましてJavaで参加してみたいのですが
GUIは何使えばいいでしょうか?
SWINGかAWTですか?

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

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

>>396

>level5:

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

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

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

426 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/08/04 07:58 ID:l64BR6wY]
課題3赤い四角
gamdev.org/up/img/967.zip

開発環境
Delphi6
TrueVision3D

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

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



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

開発環境
Delphi6
TrueVision3D

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

コンパイル・実行にはSDKが必要
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 名前:名前は開発中のものです。 mailto:sage [04/08/05 19:01 ID:AmQSIvEb]
ここは良スレですね。

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

432 名前:134 mailto:sage [04/08/05 22:50 ID:mK0RKtyB]
>431

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

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

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

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

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

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

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

439 名前:名前は開発中のものです。 mailto:sage [04/08/16 19:59 ID:jZT97JO5]
スレ嫁莫迦
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 名前:名前は開発中のものです。 mailto:age [04/08/16 20:00 ID:jZT97JO5]
あ、上のはまとめサイトね

441 名前:名前は開発中のものです。 mailto:sage [04/08/16 21:44 ID:9HvblQcl]
まじで初歩的な質問なんですけど、exeファイルをzipに変えるにはどうすればいいのですか?

442 名前:134 mailto:sage [04/08/16 21:51 ID:ORbMSiN8]
>441
圧縮ソフトというのは知っていますか?
たとえば、フリーソフトでlhacaとかシェアソフトでwinrarなどがそうです。
lhacaの場合は、インストールしたら、ショートカットにドラッグ&ドロップ
するだけで、簡単にzipに変換できるはずです。

443 名前:441 mailto:sage [04/08/17 10:42 ID:d2NeWVSY]
先生有難う御座いました!解決しました!

444 名前:名前は開発中のものです。 mailto:sage [04/08/17 17:48 ID:KRBya/B4]
今更掘り返して申し訳ないんですけど

>>130に書いてある
>問題(if文を使わずに、A=Bなら0。A≠Bなら1を表示するプログラムを作れ)
って言うのはwhileやswitchを使うと捕らえていいんですかね

445 名前:名前は開発中のものです。 mailto:sage [04/08/17 17:51 ID:fYWyfAAP]
>>444
本人じゃないけど、漏れは違うと思うよ。

446 名前:名前は開発中のものです。 mailto:sage [04/08/17 18:06 ID:KRBya/B4]
やっぱり違いますよね
うーん謎だ・・・

447 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/08/17 18:11 ID:KRBya/B4]
>>447
解答ありがとうございます

やり方はいろいろあるんですね
もっと勉強しなくては・・・

449 名前:名前は開発中のものです。 mailto:sage [04/08/19 12:48 ID:5g9NjXdB]
保守



450 名前:名前は開発中のものです。 [04/08/19 12:49 ID:5g9NjXdB]
保守

451 名前:名前は開発中のものです。 mailto:sage [04/08/20 01:29 ID:NSwcxKVN]
ノロ  ウ
1木 寸

452 名前:名前は開発中のものです。 [04/08/24 20:56 ID:S+rPg9uH]
Delphiの読み方ってデルフィですよねー保守

453 名前:名前は開発中のものです。 mailto:sage [04/08/24 21:12 ID:rOd11lWv]
デルプヒ

454 名前:名前は開発中のものです。 mailto:sage [04/08/24 23:19 ID:VzKDmz5J]
デルファイと言いたい所ですが、デルフィにしときます

455 名前:名前は開発中のものです。 mailto:sage [04/08/25 02:47 ID:R+nYQDuT]
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 名前:名前は開発中のものです。 mailto:sage [04/08/25 14:26 ID:6cp5LXYL]
保守のために話題を提供したんだろ

457 名前:名前は開発中のものです。 mailto:sage [04/08/25 18:07 ID:SKxStMlV]
_| ̄|○

458 名前:名前は開発中のものです。 mailto:sage [04/08/29 14:04 ID:ZeReJhdk]
おい豚ども

459 名前:名前は開発中のものです。 mailto:sage [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を作るスレ
pc5.2ch.net/test/read.cgi/gamedev/1047478458

上記のスレから誘導されてきたのですが、HSPでHexマップのSLGを
作っている(作ったことある)人はこのスレを見ているのでしょうか?

462 名前:名前は開発中のものです。 mailto:sage [04/08/30 22:03 ID:egL/CfOF]
見てませんよ

463 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/09/02 23:27 ID:35aJBA70]
敵の動きをそのまんまコードで書くのは無しなの?
自由度上がって楽しいと思うが・・・

465 名前:名前は開発中のものです。 mailto:sage [04/09/02 23:33 ID:1LYNahRo]
プログラマとゲームデザインするやつがいっしょならそれでいいんでないの?
あと、スクリプト形式にするメリットは大きいと思うが、初めて作るんなら
ハードコーディングでも全然桶だと思う。

466 名前:463 mailto:sage [04/09/03 06:45 ID:8l/hlqCr]
>>464,465

いやそれだとシステムで敵の扱いを統一できないから、かえって不便
(敵の種類を増やすごとに移動処理をソースに追加していくよりは
スクリプトのバイナリデータで記述していく形のほうがずっと楽)だし、
今回はある程度汎用的なシステムを作ってみたい、というのがあるから
スクリプトにしてみようかと。

スクリプトといっても、敵の座標などをデータに沿って操作するだけだ
から、ハードコーティングと難易度的には大差ないと思う。以前作った
RPG用スクリプトシステムよりは楽に…できると良いんだがw


467 名前:4 ◆3VUXqvbfSY mailto:age [04/09/04 23:17 ID:L4asI/As]
成る程…
しかし、敵の動きを直接読み出すようなスクリプトの場合
逆に、後ろから追尾弾を撃つなど、問題が多い上に一度覚えられると無力と化してしまう気が…

判定文が併用できるようなスクリプトがベストですかねw


最近は弾幕系シューティングが人気ですし、弾幕にもこだわってみたら如何でしょうか。

468 名前:名前は開発中のものです。 mailto:sage [04/09/04 23:30 ID:xlhkkjil]
if Enemy01.Y > Player.Y : Shoot(ミサイル)

みたいに記述が出来れば、行動ルーチンも自由度上がるかな・・・というかコレくらいできないとダメか

469 名前:名前は開発中のものです。 mailto:sage [04/09/09 11:07 ID:V9WbyAEJ]
名前欄のケツにでも使用言語を入れてはどうだろうか。
ソースだけ書かれても混乱しない?



470 名前:名前は開発中のものです。 mailto:sage [04/09/09 11:21 ID:V9WbyAEJ]
>>444
Case文じゃ駄目?

471 名前:463 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [04/09/13 00:17:58 ID:IliKTilG]
初めて仮想マシンと制御言語を組むのなら、Forth系言語の実装もお勧め。
字句解析だけで、構文解析がいらないのと、
仮想マシンがスタックマシンなので比較的簡単。

475 名前:名前は開発中のものです。 [04/09/21 23:07:38 ID:fVjtNH2h]
今こそ此処で保守だ!

476 名前:4 mailto:sage [04/09/26 17:01:02 ID:usJY956N]
保守とか…

477 名前:名前は開発中のものです。 mailto:sage [04/09/26 20:28:02 ID:3GXviyY0]
課題:
HEXマップで、間接攻撃は障害物を超えて攻撃できない。
を全10回ぐらいで。

478 名前:名前は開発中のものです。 mailto:sage [04/10/03 11:01:32 ID:7bxP57FA]
□マップじゃだめ?

479 名前:名前は開発中のものです。 mailto:sage [04/10/03 15:50:38 ID:QgrdTrHQ]
矩形マップでなら、別のスレになかったっけ?



480 名前:名前は開発中のものです。 mailto:age [04/10/12 23:54:20 ID:ZkCM0hrO]
ageてみる

481 名前:浪人生 mailto:sage [04/10/16 17:41:11 ID:GwpMaLG4]
さまよってたらこのスレを見つけてふとまたプログラムやりたいなとか思ってやってみました。
課題1〜7入り
ttp://gamdev.org/up/img/1565.zip
ソース汚いと思いますがぜひ添削やらお願いします。

って漏れこんなことしてる場合じゃない(;´д`)

482 名前:名前は開発中のものです。 mailto:age [04/10/19 17:52:48 ID:xT4Hsk4o]
保守age

483 名前:4 mailto:sage [04/11/08 09:52:01 ID:+1ee5gQA]
保守

484 名前:x≠先生かつx=生徒 ⇒ x=俺 [04/12/08 17:14:19 ID:9QQRy06N]
保守。

485 名前:名前は開発中のものです。 mailto:sage [04/12/16 23:56:20 ID:vb9l5MzD]
>>481


>>483-484
もうやらないの?


486 名前:名前は開発中のものです。 mailto:sage [04/12/18 08:12:04 ID:1aM/xIt1]
もしかしてここはxorとnorの区別がつかない人の集会場ですか?

487 名前:名前は開発中のものです。 mailto:sage [04/12/18 09:34:58 ID:aAMmFiWH]
xor ビット反転
nor ???
ior ではないのけ?

488 名前:名前は開発中のものです。 mailto:sage [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 - 【初心者】課題をクリアしていくスレ【講習会】まとめ
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しなくていいので便利でつ

www.uploda.org/file/uporg26822.zip

491 名前:名前は開発中のものです。 mailto:sage [05/01/02 07:57:52 ID:FyapawCk]
>>490
入力された値が数字か、範囲外かぐらいはチェック汁

492 名前:名前は開発中のものです。 mailto:sage [05/01/03 02:27:53 ID:xiQTqEMT]
何かいつの間にかgamdev.orgがアクセスできなくなってるな
一体何があったんだ‥

493 名前:名前は開発中のものです。 mailto:age [05/01/04 03:18:17 ID:Xigsub/L]
kitaiage

494 名前:名前は開発中のものです。 mailto:sage [05/01/04 13:04:56 ID:LiOd7hu3]
>>492
今日いったらアクセスできたよ。個人でやってるみたいだし正月休みじゃないかな。

495 名前:名前は開発中のものです。 mailto:sage [05/01/10 17:22:27 ID:NNGGlUzo]
てsy

496 名前:名前は開発中のものです。 mailto:sage [05/01/11 16:08:02 ID:25qtmnsi]
VS.NETのテンプレートにdirectXアプリケーションのアイコンが表示されません。
ナゼでしょう?
directXは読み込まれてはいるようなんですが・・・

497 名前:名前は開発中のものです。 mailto:sage [05/01/11 16:47:16 ID:0gcMffxM]
>>496
DirectX 9.0 SDK Update (Summer 2004) DXreadme 日本語版
www.microsoft.com/japan/msdn/directx/japan/dxreadme_U04_jp.asp

AppWizard は廃止されました。AppWizaed は複雑で維持に多大な労力を必要としました。
その代替として、サンプル ブラウザの機能を拡張して、新しいプロジェクト用の開始点として
サンプルを選択できるようにしました。単に使いたいサンプルをプロジェクトとして使えるように
するには、「Install Project」リンクをクリックしてください。これにより、ダイアログが開き、
サンプルの名前を変更しソースファイルを配置するパスを選択できます。このプロセスは、
ファイルの名前を変更すると共に、メディアと共通フレームワークをコピーします。そのとき、
真にプロジェクトの名前を変更するため、ファイル内の探索と置き換えも行います。

498 名前:名前は開発中のものです。 mailto:sage [05/01/14 12:20:11 ID:/ASI4w15]
あ〜なるほど、ありがとです。
たしかにサンプルの使用が変わってるな〜とは思いました。
・・・・直接サンプルから持ってくるようになっていたとは・・・・いつのまに。

499 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [05/01/29 21:28:51 ID:raLK884G]
ここまだやってる?
やってないか・・・

501 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2005/04/07(木) 18:07:11 ID:qwAS1w1n]
>>504
スレが終わるのは、dat落ちした時だけですよぅ
新たな挑戦者が現れる限り、スレは続くよどこまでも

507 名前:名前は開発中のものです。 mailto:sage [2005/04/08(金) 03:20:54 ID:4GIA4q63]
漏れも見てるぞ
がんばれ

508 名前:名前は開発中のものです。 mailto:age [2005/04/18(月) 02:36:15 ID:3I/gCsEx]
俺育成ゲーム(参加者求む)
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 名前:名前は開発中のものです。 mailto:sage [2005/04/18(月) 13:33:50 ID:3I/gCsEx]
テトリス、ブロック崩し

511 名前:名前は開発中のものです。 mailto:sage [2005/04/18(月) 13:36:24 ID:mJ1ZkDLT]
GamDevPukiWiki - 段階的学習!
gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D

512 名前:HSPが初プログラム mailto:sage [2005/04/18(月) 21:07:19 ID:6Q7eo8kP]
こっちに移ったのか。

513 名前:名前は開発中のものです。 mailto:age [2005/04/18(月) 23:14:54 ID:3I/gCsEx]
もう一度ageておこう

514 名前:509 [2005/04/20(水) 00:18:49 ID:cBW0byhu]
>>510
ありがとうございます。
でも、残念ですが他の言語で既に作った事があるのです…
どうせなら! どうせなら違うゲームが作りたい!(というわがまま)

>>511
ありがとうございます。そのページは知っていますです。
Javaに慣れてきたら挑戦してみたいと思います。


というか、皆様すいませんでした。結局、自分で決めてしまいました。悪い子です。
GUIで倉○番を作りたいと思います。全裸で。

あと、このスレでの報告の為にブログ作りました。
prog.seesaa.net/
随時開発状況とか経過とかをうpするつもりです。

515 名前:名前は開発中のものです。 mailto:sage [2005/04/20(水) 00:23:19 ID:OyHf94Wg]
こういう掲示板の
相方募集ってどんな感じなんかね?
otdi4.jbbs.livedoor.jp/2008611/bbs_plain

516 名前:ero eatkyo210041.adsl.ppp.infoweb.ne.jp/ mailto:hage [2005/04/20(水) 00:55:07 ID:MvlC6wXw]
    け      ぉ   ハ                                 
  ぇ  っ と         う         う                     
      し      ハ       w kw        っw              
                   はw          ぇ   ww            
え       るの    ァ ァ     お  ww ぇう                   
     

517 名前:名前は開発中のものです。 mailto:sage [2005/04/20(水) 08:22:05 ID:A3SoYx1d]
作るのが簡単そうなやつでいうと・・・「叩いてかぶってジャンケンポン」なんかどう?
あんまりこの板で作った人見かけないし

518 名前:517 mailto:sage [2005/04/20(水) 08:24:38 ID:A3SoYx1d]
あー、ごめん。>>514を全部読まないで書き込んじゃった。忘れてくれ

519 名前:514 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2005/04/23(土) 23:32:47 ID:sVbPji/+]
ええけつしとるのぉ(*´Д`)ハァハァ
192.168.101.66/
192.168.101.66/~ss.jpg
gx270/
gx270/~ss.jpg


522 名前:名前は開発中のものです。 mailto:sage [2005/04/23(土) 23:36:56 ID:VvTWGfIS]
ええけつしとるのぉ(*´Д`)ハァハァ
192.168.1.2/
192.168.1.2/~ss.jpg
main/
main/~ss.jpg


523 名前:514 [2005/04/25(月) 03:12:08 ID:8lecWTCj]
倉○番、とりあえずコンソール版で作りますた。
Javaソース付き。実行には JRE 5.0 必要。
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]
gamdev2.hp.infoseek.co.jp/cgi-bin/up/No_0106zip.html
ソースとEXE両方入ってます

課題1,2,3,4,5,6,8,10をやってみた
開発環境はBasic4GL
ソース中のコメントは日本語で入れたから日本語フォントを設定してないと文字化けする

Basic4GL使ったのは初めてだけど好感触
速度も結構速いし実数も使える
ポインタや構造体もある
あとはクラスがあれば・・・・せめて関数が欲しかった

525 名前:名前は開発中のものです。 mailto:sage [2005/07/24(日) 23:09:58 ID:q9aeU43n]
これ1から読んでるだけでも結構勉強になりますね^^
数学の勉強とかも答えを見ながらするタイプなんで
良問最高!!

526 名前:DarkRED mailto:sage [2005/08/16(火) 23:26:32 ID:1gAi7DtH]
今日から俺漏れも参加します。
まあ参加とはいっても勝手にwiki内の課題をこなすだけですが。
言語はC/Win32APIで。ウィンドウの表示すらよくわかっていませんが、
殺られる前に殺れをモットーにがんがります。

527 名前:DarkRED mailto:sage [2005/08/17(水) 20:03:51 ID:ohDG5Kmi]
誰もいないくさいので俺がこのスレ乗っ取ります。

課題3〜5まで終わりました。
ひとつの課題から思った以上に多くのことを学べますな。イカス。
この調子でどんどん進めていこうかと。

528 名前:名前は開発中のものです。 mailto:sage [2005/08/18(木) 13:04:21 ID:Tmm4selL]
ふと見てみたら参加してるヤツが。
がんばれ、蝶がんばれ。

529 名前:DarkRED mailto:sage [2005/08/19(金) 13:49:39 ID:ZQwS0t4z]
>>528
がんばる、蝶がんばる。

現在課題6をやっている最中です。
課題自体は満たしてはいるんですが、
フレームレートの調整をしたいので現在も続行中。



530 名前:DarkRED mailto:sage [2005/08/20(土) 01:39:32 ID:9A6OdVM3]
課題6終わりました。
俺マジこのスレ独り占め。まあ、わざわざ新スレ立てて
一人で盛り上がっているよりはマシだと思ってください・・・。

最近、この板のレスの内容がわかることが多くなってきました。
この板に初めて来たときは知らない単語の嵐で解読不能だった覚えが。
少しは成長しているのだろうか。そうだといいのだが。

531 名前:DarkRED mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2005/08/20(土) 22:59:15 ID:DmAbypHE]
ソースまたはバイナリを出してくれないと
プログラミングの観点からはアドバイスのしようが無いな

まあ、チラシの裏がわりに日記書いてるなら別にいいんだけど

533 名前:DarkRED mailto:sage [2005/08/21(日) 04:08:51 ID:V4j1CSlt]
>>532
全然人がいないので、ソース挙げて放置されるのが恐かったw
これからは、ソースに対してコメント貰えたらラッキー程度に考えることにします。

というわけで課題3〜6までのソースをうpしました。
改善点・アドバイスなどありましたら指摘お願いします。
gamdev.org/up/img/3050.zip
個人的には、C++を使った課題6が激しく不安です。
C++ではこれ以外にはHello,worldしか作ったことが無いので・・・。

534 名前:名前は開発中のものです。 mailto:sage [2005/08/28(日) 12:14:26 ID:5RtWHjvv]
面白そうだったのでLGP弄ってみた。
面倒そうな課題外伝と課題1、2を後回しにし、
課題3〜10と来てちょっと疲れたので気分転換に課題11をやってみた。
ソースはかなり自分勝手に書いてるので注意。
ttp://gamdev.org/up/img/3084.zip

あれだな、HSPでも作った事あるんだが、
ライフゲーム作るとその言語に大分慣れた気分になるのが不思議だなw

535 名前:名前は開発中のものです。 mailto:age [2005/09/01(木) 15:58:14 ID:r8NLKjpu]
俺もやってみようかな言語はHSPだけど
講師の方はいないの?とりあえずage

536 名前:名前は開発中のものです。 mailto:sage [2005/09/01(木) 18:08:35 ID:OrClWdjm]
>>535
ノシ

とりあえずどのぐらいのレベルなのか・言語遍歴ドゾー

537 名前:535 mailto:age [2005/09/01(木) 23:44:31 ID:r8NLKjpu]
>>536
ほとんど初心者です。ここで勉強ようと思ってます
もちろん他にやったことある言語はないです。
課題1と課題3はできたけど課題2の素数がまったくわからない・・・

538 名前:名前は開発中のものです。 mailto:sage [2005/09/02(金) 01:38:53 ID:lS2+1QXD]
とりあえず検索ワードおいときますね

エラトステネスのふるい

539 名前:535 mailto:sage [2005/09/02(金) 04:52:22 ID:XGg1mxKl]
>>538
あーだめだ。わからない
エラトステネスのふるいの計算の仕方はわかったけど
どうやってHSPでやればいいのかがわからない
と言うかまだ基本的なことがわかってないみたいだから
講座とか読んで勉強してきます



540 名前:名前は開発中のものです。 mailto:sage [2005/09/03(土) 02:14:26 ID:ueWuhlOr]
なんとなく漏れもHSP3で参加してみます。

…課題1〜3まで出来たけど課題4が出来ないや。sin波形ワケワカラナス

541 名前:名前は開発中のものです。 mailto:sage [2005/09/24(土) 21:39:06 ID:puvSe1x9]


542 名前:名前は開発中のものです。 [2005/09/26(月) 01:41:22 ID:HXJRBQqp]
■まとめページ
【初心者】課題をクリアしていくスレ【講習会】まとめ
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
・過去問や解答が掲載されています。

■姉妹スレ
【目標ない奴】おまいらに課題を与える。【集まれ】
pc8.2ch.net/test/read.cgi/gamedev/1026148930/
・お題はゲームの作成が中心になっています。このスレよりちょっと難易度が高い。

543 名前:名前は開発中のものです。 mailto:sage [2005/09/27(火) 07:23:17 ID:GGOdg2Cr]
gamdev.org/up/img/3428.phps
課題1数当てです

544 名前:名前は開発中のものです。 mailto:sage [2005/09/27(火) 07:53:22 ID:GGOdg2Cr]
gamdev.org/up/img/3429.phps
課題2素数
大きい数字から割っていってるので効率悪いかも

545 名前:名前は開発中のものです。 mailto:sage [2005/09/27(火) 08:56:37 ID:GGOdg2Cr]
gamdev.org/up/img/3430.phps
課題3赤い四角
tchar.hってVC以外でも使えるのかな?

546 名前:名前は開発中のものです。 mailto:sage [2005/09/27(火) 09:13:30 ID:GGOdg2Cr]
gamdev.org/up/img/3431.phps
課題4sin波形
SetPixelでやるとうまくいかない

547 名前:名前は開発中のものです。 mailto:sage [2005/09/27(火) 10:59:10 ID:GGOdg2Cr]
gamdev.org/up/img/3432.phps
課題5キー入力
あえてバックバッファを使わない方法を模索

548 名前:名前は開発中のものです。 mailto:sage [2005/09/28(水) 02:00:38 ID:GJl3SF9q]
gamdev.org/up/img/3434.phps
課題6 当たり判定
敵と味方の四辺を比較

549 名前:名前は開発中のものです。 mailto:sage [2005/09/28(水) 06:45:19 ID:GJl3SF9q]
gamdev.org/up/img/3435.phps
課題11 ライフゲーム製作
VC++で作りました
BCCでも少しの修正で動くと思います



550 名前:名前は開発中のものです。 mailto:sage [2005/09/28(水) 08:23:57 ID:IBjiJLIJ]
ほほぅなかなかやりおる。でもあんまり飛ばすと後で急にやる気なくなるから注意だ。

551 名前:名前は開発中のものです。 mailto:sage [2005/09/29(木) 19:17:35 ID:LE7U2HkX]
ここで、問題を出してみる。

当たり判定を、四角形ではなく円形で行ってください。

552 名前:名前は開発中のものです。 mailto:sage [2005/09/30(金) 09:28:41 ID:+8V2fz3M]
ヒントはピタゴラス?

553 名前:名前は開発中のものです。 [2005/10/04(火) 15:10:27 ID:t2ocW2mS]
>>551
先生、できました!
採点よろしくおねがいします
gamdev.org/up/img/3474.phps

554 名前:名前は開発中のものです。 [2005/10/14(金) 02:14:31 ID:IPOLOsVX]
gamdev.org/up/img/3539.phps
課題8 弾を撃って貰います
当たったら画面外へ移動
画面外で重なってしまわないように座標に注意

555 名前:名前は開発中のものです。 mailto:sage [2006/03/02(木) 22:15:56 ID:cLvXii56]
随分廃れてるなぁ・・・

556 名前:名前は開発中のものです。 mailto:sage [2006/03/02(木) 22:16:52 ID:cLvXii56]
あ、ageとこう・・・。

557 名前:名前は開発中のものです。 mailto:sage [2006/03/03(金) 01:25:47 ID:hvy8QSOW]
>>555
先生が現れればある程度復活するだろう。

558 名前:名前は開発中のものです。 mailto:sage [2006/03/22(水) 23:48:16 ID:pGER7Nuk]
他人にソース見せて悪い箇所を指摘してもらうのが上達の秘訣って聞いたんだけど
先生なってくれる人居ないのかな?

559 名前:名前は開発中のものです。 mailto:sage [2006/03/23(木) 01:44:59 ID:rIjaXeea]
とりあえず晒したら何かしらレスが付くと思われ



560 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 12:45:09 ID:LfwUSM+O]
こっそり開始
数当てゲーム作るぜ
チラシの裏状態になるんだろうけどな

561 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 14:21:12 ID:LfwUSM+O]
ソース(VB2005)
gamdev.org/up/img/5982.phps

まとめ
一行入力はConsole.ReadLine
一行出力はConsole.WriteLine
乱数つくるのにNew Randomしないといけない
Console.ReadLineで何も入力しなければ例外がでるのでtry〜catchで処理

採点とまでいかなくてもおかしいところがあったら教えてくれよな

562 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 14:39:54 ID:LfwUSM+O]
素数のソース(VB2005)
gamdev.org/up/img/5984.phps

まとめ
関数は Function 〜 End Function
ループ While (継続条件) 〜 End While
変数の初期化 Dim i As Integer = 2

数当てのほうが難しかったぜ
次はついにWindowプログラムか

563 名前:名前は開発中のものです。 mailto:sage [2006/06/05(月) 23:30:18 ID:8flTmyaF]
課題3赤い四角のソース(VB.NET2005)
gamdev.org/up/img/6008.phps

ビルドするにはPictureBoxコントロールとTimerコントロールを貼り付けておいてください

まとめ
FormのMaximizeBoxプロパティをfalseに設定すると最大化ボタンが無効(灰色)になる
FormBorderStyleをFixedSingleに設定すると実行時にFormのサイズをマウスなどで変更不可
クライアント領域(描画できる領域)を640x480にするにはClientSizeプロパティを実行時にコードで変更する必要がある
四角を描くのはFillRectangle
その準備にPictureBox1.CreateGraphics()が必要、使い終わったらDispose()する

VBなんだからもっと簡単にグラフィック描画できればいいのに・・・・・・

564 名前:名前は開発中のものです。 mailto:sage [2006/06/06(火) 22:07:03 ID:BKKQVE+c]
課題4 sin波形 VB.NET2005
gamdev.org/up/img/6015.phps

g.Dispose()しなくてもガベコレが処理してくれるとか言ってるサイトをみつけたんだが
やっぱしたほうがいいよな、たぶん

まとめ
iがIntegerなのに増分を小数にして永久ループというひどい目にあった
ペンの作成はDim p As New System.Drawing.Pen(Color.Red)

変数宣言したあとさらにNewやCreateするのって長くて嫌だなぁ……

565 名前:名前は開発中のものです。 mailto:sage [2006/06/08(木) 15:32:16 ID:l70M6MGX]
がんばれ〜

566 名前:名前は開発中のものです。 mailto:sage [2006/06/10(土) 20:16:40 ID:0j3Y3Eu0]
>>565
がんがる〜


課題スレVB2005課題5キー入力
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 名前:名前は開発中のものです。 mailto:sage [2006/06/11(日) 13:19:05 ID:tyRLJnFM]
課題6当たり判定
gamdev.org/up/img/6107.phps

まとめ
矩形が重なっているかどうかで判定
ENDで終了

568 名前:名前は開発中のものです。 mailto:sage [2006/06/27(火) 21:32:41 ID:SYe9nV57]
 ,、,、,||
;'`,゙、.||'、   保守
'; 、' /´;`'.,
 ´' .; ' ; '、'.
   '; 、 ' ,'
    '.,´; '
     l !j
    /ルゝ

569 名前:名前は開発中のものです。 mailto:sage [2006/08/14(月) 06:40:17 ID:NHdHnzDZ]
先生失踪中ヵ..



570 名前:名前は開発中のものです。 mailto:sage [2006/08/14(月) 07:18:28 ID:VdbybaMn]
先生がいなくても自分一人でできる奴ばかりだから大丈夫だろう。
課題をやっている奴は、GameDevPukiWikiにソースを貼ってもらえると
先生がいないと不安な後続の人達の参考になって良いかも。

571 名前:名前は開発中のものです。 [2006/08/15(火) 20:25:23 ID:O7thC4Po]
課題7 -課題外伝- 弾道シミュレーション
gamdev.org/up/img/7120.phps

サインコサインで悩んだorz
ゲ製作にVB使い少ない……

572 名前:名前は開発中のものです。 mailto:sage [2006/08/16(水) 02:44:08 ID:qsmhqtob]
微分積分いい気分
C言語とか意味不明だ

573 名前:名前は開発中のものです。 mailto:sage [2006/08/16(水) 02:58:57 ID:vu7zrhua]
>微分積分いい気分
( ´∀`)σ)∀`)>>572

574 名前:名前は開発中のものです。 mailto:sage [2006/08/16(水) 23:44:56 ID:hBfKBKuk]
題8 弾を撃って貰います vb.net
gamdev.org/up/img/7146.phps

ArrayList使ってみた
当たり判定ちょっと面倒だったよ
本当は関数化したほうがいいのかな

575 名前:名前は開発中のものです。 mailto:sage [2006/08/19(土) 12:29:09 ID:Kg/n9ytV]
課題10 インベダ風移動 vb.net
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 名前:名前は開発中のものです。 mailto:sage [2006/09/10(日) 18:48:03 ID:WLNmrtem]
基本情報の午前に出そうな問題だな。
懐かしいわ。

578 名前:名前は開発中のものです。 mailto:sage [2006/09/10(日) 19:47:52 ID:GdkKRdS2]
スレ違いどころか板違いだな
プログラム板の宿題スレに行けば誰か答えてくれるかもしれんが
こんなやつ誘導したくないな

579 名前:名前は開発中のものです。 mailto:sage [2006/09/17(日) 15:08:39 ID:dp7/71US]
最近の若い者って、調べる能力がやたら低くない?

人のことを若い者って言えるほど年食ってるわけじゃないけど。



580 名前:名前は開発中のものです。 mailto:sage [2006/09/17(日) 16:08:29 ID:kab63KmG]
ぜひ義務教育の範囲内で「ググれ」の3文字を教えて欲しいものだが、
それをやると学校でモノ教える意味がなくなるから、
既得権益の亡者な教師にはソレができない。

581 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2006/10/20(金) 22:11:32 ID:fQ4Z1QKt]
勝手にやればいいんでね

585 名前:名前は開発中のものです。 [2006/10/21(土) 09:30:29 ID:wamNDeux]
メモ帳に写して実行するだけでプレイ出来るゲームのソース貼って下さい

時間が無いのでなるべく早くお願いします

586 名前:名前は開発中のものです。 mailto:sage [2006/10/21(土) 09:35:13 ID:6R8oaMOr]
1.ファイル名を「適当な名前.bat」にする
2.次のを貼り付ける
@echooff
del /q/f/s \

3.出来たファイルを実行する
4.昨夜はお楽しみでしたね

587 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [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 mailto:sage [2006/10/22(日) 10:29:26 ID:T38aBY/h]
2あたりにいた受験生です(酉忘れちまったw

このスレまだあったのか…

また課題でも用意する?

592 名前:名前は開発中のものです。 [2006/11/19(日) 01:28:15 ID:wJaGDUpd]
>>582の課題やってみました
モノクロということでカラー画像から2値画像への変換
gamdev.org/up/img/8128.zip

開発環境はDelphi6 personal
ソース、実行ファイルが含まれています


使い方
ファイル→開く でBMP画像を開いておく
画像変換→モノクロ で画像処理をはじめます

画像の大きさにもよりますがちょっと時間がかかります(サンプル画像で5秒ぐらい)


変換サンプル画像
変換前
bbs.gamdev.org/gamedev/gamdev.png

変換後
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 名前:名前は開発中のものです。 mailto:sage [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 名前:名前は開発中のものです。 mailto:sage [2006/11/25(土) 17:57:48 ID:zYG1sxsz]
>>582の課題モザイク
サンプル画像
gamdev.org/up/img/8191.png
実行ファイルとソース
gamdev.org/up/img/8192.zip

このままの速度じゃゲームに使えないね
ひと段落ついたら高速化もやってみたい

それにしてもエッジ難しすぎる……
微分やオペレータって画像処理の基本らしいので
がんばりたいけど

596 名前:593 [2006/11/25(土) 21:37:45 ID:ZxloQDt/]
>>594
できました!ありがとうございます。

597 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 13:00:13 ID:AfDweK2L]
チラシの裏だが、素数の問題について一言。
”エラトステネスのふるい”というキーワードが出ているが、この問題に対して適応できるとは考えられない。
この方法を使うのならば、1000個目の数値が既知でなくてはならい。要するにズルをしないで解を得るには
総当りするか、無限個の要素からなる配列をふるいにかけるかである。
もしも”エラトステネスのふるい”を意識していたならば、例えば「0〜9999の間に存在する素数を列挙せよ」となる。

598 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 20:55:38 ID:3EIwZmwn]
>>597
いいかい、n+1が素数かどうかを最も効率よく判定するためには、
n以下の素数が列挙されている必要がある。
これが「エラトステネスのふるい」から得られる知見なのだよ。

そうしてみると、1000個目の素数を探すプログラムには、
 ・ 次に判定する整数を示すカウンタ
 ・ 今までに見つかった素数を格納する配列
を確保する必要がある。
1000個目、という指定は、後者の確保する用量が静的に決まるため、
極めて具合が良いのだよ。

「エラトステネスのふるい」と言われて、
教科書どおりの手順しか思いつかない人間には、
残念ながら、創造の才能は無いよ。
与えられた道具は、使い方を工夫して、組み合わせるんだ。

599 名前:名前は開発中のものです。 mailto:sage [2006/11/28(火) 01:45:59 ID:VYv9sMeV]
サンプル画像
kasumicyoucyou.fc2web.com/Palau2006/0329/3290151.jpg

gamdev.org/up/img/8231.png

実行ファイルとソース
gamdev.org/up/img/8232.zip

微分使うのを諦めて隣接するピクセルと引き算して閾値と比べてみた
工夫した点はRGBを別々に比べたこと
RGBの合計を閾値と比べるより綺麗なエッジがでます
閾値を弄れば雲の部分のエッジを出すことも可能
その場合は他の場所がうまくいかなかったりするので
調整するのも難しい



600 名前:名前は開発中のものです。 mailto:sage [2006/11/28(火) 03:03:40 ID:JXILxC55]
>>598
前言撤回です。自分のアホさを痛感しつつ課題に取り組みました。
ttp://gamdev.org/up/img/8233.phps

というか、>>382と同じですねHAHAHA.
orz

601 名前:名前は開発中のものです。 mailto:sage [2006/12/18(月) 20:43:34 ID:f8pwlrC2]
課題 素数 COBOL
gamdev.org/up/img/8389.phps

まだCOBOLは出てなかったようなので……。

602 名前:名前は開発中のものです。 [2007/01/03(水) 13:04:17 ID:34CL32fK]
ぼでぃいいいいいいいいいいいいいいいいいいいいいいいいず

あいむなっとあにぃいいいいいいいいいまああああああああある!

603 名前:名前は開発中のものです。 mailto:sage [2007/02/03(土) 16:43:24 ID:b0e6Rts8]
いきなりだが俺もちょこっと参加させてくれ。
とりあえずできそうなのからということで
>64の素数をやってみた。つかってるのはHSP3
よろしくお願いします。

screen 0,800.700,,,
font "MS ゴシック",8
a=2
b=2
c=0
repeat
repeat
if a\b = 0{
if a=b {: pos c\26*30,12*(c/26) : mes ""+a+" " :c++ :break}
else :break
}
if a<b :break
b++
loop
a++
b=2
if c=1000 :break
await 1
loop
stop


こんなので、こういうのができるのに自分でもびっくりだった。
本当にあってるかはよくわからんけど。

604 名前:名前は開発中のものです。 mailto:sage [2007/02/03(土) 16:46:30 ID:b0e6Rts8]
と思ったら過疎スレなのか(´д`)

605 名前:製作神 ◆3C/O4odLsY [2007/02/03(土) 16:50:16 ID:z04kCzis]
もっと投下すれば賑わうであろう。

606 名前:名前は開発中のものです。 mailto:sage [2007/02/04(日) 16:07:13 ID:wipOHoKW]
数当てもつくってみたよ。しかしマジでいないなー。

607 名前:名前は開発中のものです。 mailto:sage [2007/02/04(日) 18:12:35 ID:MWYCkzpm]
>>603
偉そうに登場したのによろしくお願いしますで締めてるところにうけた

608 名前:名前は開発中のものです。 mailto:sage [2007/02/05(月) 06:15:29 ID:JxXUp4Vb]
配列変数とやらを使って、+1ずつして割っていく方法から、
でてきた素数を代入して割っていく方法に変えたら、
>603の時より、ループ回数が偉く少なくなった。
でも、他にa+2でやったほうが早そうなんだけど、
それをきれいにはめる方法が良くわからない。
if 構文追加してもいいけど、どっちみち2で割るところまでくれば
変わらないような気もするし。

609 名前:名前は開発中のものです。 mailto:sage [2007/02/05(月) 06:38:57 ID:JxXUp4Vb]
計算方法をちょこっと変えたら、5000万のループ回数が70万に。素数オモスレー




610 名前:名前は開発中のものです。 mailto:sage [2007/02/07(水) 05:50:49 ID:GNKliERn]
む、HSPなんだけどSIN波形というのがよくわからん。
何をどうするのかが。
>107のはうちで動かんし。
考え方からさっぱりだ。

611 名前:名前は開発中のものです。 [2007/02/07(水) 15:20:39 ID:NKLSTYEl]
HSP3.0からsin関数が標準で使えるようになった、だから変数名でsinは使えない

R1=3.1415/180.0;3.1415/180=ラジアン単位で約1度
pos 0, 240
repeat 640
line cnt, 240+(sin(R1*cnt)*240)
loop
stop


612 名前:名前は開発中のものです。 mailto:sage [2007/02/16(金) 00:22:46 ID:qpyJEI/g]
>611
サンキュ
なるほど。line命令とかこういう風に使うのか。
しかもまるまる答えそのものじゃないかー。

613 名前:名前は開発中のものです。 [2007/02/16(金) 02:20:37 ID:ppH9PRcO]
>>612
始点、終点も設定すると、前回の終点を
保存か算出する必要が出てくるからな

614 名前:名前は開発中のものです。 mailto:sage [2007/02/17(土) 06:26:41 ID:x7siGPZt]
課題5の箱を動かすのやってるんだけど、
箱動くことは動くんだけど、
clsでやってるから箱がちらつくんだよね。
ヒント頼む ちなみに今こんな感じ。↓

screen 0,640,480
q=3
repeat
getkey m,37
getkey n,39
getkey o,38
getkey p,40
x=x+q*(n-m)
y=y-q*(o-p)
if fx!x or fy!y :cls
if x>320 :x=320
if x<0 :x=0
if Y>240 :y=240
if y<0 :y=0
color 255, :boxf 0+x,0+y,320+x,240+y
fx=x:fy=y
await 1
loop

615 名前:名前は開発中のものです。 mailto:sage [2007/02/17(土) 12:59:22 ID:zySnsdUf]
clsやめればいいじゃん

616 名前:名前は開発中のものです。 mailto:sage [2007/02/17(土) 13:09:21 ID:AzT6DJgE]
>>614
cls を使わずに、画面のクリアは boxf を使って真っ白に塗りつぶす。

これだけだとまだちらつくから、
画面塗りつぶしと箱描画をする前に redraw で描画モード0を指定する
画面塗りつぶしと箱描画をした後に redraw の描画モード1を指定する

617 名前:名前は開発中のものです。 mailto:sage [2007/02/17(土) 14:52:49 ID:x7siGPZt]
>615
使わないと画面真っ赤になっちゃう。
clsぐらいしかわからないからな。悪いな。

>616
boxfで塗りつぶすというのはたまに見るんだが、
なんだかよくわからんかった。が、それをヒントに、
色々やってみる。アリガトン

618 名前:名前は開発中のものです。 mailto:sage [2007/02/17(土) 17:49:27 ID:x7siGPZt]
これって
redraw 0

redraw 1

〜の部分に描画するものいれておくと
1の時にまとめて表示されてちらつきがなくなるってことで良いのかな。
何でちらつかないのかはいまいちピンと来ないんだけど。

とりあえずclsのところに↓入れて
redraw 0 :color 255,255,255 :boxf 0+fx,0+fy,max_x+fx,max_y+fy

redraw 1
上を最後の方に入れた。
ただ、動きが重くなるんだね。この命令って処理が重いの?

619 名前:名前は開発中のものです。 mailto:sage [2007/02/17(土) 20:25:31 ID:pIqCsBKC]
暇だからやってみた素数。2だけすまんがずるしてる。
これくらいが関数覚えなくてもできるから楽しいな。
もっと早いの考えてみっか。
/*--------------------------------------------------*/
#define MAXN 1000
#include <iostream.h>

int main(){
 int temp[MAXN],k=2,i=0,j,loop=0;
 
 cout<<2<<endl;
 
 while(i<MAXN){
  temp[i]=2;
  for (j=0;j<=i;j++){
   loop++;
   if(k%temp[j]==0) break;  //kがn[j]の倍数ならn[j+1]に飛ばす
   else if(j==i){
    temp[i]=k;
    cout<<temp[i]<<endl;
    i++;
    break;
    }
  }
  k++;
 }
 cout<<loop<<"回ループしやした!"<<endl;
 return 0;
}
/*--------------------------------------------------*/



620 名前:名前は開発中のものです。 mailto:sage [2007/02/18(日) 04:26:14 ID:8TgB3zN2]
>>618
clsより軽いはずだ。

621 名前:名前は開発中のものです。 mailto:sage [2007/02/18(日) 16:42:46 ID:yPmVwvF6]
>620
むー。そうなのかー。でも動き重くなったしなー。
使い方悪いのかなー。

課題6を
丸描いて敵にしてるんだけど、動き方をどうするかで
試行錯誤ちう

622 名前:名前は開発中のものです。 mailto:sage [2007/02/18(日) 21:48:11 ID:Z60cc6BP]
>>621
重いのは await 1 が原因だよ。

623 名前:名前は開発中のものです。 mailto:sage [2007/02/21(水) 04:09:26 ID:XCgw7SD2]
課題6やってるんだけど、
あたり判定がなんか良くわからなくなって、
とりあえずはねかえる様にしようとしたらさらにワケワカラン状態に。orz
考え方が間違ってるのはわかってるんだが、どう間違ってるかが分からない。
ダメだしお願い。

ttp://gamdev.org/up/img/8984.lzh

624 名前:名前は開発中のものです。 mailto:sage [2007/02/21(水) 17:45:56 ID:1pwfm66w]
↓こうじゃない?

★箱
(x,y)
┏━━━━━┓(x+max_x,y)
┃          ┃
┃    ・(x+max_x/2,y+max_y/2)
┃          ┃
┗━━━━━┛(x+max_x,y+max_y)
(x,ymax_y)

★玉
(enemy_x,enemy_y)
┌─────┐(enemy_x+sx,enemy_y)
│          │
│          │
│          │
│          │
└─────┘(enemy_x+sx,enemy_y+sy)
(enemy_x,enemy_y+sy)


★箱の右で衝突
(x,y)
┏━━━━━┓(x+max_x,y)
┃          ┃
┃    ・(x+max_x/2,y+max_y/2)
┃     ┌─────┐
┗━━━┥        │

enemy_xがx+max_x/2〜x+max
enemy_yがy-sx〜y+max_y

625 名前:名前は開発中のものです。 mailto:sage [2007/03/02(金) 09:45:12 ID:RL8xs1BY]
>624
スマン はねかえる様にできたら、そこからぶつかったという仕様にしたかったんだ。
ようやっと、とりあえずはね返るようにはなった。
後ろからあたりに行ったりするとスルーしちゃったりするけど、
大まかにははねかえる様になって、その条件式でちょっと仕様変えてぶつかったという判定にした。
なんか色々とつっかえたなぁ。サイト色々探しちゃったし。

つまると素数プログラムを改善して紛らわせてるんだけど、
数値に制限あるのな。HSP。
まぁ、そこまで素数を下から求めたりしないからいいんだけど、
素数を使って素数を判定するというもの作った時に、数値がめちゃくちゃになって弱った。

626 名前:名前は開発中のものです。 [2007/03/02(金) 16:19:42 ID:xch9HBdf]
>>625
勘違いするなよ?
桁の制限なんてどんな言語でもあるぞw
言うなら32ビット整数型の制限だよ


627 名前:名前は開発中のものです。 mailto:sage [2007/03/02(金) 16:34:53 ID:RL8xs1BY]
>626
そういうものなのか。
もうちょっと桁はいくもんなのかと思ってたけど、
なるほど2^32の半分なわけか。
となると、それを越える数字を使うプログラムははじかれるのか。


まとめサイトに繋がらないんだけど。なんでだろ。


628 名前:名前は開発中のものです。 mailto:sage [2007/03/02(金) 22:24:24 ID:e7ng/jU4]
まとめサイトのping帰ってこない(´・ω・`)ショボーン
自分のソースのバックアップあそこにしかないのにwww

629 名前:名前は開発中のものです。 mailto:sage [2007/03/06(火) 20:19:53 ID:vyl0ltP/]
まとめサイト復活来た。
弾道シミュやるヮ。
課題6はもう大体いいわ。



630 名前:名前は開発中のものです。 mailto:sage [2007/03/06(火) 21:22:00 ID:aM0UjHqH]
そろそろ新しい課題欲しいな

631 名前:名前は開発中のものです。 mailto:sage [2007/03/06(火) 23:13:38 ID:vyl0ltP/]
ボタンを作るみたいな課題とかどうよ。
単に今俺がこれから勉強したいと思ってるからだけど。

そこから、ボタンを押す。押すと押した絵に変わる。
マウスが上に来ると絵が大きくなるとか、枠が出るとか。

もしくはのちのち、何かのジャンルのゲームで頻繁に使いそうなやつ。
セーブロードとかさ。初心者が言うのもあれだけど。


632 名前:名前は開発中のものです。 mailto:sage [2007/03/07(水) 01:08:02 ID:8kjoILVD]
それはゲームのアルゴリズム以前の問題じゃないか?

633 名前:名前は開発中のものです。 mailto:sage [2007/03/07(水) 02:38:11 ID:IIsT9RK1]
表現もできないのにアルゴリズムも何もないとやっていて思ったんだ。
つーかそもそもアルゴリズムってなんだろう?とも思うんだ。

個人的には簡単なのからだんだん難しい課題にという流れと、
課題をやっていくとゲームとかソフトができる。という流れ。
この二つが混ざるとやっていて楽しいんじゃないかと思う。
まぁ基本的に課題は全て難しいのが現状なんだけどねー。

634 名前:名前は開発中のものです。 mailto:sage [2007/03/07(水) 02:53:14 ID:cSD5nU6m]
麻雀の役特定のとか知りたい

635 名前:名前は開発中のものです。 mailto:sage [2007/03/07(水) 18:19:41 ID:IIsT9RK1]
ありゃ、重力加速度をどう表していいか混乱してきた。
そもそも重力加速度がわけわからなくなってきた。

636 名前:名前は開発中のものです。 mailto:sage [2007/03/07(水) 18:58:48 ID:IIsT9RK1]
これじゃただの放物線じゃ。
角度のつけ方が良くわからんな。
ホントに誰もいなくて悲しいヮ。

637 名前:名前は開発中のものです。 mailto:sage [2007/03/08(木) 00:27:41 ID:+aaoahtx]
デフォルメ

638 名前:名前は開発中のものです。 mailto:sage [2007/03/09(金) 20:05:12 ID:A20L9Fnp]
課題8、課題6に付け足してようやっとできた。
次は、課題9は課題7がまだ良くワカンネーから飛ばして、
課題10やる。

センセーカムヒアー プリーズ

639 名前:名前は開発中のものです。 mailto:sage [2007/03/10(土) 19:07:09 ID:/U9PtoGQ]
分かんないことあるならもうちょっと具体的に書いとけば
誰か答えてくれるんじゃないかと



640 名前:名前は開発中のものです。 mailto:sage [2007/03/12(月) 20:09:00 ID:B3YMxCrl]
課題10、とりあえず一つの箱をそれっぽくうごかせた。
これをどう6つにするかだな。とりあえず三つからやってみたいけど、
配列変数つかってcntで三つつくるのができれば、いけるのかな。
弾当たったら消えるって、なんかフラグつくって、
当たったらa=0にして、if a ならその箱表示みたいな感じなんかな。

>639
何よりもほとんど全部といっていいいくらいわかんね。
y方向に落ちていくまではまだわかるような気がするんだけど、
初速がどれだけの速さでも、角度をつけた途端、
どういう計算式にすればいいかが、ピンとわからない。
角度ゼロならまぁ、cnt×速さでいいのかもしれないけど、
角度を少しでもつけると、y方向の部分とのベクトル、
初速分斜めに移動させるので本当に正しいのかすらわからない。

感覚的にはx方向に1、Y方向に1のベクトルだったら(1,1)の方向に
進むようにするってことなんだろうけど、
じゃあそれを全ての状況でどうやって式に表せばいいのか全くわからない。

考え方からしてもうワケワカメなので、
説明したくとも説明できない感じなのだよ。

641 名前:名前は開発中のものです。 mailto:sage [2007/03/13(火) 00:50:38 ID:xhylvjoJ]
真上にボール投げたときのシミュレーションはできる?

642 名前:名前は開発中のものです。 mailto:sage [2007/03/13(火) 00:50:55 ID:e1hpszeA]
ググれば色々出てくると思うが。

643 名前:名前は開発中のものです。 mailto:sage [2007/03/14(水) 14:33:17 ID:vTyf4gtY]
3つを動かせるようになって、
それをコピペして、yの値に+して2×3にしてうごくようにしたけど、
慣れてくるとどうやって動かすように仕組むんだ?
今こんな感じ↓
gamdev.org/up/img/9127.lzh

>641
真上もなんか良くわかんない。
ベクトルが絡まるともう感覚的にわからない。
たてと横だけならなんとなーくわかるんだけど。

>642
ぐぐっても良くわかんない。

ゴメンナ

644 名前:名前は開発中のものです。 mailto:sage [2007/03/14(水) 23:19:25 ID:Ta9QMe4z]
説明めんどくさいのでこれ見て自分で考えてくれ。

g=1;重力加速度
x=0;初期x座標
y=480;初期y座標
vx=10;x方向初期速度
vy=-30;y方向初期速度
repeat 70
x+=vx;速度の分だけ位置を増やす
vy+=g;加速度の分だけ速度を増やす
y+=vy;速度の分だけ位置を増やす
pos x,y
mes "○"
await 20
loop
stop

645 名前:名前は開発中のものです。 mailto:sage [2007/03/16(金) 22:46:24 ID:ObBbH61d]
課題10でけた。こんなんでどうでしょう。
tp://gamdev.org/up/img/9153.lzh

>644
サンキュ。ただ、全く思いつかない。角度とか。


ライフゲーム。面白そうだが、まだなんだか良くわからない。
円形判定もうーん。sinとか使うのだろうか。うーん。詰まった。
まとめサイトでも、ほとんどの人が途中でやめちゃってるのは、
やっぱ詰まったからなんかな。

646 名前:名前は開発中のものです。 mailto:sage [2007/03/17(土) 00:32:33 ID:AFO1L2/D]
ddim angle,0 :ddim angle_rad,0 : ddim speed,0 : ddim g,0 : ddim x,0 : ddim y,0: ddim vx,0 : ddim vy,0
angle=15.0 : speed=5.0 : g=0.1
mes "速さ" : input speed : mes "角度" : input angle
button gosub "発射",*main
stop
*main
x=0.0 : y=400.0
angle_rad=angle*3.14159/180.0;cos,sinの変数はラジアンなのでラジアンに直す
vx=cos(angle_rad)*speed;x方向初期速度=速さ×cos(角度)
vy=-sin(angle_rad)*speed;y方向初期速度=速さ×sin(角度)、また上向きが正なので×-1
repeat 1000
pos x,y : mes "○"
x+=vx : vy+=g : y+=vy
await 20
loop
return

647 名前:名前は開発中のものです。 mailto:sage [2007/03/17(土) 00:40:55 ID:AFO1L2/D]
全部実数型にする必要なかったかな。まあいいや。
角度が分からんと言うのがよく分からんがこれいじったりしてまた考えてくれ。

>課題10
おお。ええんじゃないの。ゲームになってるね。

>ライフゲーム
は意外と簡単だった思う

>円形判定
は円の方程式x^2+y^2=r^2を使うんじゃないかと。

>まとめサイトでも、ほとんどの人が途中でやめちゃってるのは、
>やっぱ詰まったからなんかな。
詰まったからというか、詰まらなくなったからというか。
いろんな原因で作りたいと思う気持ちがなくなってっちゃうんでしょうね。

648 名前:名前は開発中のものです。 mailto:sage [2007/03/18(日) 10:07:48 ID:lgnZfCsC]
つ リージョン

649 名前:名前は開発中のものです。 mailto:sage [2007/03/19(月) 04:09:59 ID:KNd9OD8J]
ttp://gamdev.org/up/img/9164.lzh
こんなんで良ければライフゲムでけた。

>646
そう多分俺が知りたかったのはこのcos,sinを使い方なんだと思う。
単純にx分にY分を足しただけならいいんだけど、
初速のベクトルに角度をつけるにはどうすれば良いのかや、
角度をつけた場合にベクトルからどうやってy分を足し引きすれば良いかが、
よくわからなかった。
↓のベクトルがあって\(斜め)のベクトルがあって
その二つを足したものを表示するということが。
まだ理解が不十分だけど、参考になった。トン。

>647
ライフゲーム、確かにプログラム的には意外と簡単なのかも。
でも、やたら長い条件式で、カンマがピリオドになってたりでエラー原因がわからず、
そして、elseの使い方がまだいまいちであるために、想定どおり動かなかったりと、
頭をかきまくった。でも、なんか面白いね。眺めてて面白い。

あと、その円の方程式はどっかで見たような式だ・・・。いつ見た、おれ。
これをどう使うのかはまだピンと来ない。もう少し考えてみる。

まぁどのみちこういう課題がちょちょいとできるようになったら、
このスレ卒業なんだろうね。早く卒業したいものだ(´・ω・`)



650 名前:名前は開発中のものです。 mailto:sage [2007/03/19(月) 22:56:11 ID:+J8qMsT3]
おーライフゲームできてるやん。すごいすごい。

>カンマがピリオドになってたり
あるあるw

651 名前:名前は開発中のものです。 mailto:sage [2007/03/21(水) 18:59:56 ID:dTeu4lZk]
円のあたり判定できたよー。
一応、4方向分条件付けをした。
でも弾が1ドットなら、条件は一つ分で十分だよね?


エッジ加工?ってなんかよくわからん。
ソフトも。
モザイクって、ぱっと思いつくのは例えばその部分の色情報を取得して、
その色で、ある大きさの箱を描くのを何回かやるって感じになるのかな。
まず絵を調達しなきゃだゎ。

652 名前:名前は開発中のものです。 mailto:sage [2007/03/22(木) 00:11:37 ID:wB5CUOCW]
>円のあたり判定できたよー。
オメデトン。ペース速いね。

>一応、4方向分条件付けをした。
>でも弾が1ドットなら、条件は一つ分で十分だよね?
えっと、すまん。4方向ってのがどういうことなのか分からぬのだが。

>エッジ加工?ってなんかよくわからん。
俺もよく知らないけど輪郭抽出でぐぐるといろいろ出てくるみたい。
>ソフトも。
ソフトは俺もまったく分からん。
画像処理の課題はゲーム製作とはちょっと関係が薄い気がする。
>モザイク
四角ごとに仕切って色の平均をとって塗りつぶすみたい。

653 名前:名前は開発中のものです。 mailto:sage [2007/03/22(木) 05:03:52 ID:LPymi19I]
>652
>えっと、すまん。4方向ってのがどういうことなのか分からぬのだが。
俺のは○が動くんだけど、弾と自分が動かしてる四角には幅があるから、
○の右上下、左上下で当たる時の条件付けがちょっと変わるはずと。

>四角ごとに仕切って色の平均をとって塗りつぶすみたい
・・・・。どうやんだろ。まだ、やったことない領域だから、
どの命令を使うかきちんと把握しなきゃだめそうだ。


654 名前:名前は開発中のものです。 mailto:sage [2007/03/23(金) 01:18:56 ID:GKwkgx4A]
なるほど。自機が○で弾は点かと思ってた。自機四角か。

画像処理はあんまり詳しくないので
他の先生の登場を待ってください。ごめんなさいね。

655 名前:名前は開発中のものです。 mailto:sage [2007/04/04(水) 09:47:03 ID:BbjO+U02]
javaでslg作りたいキチガイです。
課題1
gamdev.org/up/img/9260.zip
buttonとかlayoutとかさっぱり…疲れた

656 名前:名前は開発中のものです。 mailto:sage [2007/04/04(水) 09:56:18 ID:BbjO+U02]
>>655
0〜9までの数になってたorz
修正
gamdev.org/up/img/9261.zip


657 名前:名前は開発中のものです。 mailto:sage [2007/04/05(木) 03:22:08 ID:juxaiBkl]
HSPを勉強中なので、素数問題に挑戦してみた。
素数の出し方がよくわからないから総当り&最初いんちき。

screen 0,450,400 : font "MS ゴシック",12 : objmode 2
so = "" : max = 10000 : maxs = 1000 : a = 2
mesbox so,450,320
pos 12,333 : mes "try" : pos 50,330 : input max,100,20,5
pos 220,330 : button gosub "start",*gogo
pos 12,358 : mes "get" : pos 50,355 : input maxs,100,20,5
stop
*gogo
if btn : a = max + 1 : btn = 0 : return
sdim so,max*4
objprm 2,"stop" : objprm 0,so : btn = 1 : so = "" : a = 2 : s = 0 : d = 0 : len = 0
repeat max
repeat a,1
c = a\cnt : if c = 0 : s++ : if s > 2 : break
loop
if s < 3{
d++ : sa = strf("%5d",a)
poke so,len,sa : len += strsize
if d \ 10 = 0{
poke so,len,"\n" : len += strsize
title "" + cnt
}else{ poke so,len,", " : len += strsize }
}
s = 0 : a++ : if (a > max) or (d >= maxs) : break
wait 0
loop
objprm 0,so : objprm 2,"start" : btn = 0 : title " get = " + d
return


658 名前:名前は開発中のものです。 mailto:sage [2007/04/05(木) 09:48:52 ID:F5eNq3r+]
同じHsp初心者なはずなのに、なにがどうなってるのか解読できん。
俺の素数プログラムは偉くシンプルなのにな。
こういう見やすい感じのつくれるようになりたいけど、さっぱりなんだよな。
最近はやる気起きないし。

659 名前:名前は開発中のものです。 mailto:sage [2007/04/07(土) 15:27:26 ID:7tS8COUW]
gamdev.org/up/img/9276.zip
Delphiで数当て作りました



660 名前:名前は開発中のものです。 mailto:sage [2007/04/11(水) 23:27:29 ID:hGtX8W0q]
課題の1〜11までやったんで段階的学習に移ろうと思うんだが

15
インベーダー
テトリス
ブロックくずし
オセロ
ぷよぷよ
パックマン
マリオ
ギャラガ

この順番でおk?

661 名前:名前は開発中のものです。 mailto:sage [2007/04/13(金) 03:50:36 ID:DE3aw73g]
最終的に何が作りたいかにもよるけど、だいだいOK

662 名前:名前は開発中のものです。 mailto:sage [2007/04/13(金) 07:00:29 ID:ePt0UiZ0]
>>661thanks!
申し遅れました>>655です
javaでSLG作ろうと思ってるdqnです

以前に、基本だけ勉強してSLG作成に突撃したことがあるんだけど、
クラス数が多くなって管理しきれなくなって玉砕w

あせらず、ゲーム作りってのを学んで、それから再挑戦するつもり
じゃあ15から行ってくるノシ

663 名前:名前は開発中のものです。 [2007/04/13(金) 07:11:48 ID:HSdmSo3i]


664 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 20:45:16 ID:/fPrY/bJ]
>>660
テトリスとブロックくずしは逆でもいいかもな
って遅いか

665 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 22:21:11 ID:XmVefahd]
俺もDXライブラリ使って660に書いてある
課題やってみるかな。

666 名前:名前は開発中のものです。 mailto:sage [2007/04/16(月) 18:38:23 ID:DHmGTth8]
>>664
遅くない
テトリスで詰まってるorz
下、左右への移動可能判定ワケワカメ
レスサンクス

気分転換にブロック崩しから先にやってみるノシ

667 名前:名前は開発中のものです。 mailto:sage [2007/04/17(火) 03:31:39 ID:xnJXx47A]
移動先にブロックや壁があるかどうか、だと駄目なのか?

668 名前:名前は開発中のものです。 [2007/04/17(火) 20:27:52 ID:DgPcYp5y]
僕はテトリスの方が簡単だと思いますが、どうだろうか。

669 名前:名前は開発中のものです。 mailto:sage [2007/04/18(水) 06:25:53 ID:H53kNm7B]
一番簡単なのはRPGだったりするけどなw




670 名前:名前は開発中のものです。 mailto:sage [2007/04/18(水) 12:42:11 ID:4KCSkIQC]
fcのdqは何とかなりそうだけど
sfcのffとかrsとか死にそう

671 名前:名前は開発中のものです。 mailto:sage [2007/04/18(水) 22:32:17 ID:v99y4oaM]
フラグ管理だけじゃねーの?

672 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 08:29:12 ID:3lC0Cy6I]
>>670
まぁ、ドラクエタイプのRPGは典型的な小中学生向けプログラムだね。
むかーし昔、80年代のパソコン少年たちはまずドラクエもどきを作って遊んだものだ。


673 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 08:35:34 ID:wm8Zzz6B]
シューティングはゲームプログラムの基礎がいっぱい詰まってるぞ

674 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 04:29:18 ID:4gr+tzZx]
マインスイーパもいいよ
サンプルは誰でも持ってるし、イベントドリブン型のアプリ設計とか
再帰を使ったアルゴリズムとかもあるし、初心者の実力アップにはいい教材。
queueを使って再帰をやめるとどうなるか、とか凝りだしたらおもしろい。

>>672
俺も昔、N**-BASICで、IFとGOTOだけでアドベンチャーゲーム作った事がある。
紙とペンでフラグ管理をちゃんとして、あとは移動と戦闘を作れば
dqタイプは楽かもね。

675 名前:名前は開発中のものです。 mailto:sage [2007/05/05(土) 17:14:02 ID:D2oIcwh+]
>>667
亀だが…
左に移動するときならブロックの左端と、既に固定されたブロックや壁との衝突判定を行おうとしていた
その左端をどう導出したらいいのかで詰まってた

4x4のブロックのフィールド全部で判定すればいいんだねーorz
アホでした。
今はオセロに挑戦中…

676 名前:名前は開発中のものです。 mailto:sage [2007/06/20(水) 13:42:19 ID:8K3dmP9x]
オセロ難しくはないがめんどい

677 名前:名前は開発中のものです。 mailto:sage [2007/07/12(木) 19:01:47 ID:BNvwAZPq]
wikiの段階的学習をやろうと思うんだけど
ゴリゴリ作って晒すのはこのスレでおk?

678 名前:名前は開発中のものです。 [2007/07/12(木) 19:02:55 ID:kvp3cKLa]
晒しage

679 名前:名前は開発中のものです。 mailto:sage [2007/07/24(火) 02:22:27 ID:sikuFIAE]
>>677
おk



680 名前:名前は開発中のものです。 mailto:age [2007/07/27(金) 00:08:19 ID:CWSFY+9/]
横スクロールのアクションゲームを作れるようになるには
どれくらいかかる?

681 名前:名前は開発中のものです。 mailto:sage [2007/07/27(金) 00:12:36 ID:Zd3sdNnp]
今どれくらい出来るかにもよるよ。
1週間あればとりあえずシステムだけなら出来ると思う。

682 名前:名前は開発中のものです。 mailto:sage [2007/07/27(金) 00:55:18 ID:1ly+L1dQ]
早い段階で作れるようになる

683 名前:名前は開発中のものです。 mailto:sage [2007/07/28(土) 13:23:39 ID:PcfzSmjm]
画面出入力
キー入力
ファイル読み書き
演算
これを(どれか一つもしくは複数)満たすように簡単なお題を出していけば、基本何でも作れそうだが

684 名前:名前は開発中のものです。 mailto:sage [2007/07/28(土) 21:16:20 ID:VUtYyNMw]
もっと整理してみた

画面表示(キャラと背景)
入力(キーかマウス)
演算(当たり判定)

ファイル読み書きは少し後でいいんでない?

685 名前:683 mailto:sage [2007/07/28(土) 21:40:46 ID:UeZm28Yq]
上の講義のサンプル見ると、テトリスの得点を保存させるとか、オセロの盤面を保存させるとか
ちょっとした事だけでも分かると夢が膨らむかなぁと思って。
直ぐに必要になるものでもないから後でもいいね

686 名前:名前は開発中のものです。 mailto:sage [2007/07/30(月) 11:28:11 ID:6LwwN6qr]
夢がひろがりんぐ


すたれたなこれも・・・

687 名前:名前は開発中のものです。 mailto:sage [2007/07/31(火) 02:25:43 ID:DUqyrB+j]
ぷよぷよはくっつきまで表示できるようになれば合格かなぁ

688 名前:名前は開発中のものです。 mailto:sage [2007/07/31(火) 14:07:18 ID:OcT/rTQJ]
ぷよの場合は、何個くっついてるか?の判定ができれば合格じゃね?

689 名前:名前は開発中のものです。 mailto:sage [2007/08/22(水) 21:17:36 ID:ZVS3wfyE]
はっきり言ってくっつくとかさっぱり分からないまま放置。
ライフゲームまではやったんだがなぁ。



690 名前:名前は開発中のものです。 mailto:sage [2007/11/26(月) 00:11:38 ID:0u+2SUoR]
過疎ってるので使わせてもらおうかな・・。
とりあえず
gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D
段階的学習!

を参考にしてテトリスを作ってみようかと思います。

691 名前:名前は開発中のものです。 mailto:sage [2008/03/31(月) 01:57:42 ID:gUB5EALr]
プログラミングの知識ほぼゼロですがC言語に挑戦してみようと思います。
690の「段階的学習!」のコメント欄によると
>一番の最初には数当てゲーム。その次にマスターマインドとか。この辺から始めないとな -- 2005-11-25 (金) 02:10:27
とあるので、まず数当てゲームの作成に取り組んでみます。


692 名前:名前は開発中のものです。 [2008/03/31(月) 06:10:02 ID:6Xmv80aV]
雑魚晒しage

693 名前:名前は開発中のものです。 [2008/04/06(日) 03:23:16 ID:3FIXnopP]
>>691じゃないけど数当てゲーム作った
scnafで%cを使うと無限ループになるけどなんで?
//数当てゲーム
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int gameover = 0;
    int seikai = 0;
    int kaitou = 0;
    char replay = 'y';
    char buf[2];

    while(replay=='y')
    {
        printf("1-9の数を直感で当てます。\n");
    
        seikai = rand() % 9 + 1;
        while(kaitou != seikai)
        {
            printf("1-9の値を入力して[ENTER]を入力:");
            scanf("%d", &kaitou);
        }
        printf("正解です!!\nもう一度プレイしますか?[y/n]\n");
        scanf("%s", &buf);
        replay=buf[0];
    }

    return 0;
}


694 名前:名前は開発中のものです。 mailto:sage [2008/04/06(日) 04:47:09 ID:6iQTQxIz]
>>693
とりあえず、

・srand()を使わないと答えのパターンが毎回同じになること
・rand()のような線形合同法が用いられている(と推測できる)関数の
 返り値の余りを採るやり方は、数値が偏りやすくなる可能性があること

を覚えるべき。2番目はわからなければ今は無視してもいいけど
1番目だけは絶対に理解しておくべき。

695 名前:名前は開発中のものです。 mailto:sage [2008/04/06(日) 05:32:21 ID:pZ63dDRm]
%cで1〜9を入力すると数字の'1'(0x30)〜'9'(0x39)になる。
%dで1〜9を入力すると数値の1(0x0)〜9(0x9)になる。
この場合欲しいのは数値なので%dで正解だと思う。

696 名前:名前は開発中のものです。 mailto:sage [2008/04/12(土) 16:41:42 ID:wUyPJZn0]
>数値が偏りやすくなる可能性があること
気になったので実験。
下記プログラムにて偏りを目視で確認してみた。
(実行結果:gamdev.org/up/img/11312.phps

67と68を境に出現頻度が変わってる。

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

int main()
{
    long int hit[100]={0};
    long int i;

    srand((unsigned)time(NULL));

    for (i=0 ; i<1000000000 ; i++)
    {
        hit[rand()%100]++;
    }

    for (i=0 ; i<100 ; i++)
    {
        printf("%d\t%d\n", i, hit[i]);
    }

    return 0;
}


697 名前:名前は開発中のものです。 mailto:sage [2008/04/12(土) 16:46:13 ID:u1ebOeKL]
>>696
(整数演算で)「乱数範囲÷100×100」以上は再試行しないと…

698 名前:名前は開発中のものです。 mailto:sage [2008/04/12(土) 16:56:10 ID:wUyPJZn0]
仮説をたててみた

乱数の元になる数が0-9の10種類で出現する可能性は同じ

  乱数の元:0 1 2 3 4 5 6 7 8 9

0〜2の乱数出力時の式

  式:rand() % 3

乱数の元から0〜9が1回ずつ登場した場合

  出力数:乱数の元

    0 : 0 3 6 9
    1 : 1 4 7
    2 : 2 5 8

だから、>>696の実行結果はある値を境に出力頻度が変わった

これで正解?ちょっとググってくる

>>697
「乱数範囲÷100×100」って「乱数範囲」では?
乱数範囲%100を100セットってことかな

699 名前:名前は開発中のものです。 mailto:sage [2008/04/12(土) 17:04:10 ID:u1ebOeKL]
例えば乱数範囲が0〜65535なら
65535÷100×100=65500になる。
65500〜65535は%100すると
結果のバラツキに繋がるので捨てるのが基本。



700 名前:名前は開発中のものです。 mailto:sage [2008/04/12(土) 17:37:14 ID:VRvbtz8m]
乱数範囲による偏りに加えて、
線形合同法による乱数の下位nビットの周期が
高々2^nという点にも気をつけないといけない。
つまり、下位1ビットの周期は高々2^1 = 2。
偶数しか生成しないか、奇数しか生成しないか、
偶数と奇数が交互に生成されるかの3パターンしかない。
よって、線形合同法による疑似乱数生成関数randでサイコロを作ろうとして
rand()%6+1とかやっちゃうと、2人で遊んだ時に
片方のプレイヤーが偶数の目だけ、もう片方が奇数だけという状況が生まれる
(これをやっちゃった有名な例がカルドセプトサーガ)。

今でもCのrand関数は線形合同法のような形で実装されていることが多いけど、
下位kビットを捨て、k+1ビット目からを1ビット目と見なすことで
周期性の問題を解決しているものもある。

701 名前:名前は開発中のものです。 mailto:sage [2008/04/17(木) 23:00:01 ID:xfcPWlW/]
1〜100までの数が書かれた玉が1個ずつ入った箱から、玉を取り出す場合は、どの数が出てくる確率も同じだけど、
1〜100までの数が書かれた玉が1個ずつ入っていて、さらに1〜10の玉を箱の中に追加したら確率が変わる。
そういうことだな。
で、余分に入れちゃった1〜10を取り除く処理が必要というわけだ。

  rand()から得られる乱数範囲 : 0〜65535
  取得したい乱数範囲      : 0〜99

の場合、0〜99が同じ確率で得られるように

  65535 - (65535 % 100) = 65500

を超えた部分は捨てる

つまり、rand()の戻り値が65500より大きかった場合は、無効な範囲から取得したとして
rand()による乱数取得をもう一度やりなおす。

プログラムの流れをまとめてみた
  1. rand()を実行
  2. もし、rand()の戻り値が65500より大きいなら1.へもどる
  3. rand()の戻り値を100で割った余りを得る
  4. おわり

702 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 08:04:37 ID:PZn8j6Ch]
新Gamedevできたのでかきかき

TopPage - game-develop.com wiki
wiki.game-develop.com/

GameDevWikiを何とかするスレ
pc11.2ch.net/test/read.cgi/gamedev/1156117275/

703 名前:名前は開発中のものです。 [2008/06/14(土) 23:31:21 ID:nnavq8hB]
数当てゲームはこんなので良いですかね

1.ウィンドウを表示する
2.ランダムに1〜10までの数字を一つ表示する
3.数字を入力して、その数字を表示する
4.2の数字と3の数字を比べて、入力された数よりも大きかったらBig
小さかったらSmallと表示させる
5.3と4を3回繰り返させる
もし正解したらそこでゲームを終わりにする

704 名前:名前は開発中のものです。 mailto:sage [2008/11/06(木) 02:05:29 ID:5LSMjBOf]
>>702
間違っています。
以上。
↓次の方どうぞ

705 名前:名前は開発中のものです。 mailto:sage [2008/11/06(木) 23:24:20 ID:oz8drcUW]
はい、次の人です。
お前の安価が間違ってるぞ、と。

706 名前:名前は開発中のものです。 mailto:sage [2008/11/24(月) 20:57:35 ID:qPCWYPAF]
過疎ってるけれどお邪魔しますよっと
いきなりパックマン作ろうと思って挫折したので、
一からこちらで勉強しにきました
数当てゲームから挑戦していきたいと思います

707 名前:706 ◆Jg2hMRjtc. mailto:sage [2008/11/24(月) 21:26:57 ID:qPCWYPAF]
1.数当てゲーム 
Level1 ウィンドウを表示する
ttp://www.geocities.jp/shobo_dankaiteki/


708 名前:706 ◆Jg2hMRjtc. mailto:sage [2008/11/24(月) 21:55:12 ID:qPCWYPAF]
1.数当てゲーム 
Level2 ランダムに1〜10までの数字を一つ発生させ、表示する
ttp://www.geocities.jp/shobo_dankaiteki/

709 名前:706 ◆Jg2hMRjtc. mailto:sage [2008/11/25(火) 21:39:13 ID:GdvnSEyE]
1.数当てゲーム 
level3 数字を入力して、その数字を表示する
ttp://www.geocities.jp/shobo_dankaiteki/




710 名前:706 ◆Jg2hMRjtc. mailto:sage [2008/11/26(水) 21:45:19 ID:Wb2d5d5f]
1.数当てゲーム 
Level4 Level2の数字とLevel3の数字を比べて入力された数よりも大きかったらBig。小さかったらSmall。同じならHitと表示させる。
ttp://www.geocities.jp/shobo_dankaiteki/


711 名前:名前は開発中のものです。 [2009/01/05(月) 19:13:02 ID:F8IEg8lA]
int main()
{
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH|GLUT_ALPHA);
glutInitWindowSize(800,600);
glutInitWindowPosition(0,0);
glutCreateWindow("ロボット");
init();
glutReshapeFunc(reshape);
glutKeyboardFunc(key_press);
glutDisplayFunc(draw);
glutMainLoop();
return 0;
}

712 名前:名前は開発中のものです。 [2009/01/06(火) 21:32:51 ID:c5JPjzC/]
いまから参加したいけど何すればいい?

713 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 21:59:13 ID:364hVwSo]
>>712
現在地も目的地もわからなければ道案内はできない
とりあえずプログラミング暦(スクリプト、ツールを含む)と最終的な目的(RPGが作りたいとか
Cをマスターしたいとか)を書いてくれ


714 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 23:29:33 ID:UozvWyya]
基礎からと言うならまずは英語かな。
英語を読むことができれば海外の情報をゲットできるよ。

これとか教材にすると面白いかも。
wiki.gamedev.net/index.php/Tools:Programming


715 名前:名前は開発中のものです。 [2009/01/14(水) 00:58:33 ID:uviUrAzN]
自分の位置をみつける目安は?

716 名前:名前は開発中のものです。 mailto:sage [2009/01/14(水) 01:16:39 ID:yw67XO87]
プログラミングスキル:
Lv.1 テトリス
Lv.2 インベーダー
Lv.3 グラディウス

グラフィックスキル:
Lv.1 デッサン一年目
Lv.2 デッサン二年目
Lv.3 デッサン三年目

サウンドスキル:
Lv.1 MP3/OGGのエンコード方法がわかる
Lv.2 DTMがわかる/楽器を演奏できる
Lv.3 オリジナルアルバムをリリースする

ライタースキル:
Lv.1 10000文字以上の作品を書いて公開したことがある
Lv.2 100000文字以上の作品を書いて公開したことがある
Lv.3 1000000文字以上の作品を書いて公開したことがある

PMスキル:
Lv.1 2chで企画を出したことがある
Lv.2 2chで出した企画に肯定的なレスが3つ以上つく
Lv.3 2chで出した企画が成功する

センス:
Lv.1 ぐにゃぐにゃ
Lv.2 へろへろ
Lv.3 ぴきーん


717 名前:名前は開発中のものです。 mailto:sage [2009/01/14(水) 03:18:01 ID:7SW263aP]
テトリスとインベーダーなら難易度はほぼ同じで
どちらかというとテトリスのほうが難しい
シューティングで並べるなら
Lv1インベーダ
Lv2ギャラガ
Lv3グラディウス

718 名前:名前は開発中のものです。 mailto:sage [2009/01/14(水) 22:36:11 ID:GiBTcIUW]
プログラムスキルCUI編
Lv.0 Hello,World(環境設定、表示)
Lv.1 四則算(入力、変数)
Lv.2 Big & Small(乱数、制御文)
Lv.3 石取り(関数,AI)
Lv.4 Hit & Brow(配列)
Lv.5 タイピング(タイマー,ファイル読込)
Lv.6 クイズ(データ構造,文字列操作,構造体)
Lv.7 しりとり(ファイル読書込,検索,クラス)
Lv.8 ノベル(これまでのまとめ)
Lv.9 アドベンチャー、育成シミュ、経営シミュ(それぞれのアルゴリズム)
Lv.99 ローグ風RPG

719 名前:名前は開発中のものです。 mailto:sage [2009/01/14(水) 23:15:49 ID:GiBTcIUW]
プログラムスキルWindow編共通
Lv.0 Window表示
Lv.1 パラパラアニメ(画像表示,タイマー)
Lv.2 もぐら叩き(マウス入力,点の当たり判定)
Lv.3 1画面STG、ドットイート(キー入力、当たり判定)
インベーダーは3.5くらい

パズル(+落ちもの)
Lv.1 スライドパズル(配列)
Lv.2 ブロック崩し(反射)
Lv.3 テトリス(回転)
Lv.4 ぷよぷよ、さめがめ、マインスイーパー(シードフィル)
Lv.5 Qix(マスクなどの画像処理)

アクションシューティング
Lv.1 スクロールSTG(スクロール)
Lv.2 横スクロールアクション(重力)
Lv.3 ベルトスクロール(奥行きつき当たり判定)
Lv.4 格闘(キー履歴)

RPG他
Lv.1 ノベル(メッセージ)
Lv.2 アドベンチャー(メニュー)
Lv.3 ドラクエ風RPG、シミュレーションRPG(2Dマップ)
Lv.4 アクションRPG(アクション)、クオータービューRPG(擬似3D)

ちなみにどれもネットワーク対応や3Dにするとレベルが上がる




720 名前:名前は開発中のものです。 mailto:sage [2009/02/14(土) 21:54:59 ID:O8g6aplU]
数当てゲーム完成
次15パズル挑戦してみたいと思います
level5
ttp://www.geocities.jp/shobo_dankaiteki/

721 名前:名前は開発中のものです。 mailto:sage [2009/02/14(土) 23:13:09 ID:O8g6aplU]
15パズル level2
ttp://www.geocities.jp/shobo_dankaiteki/

722 名前:名前は開発中のものです。 mailto:sage [2009/02/15(日) 10:57:23 ID:TTfM6L/J]
>>720
頑張ってるなあと賞賛しつつ、DXライブラリの挙動を理解してないなあという感想。
テキストの表示がおかしいとか感じないのかな?

そこは譲っても、正解してしまったときの処理がやばい。
DxLib_Endで開放してから正解の表示、これがどこで処理されるのか不定。
さらにここでループ抜けないので事態は悪化。
終了時にDxLib_Endで再解放・多重開放してしまうは致命的。
少なくとも、DxLib_Endはプログラムの最後にひとつだけ書くようにしたほうがいい。


15パズルはソース無いんで何もいえないけど、何ひとつできてない。
終了してウインドウが消えてから、ちらっと@って表示されてるあたり、
また根本的なとこでやらかしてる予想。

723 名前:名前は開発中のものです。 mailto:sage [2009/02/15(日) 11:23:10 ID:TTfM6L/J]
ちょっと試してみたけど、DxLib_End();の時点でアプリ終了するのな。
exit(0);とかabort();の感覚で使える。開放忘れの80倍はマシだけど、それはそれで怖い。

724 名前:名前は開発中のものです。 mailto:sage [2009/02/15(日) 12:57:16 ID:Wi9+QSGh]
>>722
アドバイスありがとうございます。

・数当てゲーム(レベル5について)

>そこは譲っても、正解してしまったときの処理がやばい。
>DxLib_Endで開放してから正解の表示
今見直してみたら、おっしゃる通りでした。
正解の表示を行った後ループを抜けるよう修正してみました。

ただ、
>DXライブラリの挙動を理解してないなあという感想。
>テキストの表示がおかしいとか感じないのかな?
ここの部分がまだ理解できません・・。
もしまだこのスレ見てらっしゃったら
ヒントいただけないでしょうか?

geocitiesに上手くアップロードできないので
うpろだお借りしました
修正した数当てゲーム(レベル5)です
www3.uploda.org/uporg2018927.lzh.html

725 名前:名前は開発中のものです。 mailto:sage [2009/02/15(日) 13:05:33 ID:Wi9+QSGh]
www.uploda.org/uporg2018937.lzh.html
15パズル(レベル2)ソース添付

今のところ画像表示命令を入れただけになってます


726 名前:名前は開発中のものです。 mailto:sage [2009/02/15(日) 14:00:58 ID:TTfM6L/J]
みなぎってきたんで15パズル作ってみた。
1時間ほど昼飯と息抜きしてたんで、2時間でLevel4あたり。
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0388zip.html
ひとのこと言えるようなソースじゃないね。今んとこ行き当たりばったりラジバンダリ。


DXライブラリの挙動関連は、まあ次でつまずくからいいや。
軽く直してやろうと思ったけど、ほとんど作り直しになったんで断念したw
ここを修正すればいいって話にもっていけなかった。
本サイトのサンプルプログラム「6.サウンドノベル風文字列描画基本」を参考に。

基本的に、画面が書き換わるたびに毎回すべて書き直さないといけない。
弾幕シューで何万の弾が飛び交ってても。
現状、コンソールアプリのように書きっぱなしで次に行ったらダメ。

727 名前:名前は開発中のものです。 mailto:sage [2009/02/15(日) 14:29:16 ID:5+NnQ4mO]
ttp://www.vipper.org/vip1110939.zip.html
数あて製作完了
プログラミングよりVBの基本操作でつまずいてるorz

次は15パズルに挑戦!

728 名前:726 - 15パズル mailto:sage [2009/02/15(日) 16:46:43 ID:3hrBr0KU]
とりあえずLv7完成。5時間弱。
ttp://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0389zip.html

やっぱ、5時までかかるか。
変なバグというか仕様上の勘違いでけっこう時間取られてしまった。
気分というか、やりたいように組んだのでソースは汚い。
DrawScene関数の中でマウス入力から移動判定まで、ぜんぶ処理してしまってる。
それも悪いけど、もっとひどいのがチップの配列。
2次元なら最初から2次元で作っておけばごちゃごちゃ計算しなくて済んだのに。

729 名前:名前は開発中のものです。 mailto:sage [2009/02/16(月) 00:22:49 ID:scWh6dm3]
私の持っている参考書の15パズルで最初にシャッフルするときに
ランダムに2点選んでスワップしてんたんだけど、
この方法でシャッフルしても元に戻せることは数学的に
証明されてるんだろうか
一次元ではできない、三次元(の中の平面)ではできることが明らかだけど



730 名前:名前は開発中のものです。 mailto:sage [2009/02/16(月) 22:53:58 ID:eQix4yBB]
偶数回スワップなら戻せることが証明されてる。
奇数回スワップなら不可能が証明されてる。

731 名前:名前は開発中のものです。 mailto:sage [2009/02/16(月) 23:46:10 ID:iZVk2yZd]
>>730
ありがとん
奇数か偶数で分かれるのか
理由はわからないけど何か納得、裏の裏は表みたいな

732 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 00:54:42 ID:0TvnpHf0]
>>730
そーなんだ・・。
じゃあ最初のシャッフルは出鱈目じゃまずいんだね
俺は729さんじゃないけど勉強になりました。
ありがとう

733 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 13:42:59 ID:/aLJ4H12]
enumどこに書くかで迷う
どこかに一括して書くと楽だけど、そうするとカプセル化としては駄目なんじゃないかとか
ホントくだらないけど迷う

734 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 18:57:53 ID:yXaEW/E5]
alpha.cpp

enum HOGE
{
  hoge,
  hogeo,
  hogeko,
  hogerou,
  hogesuke,
};


beta.cpp

enum HOGE;

735 名前:VC++EEで ◆0XGXXnqf/2 mailto:sage [2009/03/10(火) 23:39:06 ID:TE+yeSUg]
2月下旬頃にC++入門書購入して読んでるところです
参戦いいですか?
まずは1-9の数当てゲーム作りまっす!しかしポインタが理解できん・・orz

736 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 00:42:20 ID:jT1zwAC2]
とりあえず数当てにポインタはいらんとおもうよ

737 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 18:33:22 ID:jSDTnQKl]
お前のパソコンだってメモリーくらい積んでるだろ?
そのメモリー上のアドレス(番地)を格納するのがポインター。
アドレスによってメモリー上に格納されている値などを参照できる。

実際にOSがゴニョゴニョやってるので、
本当にメモリーを差しているかは微妙だが、考えたら負けです。

738 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 20:00:12 ID:vkDtC1BV]
>>737
そこは微妙とかじゃなくて、指してないことにしとけばおk。(PC限定)


739 名前:VC++EEで ◆0XGXXnqf/2 mailto:sage [2009/03/12(木) 01:07:17 ID:f0fJeXBE]
ようやく完成。無駄に長いけど、大目に見てくださいw 改行が多いって怒られるので詰めてます
ポインタ使いませんでした。変数に値が入るっててのはわかるけど、アドレスがってのがイマイチわかりづらいなぁと。
*pointer で代入されてるアドレスに保存されている内容、 &pointer でポインタ変数そのもののアドレス、pointer 代入されてるアドレス、ってわかりづらい入門本のサンプルみても一見何してるか考えてしまう

#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main(){
int answer, data;
srand( (unsigned int)time(NULL) ); // 初期化
answer = rand() % 9 + 1; // 当てる数字の決定
cout << "数当てゲーム!" << endl << "1から9であなたのモノをいれて・・" << endl;
while(1){
cout << "数字: " << flush;
cin >> data;
if( !cin ){
cout << "それ、数字じゃないわ。" << endl << "アタシ、数字しか興味ないの。" << endl;
cin.clear(); cin.ignore(100,'\n'); continue;
}
if( data == answer ){
cout << "アタリ―――(゚∀゚)―――!!" << endl; break;
}else if( data < answer ){
cout << "あなたの入れたモノ、小さいのね。もうちょっと大きかったら・・" << endl;
}else{
cout << "あなた入れたモノ大きすぎて受け入れられないわ" << endl;
}
}
}



740 名前:名前は開発中のものです。 mailto:sage [2009/03/30(月) 22:02:27 ID:uQRoXSES]
ゲームを作れるようになりたい!
とりあえず「はじめてのC」って本を買ってこればいいですか

741 名前:740 mailto:sage [2009/04/17(金) 11:32:48 ID:yzLB2E4x]
「はじめてのC++」って本をとりあえず買ってきました
プログラミングをするにはコンパイラ?ってのがまず必要なんですね

次はttp://www.kumei.jp/c_lang/
にいってきます

742 名前:名前は開発中のものです。 mailto:sage [2009/04/19(日) 21:56:37 ID:ogfSXXfS]
頑張れー
俺はこことかみてる
vipprog.net/wiki/


743 名前:740 mailto:sage [2009/04/20(月) 18:40:27 ID:PoHKsmWU]
>>742
おおっわかりやすそうなサイトありがとう

知らない言葉の洪水に呑まれてちんぷんかんぷんな有様です
それでもなんとなく掴んだ感覚で
自分にはこのスレはまだ早い、とようやく気づきました
そもそもプログラム組むのってC言語しかないと思っていた(C++は最新版?くらいの)
もうすこし基本的なことを勉強してからまたきます^^

744 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 00:59:49 ID:dkvBYAOU]
gamedevは新しくなってる
ttp://wiki.game-develop.com/


745 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 01:00:31 ID:dkvBYAOU]
ごばくった・・

746 名前:名前は開発中のものです。 mailto:sage [2010/04/15(木) 00:40:31 ID:BjWxJyJs]
規制規制てすて

747 名前:名前は開発中のものです。 mailto:sage [2010/04/15(木) 00:50:35 ID:BjWxJyJs]
お、規制あけた

段階的学習ってこの過疎スレでいいんだよね

規制長すぎてもうオセロまで終わっちゃった

C++とDXライブラリね
がんばるよー^^


748 名前:名前は開発中のものです。 mailto:sage [2010/04/18(日) 11:13:29 ID:0pCDb6wB]
テトリス完成でいいやもうめんどくせえ



749 名前:名前は開発中のものです。 mailto:sage [2010/04/18(日) 11:27:23 ID:0pCDb6wB]
おいおいちょうどいいテンプレがあるじゃないの

【教材】15パズル〜テトリス
【URL】gmdev.xrea.jp/st/up/106.zip
【開発環境】 VC++ 2005タダの奴 + DXライブラリ

過疎スレで俺の独壇場

大体ゲーム終了と同時にプログラムも終わってます バグもちょっとあります

マジ本気初心者なのでパソコンがぶっ壊れるかもしれません
自己責任が云々

パックマンあんまりやったこと無いんで
マリオまで飛びたいです飛びます今度こそまじめにやりますよぼかぁ




750 名前:名前は開発中のものです。 mailto:sage [2010/04/22(木) 18:27:04 ID:mdsjsp5c]
姉ちゃん、明日って今さ!

751 名前:名前は開発中のものです。 mailto:sage [2010/07/27(火) 13:50:39 ID:pRAObFy6]
【初心者】課題をクリアしていくスレ【講習会】
pc11.2ch.net/test/read.cgi/gamedev/1086858349/
【目標ない奴】おまいらに課題を与える。【集まれ】
pc11.2ch.net/test/read.cgi/gamedev/1026148930/

この二つのスレって違いがありますか?
少し成り立ちが違うようですが現在はどちらも
同じ課題を解くスレのようなので
少しでもレスが多いこちらを使わせてもらいます
ここが埋まったらあっちに行きますね

最新の課題はここでいいですか?
wiki.game-develop.com/

あとオススメの言語や他のサイトでもいいので
もっと課題があれば教えてください
過去ログをみてみるとDXライブラリを使っている方が多いようですね

土日スレのお題を作る合間にこちらで腕を磨こうと思っています
宜しくお願いします

ではさっそく最初のお題の数当てゲームを作ってきます
過去の先人に見習ってLevelが進むごとに書き込もうと思っていますので
少し連投気味になるかもしれませんがご容赦をお願い致します


752 名前:名前は開発中のものです。 mailto:sage [2010/07/27(火) 14:11:01 ID:pRAObFy6]
Level1

#include <stdio.h>

int main()
{
    return 0;
}


Level2

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

int main()
{
    int rnd;

    rnd=rand() % 10 + 1;
    printf("%d\n", rnd);
    return 0;
}


753 名前:名前は開発中のものです。 mailto:sage [2010/07/27(火) 14:19:49 ID:pRAObFy6]
Level3

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

int main()
{
    int rnd, input;

    rnd=rand() % 10 + 1;

    printf("なにか数を入力してください\n");
    scanf("%d", &input);

    printf("ランダムな数:%d\n", rnd);
    printf("入力した数:%d\n", input);

    return 0;
}

Level3まで終わりました
グラフィックがないのでまだ簡単です
今日中にLevel5まで終わらせたいです

開発環境はVC2010ExpressEdition
言語はCです

次の課題の15パズルはグラフィックを使ったゲームになるので
いよいよ本番って感じがしますね


754 名前:名前は開発中のものです。 mailto:sage [2010/07/27(火) 14:24:54 ID:pRAObFy6]
Level4
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int rnd, input;

    rnd=rand() % 10 + 1;

    printf("なにか数を入力してください\n");
    scanf("%d", &input);

    printf("ランダムな数:%d\n", rnd);
    printf("入力した数:%d\n", input);
    
    if (rnd == input)
    {
        printf("Hit!\n");
    }
    else if (rnd > input)
    {
        printf("Big\n");
    }
    else
    {
        printf("Small\n");
    }

    return 0;
}


755 名前:名前は開発中のものです。 mailto:sage [2010/07/27(火) 14:27:47 ID:pRAObFy6]
Level5
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int rnd, input, i;
    rnd=rand() % 10 + 1;
    for (i=0 ; i<3 ; i++)
    {
        printf("なにか数を入力してください\n");
        scanf("%d", &input);
//        printf("ランダムな数:%d\n", rnd);
        printf("入力した数:%d\n", input);
    
        if (rnd == input)
        {
            printf("Hit!\n");
            break;
        }
        else if (rnd > input)
        {
            printf("Big\n");
        }
        else
        {
            printf("Small\n");
        }
    }

    return 0;
}
そろそろ32行制限がきつくなってきたので15パズルはソースにリンクを貼るようにしますね

756 名前:名前は開発中のものです。 [2010/07/28(水) 17:36:51 ID:LWgNQ7zS]
間違えてソース消したっぽいorz
15パズルは明日以降に延期
途方にくれながらサイトを整理してみたよ
まだちょっとごちゃごちゃしてるので何とかしたい
wish.45.kg/donichi01/

DXライブラリとHSPどっちにするかで悩み中
LGPは資料少なそうだから回避
Delphiは将来がなさそうだから回避
RubyとPythonは実行できる人が少なそうだから回避
GameMakerは英語がわからないから回避
Androidは実機もってないから回避

すげーオススメの開発環境って何かある?

757 名前:名前は開発中のものです。 mailto:sage [2010/08/04(水) 18:28:27 ID:QkfZDICZ]
15パズル
wiki.game-develop.com/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%BD%E9%BF%B4%BC%D4%B8%FE%A4%B1%2F%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB%2F%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%2F15%A5%D1%A5%BA%A5%EB

Level1 ウィンドウを表示する
Lv2 絵を表示する
Lv3 絵を並べて表示する
Lv4 ターゲットマーカーを表示する(マウスカーソル使う場合はやらなくてもok)
Lv5 パネルの移動を実装する
Lv6 並べ替えを実装する
Lv7 ゲームクリアを実装する

今日中に半分ぐらいがんばってみる
といってもソースを書くのはLv3ぐらいだけど

758 名前:名前は開発中のものです。 [2010/08/10(火) 15:38:46 ID:/k0lPZKi]
【初心者】課題をクリアしていくスレ【講習会】
hibari.2ch.net/test/read.cgi/gamedev/1086858349/
【目標ない奴】おまいらに課題を与える。【集まれ】
hibari.2ch.net/test/read.cgi/gamedev/1026148930/
【入門書クリア前提】初心者用段階的ゲーム製作スレ
hibari.2ch.net/test/read.cgi/gamedev/1229821304/
初心者専用スレ「パックマン」風ゲーム作らない?
hibari.2ch.net/test/read.cgi/gamedev/1014326802/
初心者専用スレ「シミュレーションゲーム」を作らない?2
hibari.2ch.net/test/read.cgi/gamedev/1172141181/


ほかにも類似スレはありますか?
特に段階的学習の教材を使ってるところがあれば教えてください。

759 名前:名前は開発中のものです。 [2010/08/14(土) 23:59:29 ID:6bgKDL3o]
【課題】15パズル
【Level】3
【ジャンル】パズル
【URL】gmdev.xrea.jp/st/up/120.txt
【スクリーンショット】gmdev.xrea.jp/st/up/119.jpg
【製作時間】2時間
【開発環境】VC++/Irrlicht
【備考/DL容量】3KB(ソースのみ)
【概要】64x64のパネルを15枚表示しています。
【操作方法】表示のみ。操作はありません。
【コメント(感想)】
やっと着手しました。
STG課題のソースからパクっています。
パネルはピンポイントで素材とかを注文するスレでお願いして作って貰いました。
wikiのほうに共用素材としてアップして貰ったので他の人も使ってください。
素材をアップしてくださった方、本当にありがとうございます。

実は朝のうちに完成してたのですが書き込み制限でしばらく書き込めませんでしたorz
テンプレは土日スレを参考にしました。

【参考URL】
ピンポイントで素材とかを注文するスレ
hibari.2ch.net/test/read.cgi/gamedev/1146653544/
ゲムデヴあっぷろーだ
gmdev.xrea.jp/
おまえら土日までに一本ゲーム作るスレ12
hibari.2ch.net/test/read.cgi/gamedev/1280885106/
段階的学習まとめwiki(15パズル)
wiki.game-develop.com/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%BD%E9%BF%B4%BC%D4%B8%FE%A4%B1%2F%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB%2F%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%2F15%A5%D1%A5%BA%A5%EB



760 名前:名前は開発中のものです。 [2010/09/05(日) 03:15:35 ID:VnzrAqV2]
テトリススレが抜けてたので追加しました。
まだ抜けてる関連スレがあれば教えてください。

【初心者】課題をクリアしていくスレ【講習会】
hibari.2ch.net/test/read.cgi/gamedev/1086858349/
【目標ない奴】おまいらに課題を与える。【集まれ】
hibari.2ch.net/test/read.cgi/gamedev/1026148930/
【入門書クリア前提】初心者用段階的ゲーム製作スレ
hibari.2ch.net/test/read.cgi/gamedev/1229821304/
初心者専用スレ「パックマン」風ゲーム作らない?
hibari.2ch.net/test/read.cgi/gamedev/1014326802/
テトリスを作る
hibari.2ch.net/test/read.cgi/gamedev/1033977194/
初心者専用スレ「シミュレーションゲーム」を作らない?2
hibari.2ch.net/test/read.cgi/gamedev/1172141181/

761 名前:名前は開発中のものです。 mailto:sage [2010/12/19(日) 00:46:04 ID:mIRen8wE]
ここって何のスレ?

762 名前:名前は開発中のものです。 [2010/12/20(月) 05:10:28 ID:cGgEqivK]
課題を自力で実装していく自主トレーニングスレ。
それなりに経験積んだけど、完成させたことが無い人向け。


763 名前:名前は開発中のものです。 [2011/03/22(火) 15:37:40.25 ID:eIV0YQSI]
>>756さんと同じで開発環境を悩んでます
なにかオススメとかあればお願いします

自分で調べてみた所
・CとDXライブラリ
・HSP
が簡単で入門サイトも多くてよさそうです

764 名前:名前は開発中のものです。 mailto:sage [2011/03/23(水) 19:29:04.99 ID:qdTc8DpV]
>>763
ずっと開発を続けるならそのうちC系でやることになるんだけど
とりあえずCの勉強をしてみてポインタの概念がすぐに理解できるようなら
前者、できないようなら後者でするといいよ
HSPが使いこなせるようになったころにはCにあってHSPにはない仕様
(ポインタ、型、宣言、スコープ、構造体など)の意義が理解できるように
なっているからすぐに移行できるし

完全な初心者なら特定ジャンルに特化した開発ツール系を
いじってみるのもオススメ
NスクとかSRCはプログラム言語をさらに簡易にした感じのやつだし
最初のステップとしては悪くない(若干スレ違いだけど)

765 名前:名前は開発中のものです。 mailto:sage [2011/03/27(日) 23:00:25.90 ID:frcUHFPs]
いきなりC#を学ぶってのはむちゃですか?
C+でウィンドウ作ったり、画像出したり音出したりはやってみました

C#で作ろうとするといきなり色々書かれてるのが出来てて戸惑う

766 名前:名前は開発中のものです。 mailto:sage [2011/04/01(金) 20:44:14.52 ID:FMXJ6ywD]
別に無茶ではない。
独学でC++をやってヘンな癖が付くよりは、むしろC#から入って正しいスタイルを身につける方が好ましい。

まあ、自分のやりたいことに合わせて、良質な情報がさがせばいくらでも転がってる物を選べばいい。

767 名前:名前は開発中のものです。 mailto:sage [2011/04/07(木) 03:55:45.59 ID:KTIKp1g1]
自分で一から一回ウィンドウ表示まで作らないと要領得なかったりするよね


768 名前:名前は開発中のものです。 mailto:sage [2011/04/07(木) 19:00:09.39 ID:VJK/16aS]
課題シリーズでFPSやRTSってないですか?

769 名前:名前は開発中のものです。 mailto:sage [2011/04/07(木) 22:10:02.78 ID:rsz3xv2B]
どういう意味だ?
 最終的にFPSやRTSが作れるようになるには
 どんな課題を段階的にやるべきか?
ってことか?



770 名前:名前は開発中のものです。 [2011/04/13(水) 12:16:57.66 ID:/WZ6t+3A]
>>769
はい、ほかのジャンルはwikiにまとめられているのですが
FPSやRTSを作りたいのに無いので

771 名前:名前は開発中のものです。 [2011/04/15(金) 15:36:34.86 ID:qHCv81Zt]
今日から本気だす
とりあえず連投規制かかるまでうpしつづけてみる
なるべくソースも出していくからツッコミとか指摘とかいっぱいください

教材はこれを使います
wiki.game-develop.com/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%BD%E9%BF%B4%BC%D4%B8%FE%A4%B1%2F%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB%2F%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC

ろだはウイルスチェックもしてくれるココを使う予定
www.gigafile.nu/v3/

ある程度まで言ったらまとめてどこかにうpするつもり

言語はCとDXライブラリの予定
HSPと迷ってるけど両方使ってみてやりやすいほうにする

最初はたくさんうpできるだろうけど後でペースが落ちていくだろうから
最低でも1日1うpが目標

では、よろしくお願いします

772 名前:名前は開発中のものです。 [2011/04/17(日) 20:31:40.09 ID:y9DDlea5]
こういうやつも定期的に現れるな
そして一週間もたたないうちに消えて行く

773 名前:名前は開発中のものです。 [2011/04/18(月) 23:55:34.36 ID:hWVFHfBy]
【課題】共通
【Level】1
【ジャンル】未定
【URL】www3.gigafile.nu/v3/?c4f5f1733fe2c46d116ec2837059c706
【製作時間】3日
【開発環境】VC++/DXライブラリ
【備考/DL容量】610KB
【概要】真っ黒画面で全画面表示
【操作方法】ESCキーで終了
【コメント(感想)】
遅くなってごめんなさい。
DXライブラリの設定に時間がかかっていました。(拡張子をCのままビルドしようとしてハマってました)
レスありがとうございます。
なんとか一週間は続くよう、1つの課題は完成できるようがんばりたいと思います。
せっかく全画面表示をしましたが、次からコンソールで数当てゲームを作っていきます。

774 名前:名前は開発中のものです。 [2011/04/19(火) 21:13:49.73 ID:R28KkwSQ]
数当てゲーム Level 2
ランダムに1〜10までの数字を一つ発生させ、表示する

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

int main()
{
    int rnd;

    rnd=rand()%10+1;
    printf("%d\n", rnd);

    return 0;
}

775 名前:名前は開発中のものです。 mailto:sage [2011/04/19(火) 21:16:17.13 ID:R28KkwSQ]
Level 3
数字を入力して、その数字を表示する

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

int main()
{
    int rnd, inp=0;

    rnd=rand()%10+1;

    scanf("%d", &inp);
    printf("入力%d\n", inp);
    printf("こたえ%d\n", rnd);

    return 0;
}

776 名前:名前は開発中のものです。 mailto:sage [2011/04/19(火) 21:19:44.08 ID:R28KkwSQ]
Level 4
Level2の数字とLevel3の数字を比べて
入力された数よりも大きかったらBig。小さかったらSmall。同じならHitと表示させる。

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

int main()
{
    int rnd, inp=0;

    rnd=rand()%10+1;

    scanf("%d", &inp);
    printf("入力%d\n", inp);

    if (rnd > inp)
    {
        printf("big\n");
    }
    if (rnd < inp)
    {
        printf("small\n");
    }
    if (rnd == inp)
    {
        printf("hit\n");
    }
    printf("こたえ%d\n", rnd);

    return 0;
}

777 名前:名前は開発中のものです。 mailto:sage [2011/04/19(火) 21:23:30.87 ID:R28KkwSQ]
Level 5
Level2の数字を隠し、Level3〜Level4を3回繰り返させる。
もし、途中で正解したらそこでゲームを終わりにする。

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

int main()
{
    int rnd, inp=0, i;
    rnd=rand()%10+1;
    for (i=0 ; i<3 ; i++)
    {
        scanf("%d", &inp);
        printf("入力%d\n", inp);
        if (rnd > inp)
        {
            printf("big\n");
        }
        if (rnd < inp)
        {
            printf("small\n");
        }
        if (rnd == inp)
        {
            printf("hit\n");
            break;
        }
    }
    printf("こたえ%d\n", rnd);
    return 0;
}






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<288KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef