[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
596: 593 [] 2006/11/25(土) 21:37:45 ID:ZxloQDt/(2/2) AAS
>>594594(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);
に直してみてはいかがか。
できました!ありがとうございます。
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
というか、>>382382(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
いきなりだが俺もちょこっと参加させてくれ。
とりあえずできそうなのからということで
>6464(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波形というのがよくわからん。
何をどうするのかが。
>107107(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 :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(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で塗りつぶすというのはたまに見るんだが、
なんだかよくわからんかった。が、それをヒントに、
色々やってみる。アリガトン
618(1): 名前は開発中のものです。 [sage] 2007/02/17(土) 17:49:27 ID:x7siGPZt(3/3) AAS
これって
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: 名前は開発中のものです。 [sage] 2007/02/17(土) 20:25:31 ID:pIqCsBKC(1) AAS
暇だからやってみた素数。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(1): 名前は開発中のものです。 [sage] 2007/02/18(日) 04:26:14 ID:8TgB3zN2(1) AAS
>>618
clsより軽いはずだ。
上下前次1-新書関写板覧索設栞歴
あと 167 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s