[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
591: 受験生 ◆B57Fo1eLjo  [sage] 2006/10/22(日) 10:29:26 ID:T38aBY/h(1) AAS
 2あたりにいた受験生です(酉忘れちまったw 
  
 このスレまだあったのか… 
  
 また課題でも用意する? 
592: 名前は開発中のものです。 [] 2006/11/19(日) 01:28:15 ID:wJaGDUpd(1) AAS
 >>582582(2): 名前は開発中のものです。 [] 2006/10/19(木) 12:24:46 ID:2T8BbUdQ(1) AAS
 いくつか問題を出しましょう。 
 エフェクトに関する入り口。 
  
 適当な画像を、 
 ・モノクロ 
 ・エッジ 
 ・モザイク 
 ・ソフト 
 加工してください。  
の課題やってみました 
 モノクロということでカラー画像から2値画像への変換 
 外部リンク[zip]:gamdev.org 
  
 開発環境はDelphi6 personal 
 ソース、実行ファイルが含まれています 
使い方 
 ファイル→開く でBMP画像を開いておく 
 画像変換→モノクロ で画像処理をはじめます 
  
 画像の大きさにもよりますがちょっと時間がかかります(サンプル画像で5秒ぐらい) 
変換サンプル画像 
 変換前 
 画像リンク
 
 
 ↓ 
 変換後 
 画像リンク
 
 
避難所の看板に変換処理をかけてみました 
 閾値はRGBともに32 
 この数字をうまく決めないと画像が消えちゃいますね 
 フォトレタッチソフトは閾値の入力なしで自動で処理してるけど 
 なにかうまい方法があるのかな 
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の課題モザイク 
 サンプル画像 
 画像リンク
 
 
 実行ファイルとソース 
 外部リンク[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 
  
 というか、>>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やめればいいじゃん 
上下前次1-新書関写板覧索設栞歴
あと 172 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s