[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
593
(2): C++/win32API [] 2006/11/25(土) 00:09:14 ID:ZxloQDt/(1/2) AAS
課題5です。
どなたかバックバッファがわかる方教えてください。
↓画面が真っ白になるんですけどどうすれば直りますか?

外部リンク[zip]:gamdev.org
594
(1): 名前は開発中のものです。 [sage] 2006/11/25(土) 02:02:55 ID:FscVmuXx(1) AAS
>>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: 名前は開発中のものです。 [sage] 2006/11/25(土) 17:57:48 ID:zYG1sxsz(1) AAS
>>582
582(2): 名前は開発中のものです。 [] 2006/10/19(木) 12:24:46 ID:2T8BbUdQ(1) AAS
いくつか問題を出しましょう。
エフェクトに関する入り口。

適当な画像を、
・モノクロ
・エッジ
・モザイク
・ソフト
加工してください。
の課題モザイク
サンプル画像
画像リンク

実行ファイルとソース
外部リンク[zip]:gamdev.org

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

それにしてもエッジ難しすぎる……
微分やオペレータって画像処理の基本らしいので
がんばりたいけど
596: 593 [] 2006/11/25(土) 21:37:45 ID:ZxloQDt/(2/2) AAS
>>594
できました!ありがとうございます。
597
(1): 名前は開発中のものです。 [sage] 2006/11/27(月) 13:00:13 ID:AfDweK2L(1) AAS
チラシの裏だが、素数の問題について一言。
”エラトステネスのふるい”というキーワードが出ているが、この問題に対して適応できるとは考えられない。
この方法を使うのならば、1000個目の数値が既知でなくてはならい。要するにズルをしないで解を得るには
総当りするか、無限個の要素からなる配列をふるいにかけるかである。
もしも”エラトステネスのふるい”を意識していたならば、例えば「0〜9999の間に存在する素数を列挙せよ」となる。
598
(1): 名前は開発中のものです。 [sage] 2006/11/27(月) 20:55:38 ID:3EIwZmwn(1) AAS
>>597
いいかい、n+1が素数かどうかを最も効率よく判定するためには、
n以下の素数が列挙されている必要がある。
これが「エラトステネスのふるい」から得られる知見なのだよ。

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

「エラトステネスのふるい」と言われて、
教科書どおりの手順しか思いつかない人間には、
残念ながら、創造の才能は無いよ。
与えられた道具は、使い方を工夫して、組み合わせるんだ。
599: 名前は開発中のものです。 [sage] 2006/11/28(火) 01:45:59 ID:VYv9sMeV(1) AAS
サンプル画像
画像リンク


画像リンク


実行ファイルとソース
外部リンク[zip]:gamdev.org

微分使うのを諦めて隣接するピクセルと引き算して閾値と比べてみた
工夫した点はRGBを別々に比べたこと
RGBの合計を閾値と比べるより綺麗なエッジがでます
閾値を弄れば雲の部分のエッジを出すことも可能
その場合は他の場所がうまくいかなかったりするので
調整するのも難しい
600: 名前は開発中のものです。 [sage] 2006/11/28(火) 03:03:40 ID:JXILxC55(1) AAS
>>598
前言撤回です。自分のアホさを痛感しつつ課題に取り組みました。
外部リンク[phps]:gamdev.org

というか、>>382
382(1): 名前は開発中のものです。 [sage] 04/07/21 12:16 ID:ddhH1W+g(1) AAS
#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;
}
と同じですねHAHAHA.
orz
601: 名前は開発中のものです。 [sage] 2006/12/18(月) 20:43:34 ID:f8pwlrC2(1) AAS
課題 素数 COBOL
外部リンク[phps]:gamdev.org

まだCOBOLは出てなかったようなので……。
602: 名前は開発中のものです。 [] 2007/01/03(水) 13:04:17 ID:34CL32fK(1) AAS
ぼでぃいいいいいいいいいいいいいいいいいいいいいいいいず

あいむなっとあにぃいいいいいいいいいまああああああああある!
603
(2): 名前は開発中のものです。 [sage] 2007/02/03(土) 16:43:24 ID:b0e6Rts8(1/2) AAS
いきなりだが俺もちょこっと参加させてくれ。
とりあえずできそうなのからということで
>64
64(2): 4 ◆3VUXqvbfSY [] 04/06/15 20:16 ID:OmG1F0sQ(2/2) AAS
>>63
はい、正解です。

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

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

とりあえず、小さい方から1000個の素数を見つけるプログラムを作成してください。
の素数をやってみた。つかってるのは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: 名前は開発中のものです。 [sage] 2007/02/03(土) 16:46:30 ID:b0e6Rts8(2/2) AAS
と思ったら過疎スレなのか(´д`)
605: 製作神 ◆3C/O4odLsY [] 2007/02/03(土) 16:50:16 ID:z04kCzis(1) AAS
もっと投下すれば賑わうであろう。
606: 名前は開発中のものです。 [sage] 2007/02/04(日) 16:07:13 ID:wipOHoKW(1) AAS
数当てもつくってみたよ。しかしマジでいないなー。
607: 名前は開発中のものです。 [sage] 2007/02/04(日) 18:12:35 ID:MWYCkzpm(1) AAS
>>603
偉そうに登場したのによろしくお願いしますで締めてるところにうけた
608: 名前は開発中のものです。 [sage] 2007/02/05(月) 06:15:29 ID:JxXUp4Vb(1/2) AAS
配列変数とやらを使って、+1ずつして割っていく方法から、
でてきた素数を代入して割っていく方法に変えたら、
>603の時より、ループ回数が偉く少なくなった。
でも、他にa+2でやったほうが早そうなんだけど、
それをきれいにはめる方法が良くわからない。
if 構文追加してもいいけど、どっちみち2で割るところまでくれば
変わらないような気もするし。
609: 名前は開発中のものです。 [sage] 2007/02/05(月) 06:38:57 ID:JxXUp4Vb(2/2) AAS
計算方法をちょこっと変えたら、5000万のループ回数が70万に。素数オモスレー
610: 名前は開発中のものです。 [sage] 2007/02/07(水) 05:50:49 ID:GNKliERn(1) AAS
む、HSPなんだけどSIN波形というのがよくわからん。
何をどうするのかが。
>107
107(1): x≠先生かつx=生徒 ⇒ x=俺 [sage] 04/06/21 18:09 ID:X+fe3iOx(1) AAS
HSP版
#include "hspext.as"

pos 0, 240
repeat 640
emsin sin, cnt\256
line cnt, 240+(sin*240/256)
loop
stop
のはうちで動かんし。
考え方からさっぱりだ。
611
(1): 名前は開発中のものです。 [] 2007/02/07(水) 15:20:39 ID:NKLSTYEl(1) AAS
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
(1): 名前は開発中のものです。 [sage] 2007/02/16(金) 00:22:46 ID:qpyJEI/g(1) AAS
>611
サンキュ
なるほど。line命令とかこういう風に使うのか。
しかもまるまる答えそのものじゃないかー。
613: 名前は開発中のものです。 [] 2007/02/16(金) 02:20:37 ID:ppH9PRcO(1) AAS
>>612
始点、終点も設定すると、前回の終点を
保存か算出する必要が出てくるからな
614
(1): 名前は開発中のものです。 [sage] 2007/02/17(土) 06:26:41 ID:x7siGPZt(1/3) AAS
課題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
320(1): 名前は開発中のものです。 [sage] 04/07/14 14:32 ID:hWTGJY1w(1) AAS
>>319
Octtree でググってみ
:x=320
if x<0 :x=0
if Y>240
240(1): HSPが初プログラム@生徒希望 [sage] 04/07/04 19:58 ID:3DUC6+Xf(2/2) AAS
えと、素数はどういうものかはわかるんですが、プログラムというかHSPでの算出方法が…
: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
(1): 名前は開発中のものです。 [sage] 2007/02/17(土) 12:59:22 ID:zySnsdUf(1) AAS
clsやめればいいじゃん
616
(1): 名前は開発中のものです。 [sage] 2007/02/17(土) 13:09:21 ID:AzT6DJgE(1) AAS
>>614
cls を使わずに、画面のクリアは boxf を使って真っ白に塗りつぶす。

これだけだとまだちらつくから、
画面塗りつぶしと箱描画をする前に redraw で描画モード0を指定する
画面塗りつぶしと箱描画をした後に redraw の描画モード1を指定する
617: 名前は開発中のものです。 [sage] 2007/02/17(土) 14:52:49 ID:x7siGPZt(2/3) AAS
>615
使わないと画面真っ赤になっちゃう。
clsぐらいしかわからないからな。悪いな。

>616
boxfで塗りつぶすというのはたまに見るんだが、
なんだかよくわからんかった。が、それをヒントに、
色々やってみる。アリガトン
1-
あと 170 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.019s