[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
598(1): 名前は開発中のものです。 [sage] 2006/11/27(月) 20:55:38 ID:3EIwZmwn(1) AAS
 >>597597(1): 名前は開発中のものです。 [sage] 2006/11/27(月) 13:00:13 ID:AfDweK2L(1) AAS
 チラシの裏だが、素数の問題について一言。 
 ”エラトステネスのふるい”というキーワードが出ているが、この問題に対して適応できるとは考えられない。 
 この方法を使うのならば、1000個目の数値が既知でなくてはならい。要するにズルをしないで解を得るには 
 総当りするか、無限個の要素からなる配列をふるいにかけるかである。 
 もしも”エラトステネスのふるい”を意識していたならば、例えば「0〜9999の間に存在する素数を列挙せよ」となる。  
いいかい、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) AA×

620(1): 名前は開発中のものです。 [sage] 2007/02/18(日) 04:26:14 ID:8TgB3zN2(1) AAS
 >>618 
 clsより軽いはずだ。 
621(1): 名前は開発中のものです。 [sage] 2007/02/18(日) 16:42:46 ID:yPmVwvF6(1) AAS
 >620 
 むー。そうなのかー。でも動き重くなったしなー。 
 使い方悪いのかなー。 
  
 課題6を 
 丸描いて敵にしてるんだけど、動き方をどうするかで 
 試行錯誤ちう 
622: 名前は開発中のものです。 [sage] 2007/02/18(日) 21:48:11 ID:Z60cc6BP(1) AAS
 >>621 
 重いのは await 1 が原因だよ。 
上下前次1-新書関写板覧索設栞歴
あと 165 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.743s*