貴様ら!ブロック崩し作るので見てください
■ このスレッドは過去ログ倉庫に格納されています
0001ヒッキー@プログラミング
NGNG作りたくなりました。
Bitbltなど使う予定ですが、細かい技術がないので、
小出しにプログラムしようと思います。
(タマが動くだけとか、キーボードで自機を動かすだけとか)
オナーニスレだけどよろしくね。
0497デフォルトな名無しさん
NGNG優良スレたてるまで出られないとか。
0498デフォルトの名無しさん
NGNGどんどん挑戦する事が大切!ですね。
>>493氏の提案している迷路なんてどや(藁
# でも騙りも出ずにってすごいなぁ(藁
0499458だったもの
NGNG俺もここで何かやってみるかな。しかし受験もあるし。
鬱堕詩嚢
0500デフォルトの名無しさん
NGNG挑戦すること…ですね。
折れも受験だしなぁ。来年、ガンバロ〜っと。
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG受験を来年って浪…(自粛)…じゃん(藁
それはそうと、電子投票ほうが成立したね。
┓(´д`)―y。o(どうなるんだろ?)
0503ヒッキー@プログラミング
NGNG↑次うぷしました。変更点は
・ソースの部分的なモジュール化
・NativeCodeコンパイルに変更
です。見た目と動きはほぼ変わりません…。
>>491
ほおほお。中間コードを吐く方法でよかったですか。
自分で変なこと言ってたらどうしようとか心配してました。
スレ、読んでみます。ありがとうございます。
>>492
了解。Cの方向で。
>>493
やっぱインタプリタは難しいですか…。
迷路でも、ちゃんと完成させるのがムズカシそうだ。
一回、作ってみようと思います。
>>494
いくつもゴールへのルートがあると難しそうですねー。
僕も関西人です。
>>495
3D…がんばれゴエモンみたいなやつですか。
>>496
あー、2chにカキコできるサイズのものだったら面白いですね。
>>497
どういうゲームなんでしょうか(w
最良スレの定義がわからない…
>>498
ういー。どんどん挑戦してみようと思います。
体力が続く限りやります。
>>499
受験生ですかー。たいへんですね。
プログラムはいつでもできるので、まっとうな道を進む事をお勧めします。
僕みたいになると、先が見えないので大変です。
>>500
おぉ、受験生多いなぁ。
やっぱ数学してないと大変です。数学がんばってください。
>>502
電子投票ってどんなんでしょ?
選挙でつかうんでしょうか。
0504458そのもの
NGNGしかも受験は受験でも高校受験だったりして。
ってスレとは完全に関係ないのでsage
0505デフォルトの名無しさん
NGNGで、VBから一番移動し易いのはやっぱりDelphi。
Cマガの付録CDに入ってるんだから、お金もそんなにかからんし
ソースを見る限り VBにしかないselect文とか使ってないから Delphiには殆どそのまま移植可能
簡単でないのはコントロール配列の扱いくらいかな
それに VBとDelphiの比較サイトは結構あるし
ttp://www.threeweb.ad.jp/~satou/delphi1.htm
ttp://www.ab.wakwak.com/~greenspace/dev-api/develop/step_1.html
0506デフォルトの名無しさん
NGNG0507一応プロ
NGNGインタプリタの見本っぽいの作ったけどいるか?構文解析の参考になると思う。
インタプリタっつーか、式を入力してそれを計算して結果を表示するだけだけど。
例えば、
>3*(2 + (a - 2) % 3)
と入力すると、
a =
となるので、aに値を入力。
すると答えが表示される。
ただし、入力できる式は、リテラル整数は1桁のみ、変数はa-zA-Zの52種類。
演算子は、+-%*/の5種類。
# ろくな字句解析してないのに4時間もかかった・・・。コード的には300行弱。
0508一応プロ
NGNGインタプリタと言ってもピンきりだよ。
add 1 1
とかを解析・実行して結果を2と表示するものとかなら簡単でしょ?
そういうとこから始めたらいいよ。
0509デフォルトの名無しさん
NGNGどうでもいいけど、それってインタプリタじゃなくて電卓って言わない?
0510デフォルトの名無しさん
NGNG電卓もインタープリタの一部ともいえる
0511デフォルトの名無しさん
NGNGいちおう構文解析が入る(演算子の優先順位を考慮に入れる必要がある)から
単なる電卓とは違うけど、そこから言語処理系への道はかなり遠いよな。
0512一応プロ
NGNG再帰下降解析すれば、そう遠くないよ。
言語処理系として難しいのは最適化あたりじゃないか?
あと、エラー処理かな。エラーが起きたら中断するだけなら簡単だけど。
最適化まではやったことないから知らんけど。
中間コードを生成して、それを解釈実行するところまではそう難しくないって。
そこまでは別に難しいアルゴリズムなんてないし。
0513374
NGNGおっ、名前付けをちゃんとしたんだね、なかなかみやすくなったんじゃないかな?
おおぅ、ブロックをモジュール化したんですね。
よく見てないんですが、いいんじゃないですか。
気になった点をいくつか、Form_Initializeの
'ここにループを書くとウインドウ描画前に始まってしまうので、
'タイマー使用
TmrCallMain.Enabled = True
は画面が表示されずにMainLoopに入ってしまうんでやってるんだと思うんだけど
その場合は、Initializeでフォームを Show して DoEvents かませば大丈夫です。
Me.Show
DoEvents
MainLoop
とこんな感じで書けばいけると思う。
あとは重複して書いてるところが多い。
With tmpRect
.Bottom = 220
.Left = 250
.Right = 310
.Top = 140
End With
これはいっぱいあるんで、
tmpRect = MakeRect( 220,250,310,140 )
とこんな感じのRECTを作る関数を作った方が良いです。
小さい物でもいっぱいあると曲者です。
後はある特定のボタンが押されているときの速度を
変える処理はこんな風に書けばよいです。
Dim MoveSpeed As Long
MovdSpeed = 2 '通常移動速度
If Press.Shift Then MoveSpeed = MoveSpeed * 2 'SHIFTが押されているときは2倍
ElseIf Press.Ctrl Then MoveSpeed = MoveSpeed * 3 'CTRL が押されているときは3倍
If Press.Left Then
Paddle.X = Paddle.X - MovdSpeed 'この辺を変数に変えてみた
If Paddle.X < 0 Then Paddle.X = 0
ElseIf Press.Right Then
Paddle.X = Paddle.X + MovdSpeed 'この辺を変数に変えてみた
If Paddle.X + Paddle_width >= Game_area Then Paddle.X = Game_area - Paddle_width
End If
重複する処理は書いてはいけない、修正や変更が大変になります。
ちょっとづつ値が違うような処理は変数をうまく使えばひとつにまとめられます。
似たような構文が続くものは必ずうまく書く方法があるのでそこに注意してみてください。
あと、実行させると自機が自動で左に移動します。
カーソルきかないっす。仕様ですか(笑。
0514ヒッキー@プログラミング
NGNG挑戦する事を忘れるのはまだ早いですよ(藁
高校受験ですかー。たいへんですね…。
その頃、今まで生きてきた中で一番勉強してた時期のような気がします。
吸収が良い時期なので、なんでも勉強した方がいいかもしれませんね。
>>505
Delphiは…VBと同じような位置付けに感じるので、やっぱやめとこうかと
思っています。他のOSでもDelphiが使えたら考えるかも。
あ、パスカル言語という風に考えたら検索したら見つかるかもしれないですね。
>>506
はい。アルゴリズムを覚える方をかんばります。
>>507-508
おぉ、ありがとうございます。
見せて頂けるなら欲しいです。
いきなりインタープリタと考えると難しいけど、一個一個解決して
いけばいいんですね。
>>511
うーん、やっぱインタープリタの道は険しいのか…
>>512
最適化って、どの変数にレジスタを割り振るかとか、
ややこしそうな処理のことでしょうか…。
>>中間コードを生成して、それを解釈実行するところまではそう難しくないって。
ほおほお。なんか安心しました(w
>>513
おー、具体的な例を挙げて、教えてくださってありがとうございます。
たしかに重複する箇所が多かったと思います。
RECTのところ、おっしゃる通りに変更してみたら、読みやすくなりました。
他の所も修正しようと思います。
あ、あとForm_initializeのところ、書き直したらいけました。
なぜか前にやったときはうまく逝かなかったんだけどなぁ…うーん。
0515ヒッキー@プログラミング
NGNGでした…。joyStickの関数がちゃんと値を返してくれないような…。
もしくわ僕の書き方が悪いのかもしれません。
とりあえず、一時的に消します。
0516一応プロ
NGNGほれ。
ttp://www2.makani.to/akutoku/upload/dat/1007214743.lzh
パッと見て悪いと思う部分は真似ないように!
ダウンしたら>>1のサイトで配布しても良いよ。
上のが消えてもダウンできるように。
0518デフォルトの名無しさん
NGNG> ファイルへの直接リンク(アップローダのページからクリックすれば、見れます)
と言われて拾えないんだけど。2:00 以降になれば OK?
>>512
> 再帰下降解析すれば、そう遠くないよ。
ま、数式の解析から言語処理系への過程が遠いか遠くないかは、実物を見て本人
が判断すりゃ良いやね。(俺は遠いと思うけど)
前に勉強がてら書いた Pascal ライクな処理系のコード置いときます。中間コードの
生成と、コンパイル時に 1 + 1 を事前に 2 と置き換える程度の簡単な最適化が入っ
てます。
http://members.tripod.co.jp/lambda_func/pc.zip
#TRY - CATCH とかはお遊びで書いてるので、真似しないようにね。
0519374
NGNGすごいなぁ。どんどんやってください。
二十歳の実務経験なしでここまでできるとは驚きです。
ソース見てると、欲しいところにうまくコメントを書いているし、
いろいろ調べ物もうまいみたいだし、成長も速いし、
いいなぁ欲しい人材です。ウチの新人もこうであれば...。
あと、インタプリタやらなにやら話があがっていますが、
あなたの好きなところからプログラムをやっていくことがいいと思います。
好きなことをやってると成長は速いです。
APIに興味があるようなのでそちらで何かやってみては?
0520一応プロ
NGNG俺はHSP程度なら数式解析とたいした差はないと思ってる。
というか、やってみたら意外と簡単だったっていうのが正直な感想。
# それまですごく難しいものだと思ってた。
もちろん言語処理は奥が深いからピンキリだね。
>>518の"遠い"と言うのはそういうことかな?だったら激しく同意。
実は俺はまだ言語処理系触れ始めと言っていいくらい。
yaccとかlexは使わないで1からゴリゴリ書いてるけど、再帰下降解析
はほとんど差が無く感じるな。管理するデータが多くなったくらいで・・・。
あ、ソース頂きました。
>>519
ま、結局は>>1次第だね。
でも言語処理ってゲームで生かせると思う。
俺も20歳なんだけど、どう?(笑)
仕事中に2chに出入りしてる人間はダメ?
# いちいち長いな(´Д`;)
0521名無し@就職活動中
NGNGやっぱ現段階でそこそこできるやつよりも、
1氏のように頭のきれる人のほうがいいですよね・・・
>>1
あなたの情熱がうらやましいです。がんばってください。
0523ヒッキー@プログラミング
NGNG>>516
どもども。いただきました。
これから拝見させていただきます。
>>518
おー、すんませんです。
いただきました。参考にさせていただきます。
>>1 + 1 を事前に 2 と置き換える
あー、定数の演算の場合、すでに計算しておくっていう方法もあるんですね。
>>519
ありがとうございます。嬉しいです。
あんまり誉められると頭に乗ってしまいます…。
>>あと、インタプリタやらなにやら話があがっていますが、
>>あなたの好きなところからプログラムをやっていくことがいいと思います。
了解しました。
インタープリタは、HSPを知ったときに、ちょっと作ってみたいなぁと
感じていたので、興味はあります。
とりあえず今はもうちょっと簡単な事からやってみようかと…。
APIでウインドウを作って、メモ帳のようなものでも作ろうと思います。
>>520
おー、ハタチなんですか?すごいですね…。
僕もいつか追いつきたいと思います。
>>521
ありがとうございます。
引きこもってると楽なので、勉強がしやすいです。
なぜか学校逝ってる時は勉強の時間に勉強しないんだけど…(藁
社会に出ると、できるかどうかわかりません。
精神的に追い詰められやすい性格なので…。
>>522
いやいや、いらないと思うよりは、できると仮定して
能力を伸ばしていく事の方が大事じゃないですか?
いらないと決めて、いらない人間になってしまったら
本当に社会にとって良くないと思います。
どのような人であれ、同じような量の食事やらをするわけですから。
マジレススマソ。
0524522@就職活動中
NGNGでもなーんにもしてない、ってわけじゃないよん。
つーか激しく板違いなので消えます。
0525デフォルトの名無しさん
NGNG3面から出てくる金のブロックを壊した時に、画面の左上の隅に毎回黄色のブロックが出現します。
ソースを見てないけど自分の推測では恐らく金のブロックは2回当てると壊せるブロックで、
1回当てると黄色のブロックに変化させるつもりが、位置を設定してないため毎回(0,0)の
位置に誤って出現しているのだと思います。
通常じゃ配置されそうにない位置に出現するのと、他のブロックと画像が重なることがあることからそう判断しました。
けどバグじゃなくても直してほしいです。このブロックのせいで4面がいつまでたってもクリアできない…
あとバーが左端にあった時だったと思いますが、真横からボールが当たった時バーが少し壁にめり込みました。
しかしこれは別にゲームに支障がないのでバグとはいえないかな?
あと非常に面白いです。コンボで一気に点が入るところが。
0526505
NGNG>Delphiは…VBと同じような位置付けに感じるので、やっぱやめとこうかと
>思っています。他のOSでもDelphiが使えたら考えるかも
同じといえば同じだけど・・・・・まあいいか・・・
もしC++で躓くようならDelphiを経由するといいよって感じでね
0527デフォルトの名無しさん
NGNGどのWindowsアプリも最終的にAPI呼び出しで実行されるんだから、
CでAPIを叩くのはいい勉強になると思う。
API呼び出しだけでプログラミングするとなるとDelphiよりCのほうが素直
だと思うし。
そのあとC++にいくかDelphiにいくかVBに戻るかVB.netに行っちゃうかは
趣味の問題だと思うけど。
0528デフォルトの名無しさん
NGNGAPI呼び出しってのが 猫でものように、SDKレベルのメッセージループを直に書く
ことだとするならDelphiでも素直に書けるよ。
ただし、Cの方がオフィシャルな参考書があるという事が大きいね
Cの文法も判らないと勉強出来ない。だから必須という事なら賛成するよ。
個人的には VB->C->Delphi->Java->C++の順に学ぶのが王道だと思ってるんだけどね
0529デフォルトの名無しさん
NGNGA、B、Cの順番を踏襲したからなぁ。
0530クロスボウとやら
NGNGVB->Delphi->C->Java->C++
が良いと思われ。
0531デフォルトの名無しさん
NGNGDelphiは余計
0532デフォルトの名無しさん
NGNG漏れはVB->C++でいいと思う。
っていうか、移る前にVB使いこなせっつーの。
VBでDirectX。これが通の頼み方。
0533デフォルトの名無しさん
NGNG今でも自作ツール作る時はDelphiだ。
0534ヒッキー@プログラミング
NGNG↑次UPしました。変更点は
・ボールを3つ同時に出せるように変更
・ボールを全て回収したらステージクリア
です。最後に回収しないといけないようにしました。
>>524
がんばっていらっしゃるなら、前向きになられる事をお勧めします。
後ろ向いて勉強したら自分にとって負担になると思います。
>>525
どうもすみません…変な位置にブロックが移動する現象、直しました。
バーの横からボールに当たったとき、ちょっと動いてしまうような
ソースを書いているのですが、自分でもちょっと変だと思っています…。
直そうかな。
>あと非常に面白いです。コンボで一気に点が入るところが
ありがとうございます。
お褒めの言葉を頂くと、何より励みになります。
0535ヒッキー@プログラミング
NGNGちょっとC++は敷居が高くて困っていました…。
うーん、Delphiも触ってみようかな。
>>527
そうですねー。CからAPIを呼び出すほうが簡単に感じます。
Delphiは触った事ないけど…。
>>528
あ、Delphiでも素直に書けるんですね。
だんだん揺らいできた(w
>>529
どういうことでしょう?
>>530
ほおほお。やっぱそういう順路もありなんですね。
>>532
ごめんなさい…。
VBでDirectXですかー。うーん、DirectX使うんだったら
なんとなくC覚えたいなぁ。
>>533
ツールを作るときのような手軽さはやっぱC++にはなさそうですね…。
0536デフォルトの名無しさん
NGNG早速、やってみたよ。バグじゃないけど報告
ゲームバランスの調整になるかもしれないが
玉が3つゲーム画面上にあると極端に自機の動きが重くなり
玉のスピードについていけない感じがします。
0537ヒッキー@プログラミング
NGNGご報告ありがとうございます。
ウチの環境では遅くならないのでわかりませんでした…。
やっぱ知恵を使わないとだんだん重くなりますよね。
ソースを見直します。
0538デフォルトの名無しさん
NGNGボールが同時に出るようになったんですね。素晴らしい。
個人的にはボール同士が衝突してほしいです。
Delphi Personalは無料ですし試してみるといいかもしれません。
0539デフォルトの名無しさん
NGNG0540一応プロ
NGNGブロックが動いたり
ブロックからミサイルが飛んできたり
このままシューティングにシフトしていったら面白いシューティングができるかも。
0541デフォルトの名無しさん
NGNG> VBでDirectXですかー。うーん、DirectX使うんだったら
> なんとなくC覚えたいなぁ。
マジレス
DirectX 使うなら C ではなく C++。DirectX は COM コンポーネントとして提供
されてるから C++ 使わないと記法が鬱陶しい(設計をオブジェクト指向でやる
必要はないけどさ)。
0542374
NGNGでも、そのおかげでオヂサンには、
1面すらクリアできなくなりました。(最高2面。鬱...
ブロック壊すとアイテムが落ちてくるなんてのは面白いかもね。
1アップとかボールが下でも跳ね返る(落ちなくなる)ようになるとか
0543ヒッキー@プログラミング
NGNGボーランドのソフト、無償でいろいろ提供されてますね。ビクーリ。
ボールの衝突ですかー。書いてみようと思います。
>>539
実はVisualStudioを買ってしまいました(藁
>>540
スクロールしたら見た目が大幅に変わりそうでいいですねー。
ブロックからミサイル…完全にシューティング化ですね(w
>>541
ほおほお。やっぱC++ですね。
オブジェクト作るときのnewとかどうやってCで書くのかわからない…。
うーん、勉強します。
>>542
僕もクリアできなくなりました…。
アイテム出てくるともっと良くなりそうですね。
まだまだ改良の余地がありそう。
0544デフォルトの名無しさん
NGNG次の面に行った瞬間死んじゃったりしたよ。キツイなぁ。これって前のままじゃだめなの?
あとボールが3つに増えると自機が遅くなるバグだけど、
ウチの環境ではマウスで動かしているとそうなったよ。キーボードだと普通に遊べる。
あとアイテムのことだけど、ブロック崩しはもともとバランスのいいゲームだと思うから出し過ぎは危険だと思うよ。
棒が長くなったりボールが分裂したりはいいけど(むしろちょっと歓迎)、間違ってもミサイルでブロックを壊せるなんてものは登場してほしくないなぁ。
最後に口調がちょっと生意気気味ですいません。
0545一応プロ
NGNG>あとアイテムのことだけど、ブロック崩しはもともとバランスのいいゲームだと思うから出し過ぎは危険だと思うよ。
その考え方のほうが危険じゃないか?発想力が乏しくなりそう。
個人の好みだけど、そういう考え方は好きではないな。
「ブロック崩しはこういうもの」とかいう定義は勉強中のプログラマにはして欲しくないな。
それはゲームを"するだけの人間"に任せておけばいいだろう。
仮に「ミサイルでブロックを壊す」という機能を実装して、ゲーム性が損なわれたとしたら、
それを補うアイデアを考えればよい。時間は十分にあるんだから。
趣味でやってるんだから、気に入ったアイデアがあったらとりあえず実装してみれ。
0546デフォルトの名無しさん
NGNGそれはそうなんですけどね。
ただ今回のバージョンアップ版をやってみてゲームバランスが崩れかかってるかなと思ったんですよ。
前のバージョンの方がよかったなって。
なんか今回のバージョンになってブロック崩し本来の面白さが欠けたような気がする。(そうはいってもボール分裂は見たい…)
けどミサイルなんて物はブロック崩し本来の面白さを完全にぶち壊してしまうような気がする。
そして一度その方向に進んでしまうと、もう二度と本来の面白さを生かすような方向には転換しない気がする。
まぁそれを1さんが見事に面白くしてくれればいうことなしなんだけど。
0547デフォルトの名無しさん
NGNG発展を評価すべきだよ。
ちなみにボールを増やすのを指示したのは俺だけど、1の今の技量でいきなりアイ
テムを出すのはキツいと思ったから暫定的に今のシステムを提案しただけだよ。
もしこの先アイテムを出すとして、ボールが分裂するアイテムが出たとしても、
今の状態からなら新しいボール発生の条件を変えるだけで済むし。
今のシステムを生かすなら、得点システムを変えてコンボボーナスを無くして
変わりに飛ばしてるボールの数によって2倍、4倍の点が入るようにするのが
いいかな。あとは、ボールが2個以上飛んでる場合は右クリックしながら受けると
キャッチできるとか。
ミサイルでブロックを破壊はブロック崩しとしては常識外れだけど、それでも闇雲
に否定するのもどうかと思うよ。例えば、ミサイルで攻撃する対象はブロックでは
なくてボールにして、ボールの動きに干渉できるようにするとか、いくらでも考え
ようはあるかと。
0548528
NGNG「習うより慣れろ」 これ大抵の技術の一番の習得方法
そりゃ横に誰かいて手取り足取り教えてくれるなら別だけど、
独習なら手軽に試せて結果も満足いくDelphiを 間に挟むのは良い事だと思うよ
0549デフォルトの名無しさん
NGNGbetter VBって感じですか?
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGやっぱブロック崩しはローラーでそうさせねば。
0552デフォルトの名無しさん
NGNGBCBがあるのをお忘れずに。DirectXまで考えるとBorland製品は絶対に奨められ
ないが。
ただ、RAD環境ってのは、ツールみたいな標準GUI主体のソフトには便利だが、
リアルタイムゲームみたいなプログラムにはほとんど何も助けにならないよ。
それと1よ、みんなの意見を取り入れるのはいいが、自分で思いついたアイディア
も積極的に入れていった方がいいと思うよ。実装は難しそうでもここに書いてくれ
れば、実装方法やもっと簡単な代替案なんかをアドバイスしてあげるよ。
0553デフォルトの名無しさん
NGNG俺も DirectX 使う場合には、RAD はそれほど「便利」ではないと思うけどね。
DirectX プログラミングは GDI に比べると、ちと難易度が上がる。たとえば GDI だと
バックバッファへの描画は BitBlt() を呼び出せばいいだけだが、DirectX だとこれが
タイミングによっては「失敗」することを考慮する必要がある。
#GDIでも BitBlt() が失敗する可能性はあるんだが、殆どの場合は気にしなくて大
#丈夫。
たとえば DirectDraw を使う場合、IDirectDraw7, IDirectDrawSurface7 関連のメソッド
は、すべて
1. 失敗したら
2. 再描画 (RestoreAllSurfaces()) もしくは IDirectDraw7 の再初期化
3. 失敗した処理のやり直し
ってロジックを埋めておく必要がある。
今のブロック崩しのコードのようにベタにコード中に処理を記述する形式だと確実に破
綻するので、処理を同期的に行わず一旦キューにため、エラー発生を前提にキューに
ある処理を順次処理、みたいな一段高度なアーキテクチャを要求されるよ。(DirectX
は初期化だけでも、最初は面倒だろうし)
0554デフォルトの名無しさん
NGNG> 2. 再描画 (RestoreAllSurfaces()) もしくは IDirectDraw7 の再初期化
じゃなくて
2. サーフェイスの復元 (RestoreAllSurfaces()) もしくはIDirectDraw7 の最初期化
+再描画
だな。
0555デフォルトの名無しさん
NGNGBCBはあれはコンパイルが遅いから 変更即RUNで試すというサイクルで出来ない。
RADでもDelphiの場合は自分でコンポを容易に作れるから 画面作りの効率化
はもちろん、キャラの設定なんかもキャラをコンポ化すればRAD環境で可能
必要なら、スクリプトをプロパティに設定し設計時からキャラを動き回ったりさせることだって出来る
そういうふうにコンポーネント化してゆく事でどんどん効率的になってゆく体験は大事だと思う。
0556デフォルトの名無しさん
NGNGそれはコードを書く側の問題。
VBでもCでもC++でもコードの再利用をしやすいように組む事はできる。
っていうか話し聞いてると、Delphiに浸ってたら脱初心者は無理のような気がしてくる。
もっとプログラミングそのものに浸ってから最後にDelphiでいいと思われ。
とりあえず、プログラミング入門編としてのRAD系は卒業した方がいいのでは?
0557デフォルトの名無しさん
NGNG>それと1よ、みんなの意見を取り入れるのはいいが、
>自分で思いついたアイディアも積極的に入れていった方がいいと思うよ。
>実装は難しそうでもここに書いてくれれば、
>実装方法やもっと簡単な代替案なんかをアドバイスしてあげるよ。
552さんの提案は、非常に有益だと考えます。
プログラム学習者にとってもこのスレがこういう方向に
進むことを期待します。
0558555
NGNGVBでも Cでも 確かに再利用し易いように組む事は出来る。
でも、それは独習で身につくのだろうか?
指導者がついているか、適性があり経験を重ねて身につくものだと思う
言い切っちゃうとさ、管理者居なくて独習で経験を重ねてるだけじゃ VB/Cだと悪い癖しか付かないよ
それは実際の現場見りゃ判るでしょ? 経験xx年のプログラマの作るコードがどんなものかさ
なお、Delphiでコンポを作る場面はRADじゃない。
でもその作業がスグにRADに反映してゆくから、 少しの苦労で見入りが大きい。
そういう点から学習効率がいいと思うんだ。
まあ本人の問題だから本人が決めればいいことだけどさ
0559デフォルトの名無しさん
NGNG> VBでも Cでも 確かに再利用し易いように組む事は出来る。
> でも、それは独習で身につくのだろうか?
はい。
ソフトウェアコンストラクションに関しては、管理者がいようが仕事でやろうが、本人
が勉強してコード書いて頭と身体で覚えないとダメです。RAD や周囲の環境は補助
にはなるけど、それだけで自動的にコンストラクション能力が上がるものではない。
これだけだとなんなんで、推薦図書を。推薦図書スレにも書いたので重複になるけ
ど、今の >>1 に合いそうなものを抜粋ね。
コードコンプリート―完全なプログラミングを目指して
マコネル,スティーブ ;石川 勝
アスキー (1994)ISBN:4756102107
ライティングソリッドコード―バグのないプログラミングを目指して
Steve Maguire
アスキー ISBN:4756103642
プログラミング作法
Brian Kernighan, Rob Pike
アスキー ISBN:4756136494
0561デフォルトの名無しさん
NGNG効果音がなった時、一瞬だけ描画が止まるというか
カクッとなるの、俺だけ?
0562デフォルトの名無しさん
NGNG反射のバリエーションが増えるよ。名付けてリフレクターブロック(でいいのかな?)!
あと自機を \__/ の形にするってのはどうよ。傾く角度も変わったりして。
0563超大作
NGNG15 DIM BK(40,25)
20 LOCATE 10,10:PRINT"BLOCK 崩し"
30 LOCATE 10,11:PRINT"HIT ANY KEY!"
40 IF INKEY$="" THEN GOTO 30
50 FOR I=1 TO 25:FOR J=1 TO 40:BK(J,I)=0:NEXT:NEXT
60 FOR I=3 TO 7:FOR J=2 TO 38:BK(J,I)=1:NEXT:NEXT
70 X=20:Y=23:BX=5:BY=10:BH=1:BJ=1
80 A$=INKEY$
90 LOCATE X,Y:PRINT" "
100 X=X+(A$="J" AND X>0)-(A$="L" AND X<35)
110 LOCATE BX,BY:PRINT" "
115 IF BH+BY<1 THEN BH=-BH
116 IF BJ+BX<1 OR BJ+BX>38 THEN BJ=-BJ
117 IF BK(BX+BJ,BY+BH)=1 THEN
BEEP 1:BK(BX+BJ,BY+BH)=0:BH=-BH:BEEP 0
SC=SC+1:LOCATE 30,1:PRINT SC
END IF
120 BX=BX+BJ:BY=BY+BH
125 IF BY+BH>23 THEN END
126 IF BY=Y AND ( BX=X OR BX=X+1 OR BX=X+2) THEN BEEP 1
BH=-BH
ENDIF
130 LOCATE X,Y:PRINT"---"
140 GOTO 80
はぁ、疲れた、
0564デフォルトの名無しさん
NGNGどうやってプレイしろと・・・。
0565デフォルトの名無しさん
NGNGそもそも「ブロック」であることに拘らなくてもいいのでは?
#でもそうすると「ブロック」崩しではなくなるか(w
あと、時機も「パドル」であることに拘らなくてもいいのでは?
などなどと、考えていると面白いアイデアも出てくるのでは?
例えば…
・ブロックでなくてインベーダーだとか
・時機はパドルでなくてバット(昔の野球盤風)
なんてのは?面ごとにそんな趣向を凝らしても面白いかもね。
0566ヒッキー@プログラミング
NGNGなんか面クリアと見せかけてゲームオーバーになったりしますね…。書き直します。
前のままにすると、なんか足らない気がして、最後に受けた方がいいかなぁと。
ウチでも、マウスで動かすと遅くなりました…。気付かなかった。鬱氏
ミサイルで壊すっていうのは結構いろんなブロック崩しで出てきますねー。
僕もちょっと違和感を感じます。アイテムは何かしら出したいとは思っています。
>>545
そうですね。そういう考え方もできるのか…。ご意見ありがとうございます。
なんか、人の意見を尊重しようとするあまり、自分の意思が欠けてたような
気がします。
>>546
やっぱゲームっていうジャンル上、プログラムの実装の仕方なんて、
ユーザには何も関係ないですもんね…。
面白いものを目指す事を忘れないようにしたいです。
>>547
おー、ボールの分裂の意見をくださったかたですか。
同時に飛んでいるボールの数によって点を変えるようにしたほうが
良いかもしれないですね。必然的にユーザは
ボールをいくつも出す→危険な事に挑戦するという感じで、
面白さに繋がるかもしれませんね。
ミサイルにボールが当たると動きが変わるというシステムは斬新ですねー。
参考にさせていただきます。
0567デフォルトの名無しさん
NGNG0568ヒッキー@プログラミング
NGNG手軽に試せるという風に考えると、C++に逝くよりはDelphiの方が
よさそうですね。ついでに無料みたいだし…惹かれてみたり
>>549
うーん、そうなんですかね?どうなんでしょう。
やっぱお勧めになるという事は、それなりのワケがあるんだと思います。
>>550
そういう事だったのか(藁
>>551
あー、そういえばホイールついてましたね。
関係ないけど、目の付け所がシャープですね。
>>552
やっぱウインドウ作ったりボタン作ったりってゲームにはあまり
関係ない要素ですよね。作り始めてやっと気付きましたが(w
>>実装方法やもっと簡単な代替案なんかをアドバイスしてあげるよ。
ありがとうございます。
僕も何か考えて、まずここで発表してから実装に移ろうかと思います。
0569ヒッキー@プログラミング
NGNG>>DirectX だとこれがタイミングによっては「失敗」することを考慮する必要がある。
なんかむずかしそうだ…。
キューに処理を貯めて、それを実行するって複雑そうですねー。
何の機能も無い、キューの構造を作るだけでひぃひぃ言いそうなんですが(藁
>>554
サーフェイスって、メモリ上のビットマップのことでしょうか?
>>555
コンパイルする時間ってなんかドキドキします。
たいがい、凡ミスエラーだらけなんですが…。
うーん、なんかプログラムを楽しんでできそうですねー。Delphi。
>>556
いつまでもヌルい環境に浸っていたらダメかもしれないですね。
最初、ウインドウをAPIで作ったとき、驚愕しました。
>>557
僕にとっても非常にありがたいです(藁
>>558
再利用しやすいコードって、非常に難しいです。
汎用的に書いてるつもりでも、実は他のプログラムにコピペしたら
穴だらけみたいなソースをいつも書いています…。
※なんか、全てのパターンを満たすほど意見があって、自分で取捨選択
するのが難しいんですが…。
>>559
おー、本で勉強すれば自分でもスバラシいコードが書けるように
なるもんですか。本の名前まで挙げていただいて、ありがとうございます。
>>560
思いついたら書こうと思います。
>>561
APIの呼び出し方が間違っているのか、ウチでも、ノートPCでやると
カクカクします…。
>>562
プログラム的に非常に勉強になりそうですねー。
やってみたいけれど、ちょっとまだ難しいかも…。勉強します。
0570ヒッキー@プログラミング
NGNG何の機種用のBASICなんでしょうか(藁
BEEP 1ってどっかで見たような…
>>564
PC98をおもむろに起動するとか…
>>565
自機がバットって…ワラタ。
殻をぶち破る勢いのある発想ですねー。参考になります。
>>567
そうしたいと思ってはいるんですよ。
0571デフォルトの名無しさん
NGNGつーか、そもそもインベーダーゲームってのはそういう発想で生まれたはず。
0572デフォルトの名無しさん
NGNGJavaってよくオワッテル言語と聞くのですが
皆さんはなぜ勧めるの?
0573デフォルトの名無しさん
NGNGオワッテル人たちが言っているに過ぎないため。
0574デフォルトの名無しさん
NGNGメンバー集めないと廃部になるJava倶楽部。
0575:デフォルトの名無しさん
NGNG徐々に成長していって、面白かったよ。
これからも頑張れよ。まじで
0576デフォルトの名無しさん
NGNG0577名無し
NGNGJava倶楽部が廃部になったら、どこ行きます?
0578デフォルトの名無しさん
NGNG自分だけ被害者になるのが嫌なので
初心者も巻き添えにしてやろうってことです。
0579572
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG今までずっと囲碁をやって来て、囲碁部がつぶれたから、
じゃあ将棋部へなんて無理だろ
って、俺は574じゃないが
0582デフォルトの名無しさん
NGNGだから、ずっと囲碁やってて囲碁部がつぶれたらどこ行くの?
0583572
NGNG喧嘩はしないで―
0584デフォルトの名無しさん
NGNG全国行脚に出る
0585デフォルトの名無しさん
NGNGネット囲碁。
0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGすけさんを
わすれずにね
0588ヒッキー@プログラミング
NGNG>>571
そうなんですか?ほおほお。
>>575
ういー。がんばります。
0589デフォルトの名無しさん
NGNG趣味ならその時好きなことをすればよい
趣味は酔狂なほどたのしい
0590589
NGNG0591デフォルトの名無しさん
NGNG伊達や酔狂も程々にな。
0593デフォルトの名無しさん
NGNGというか今主流の言語を語れる人って居るのかな。
このスレならゲームに使われてるものか・・・・
実際このゲームはこうで・・・・とか。
ハーフライフとかKohanて奴がModに対応してるとか聞いたんですが。
そのModってなんなんですか?
3D系ならともかくKohanてゲームはリアルタイムストラテジーなんですが
何となくは解るんですが、実際Mod作ったりしてるプログラマって
いるんですかね?日本に。
CSとかとてもアマチュアが作ったとは思えない出来なんだけれど。
0594デフォルトの名無しさん
NGNGスレ違い。googleでも行くがよろし。
0595デフォルトの名無しさん
NGNGゲーム作りにはそれが障害になりうる。また文法が緩く、入門者
は早期に移動しないと悪癖が見に付き易い。
DLLの利用は出来るが、一般的なDLLは作れない。
Delphi APIも直接叩ける、インラインアセンブラも使える。 DLLも作成出来
COM/ActiveXも作成出来る。 Linux用にはKylixもある。
文法は厳しく、制御構造もVBより少ない。 またbegin/endのような
書き方が冗長に見えるが、それが逆に冗長でないコードの書き方を
促進しているともいえる。 ポインタと配列も完全に区別されており、
初心者の入門言語としては良い。 さらにコンポーネント志向とも言
えるその設計スタイルは上級者になっても利用出来、かつ他言語
でも応用可能な身に付けてよいスタイルである。
ただし、多くのSDKがCスタイルで提供されており、最新技術を利用
したい場合は両方に通じていなければならない。 その移植の手間
もDIYとなるのが苦痛な面もある。
Java 基本的にはハードは直接叩けない=制限が多い (MSのは別にして)
しかし、ブロック崩し程度なら障害にはならない。
開発環境としてRADもあるが、 VB/Delphiに比べると貧弱
RADでない環境の足がかりとして良い
C/C++ windowsでは多くのSDKはほぼ C/C++ 特にVCで提供されており
最低読めなければならない必須言語である。
しかし入門時からどっぷり漬かると、
配列とポインタの混同に始まり、豊富なサンプルコードの為に逆に
コードコピペの癖やアルゴリズムのSTL依存病、などの症状にも
かかりやすい
0596デフォルトの名無しさん
NGNGガムバレ
■ このスレッドは過去ログ倉庫に格納されています