1 名前:名前は開発中のものです。 [04/06/10 18:05 ID:VshiFFV8] ゲームに必要な要素を先生が出してくれます その課題をクリアしていく講習会です
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+] 設定で好きなように変えられるように作ると良い。