トップページ⇒tech
1001コメント253KB

VIPPERでもわかるプログラミング 2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/12/01(木) 21:02:20
点プレは>>2-5あたり


0446デフォルトの名無しさん2005/12/07(水) 01:52:23
Baseがパラメータなら、派生じゃなくてPlayerの内部に持つんじゃね
0447デフォルトの名無しさん2005/12/07(水) 01:56:11
>>445
いろいろ方法はあると思うけど
攻撃力をメンバ変数じゃなくてプロパティにするのがわかりやすいと思う

プロパティを読み出そうとすると、真の攻撃力を見たり装備品を見たりして
現在の攻撃力を計算して返す
0448デフォルトの名無しさん2005/12/07(水) 02:01:52
>>442
武器クラスなんてプレイヤキャラクタと全く同じでかまわん
キャラのステータスも武器のステータスも平等にプレイヤーの持ち物

どうせ武器だって魔法使ったり特殊攻撃させるんだろ?
武器とキャラクタの特徴の差を説明できないなら別クラスにする意味がない
アイテムも含めて全て並列に扱う
0449デフォルトの名無しさん2005/12/07(水) 02:04:00
>>445
…ん?
ステータスがprivateってことは派生クラスから見るのにメソッドかプロパティ使うのか
質問する時はまず言語からだな

固有な能力ってHP増加とかのことか?
パラメータを現在(装備あり)、通常(装備あり)、標準(装備なし)の3つ用意するとかでなんとかならん?
装備が変わったら標準から通常を再計算とか
0450デフォルトの名無しさん2005/12/07(水) 02:17:32
なんかいっぱいレスがついてるお
>>444さんのみると
派生じゃなくBaseもItemとかも全てクラスにしちゃって内部に持っちゃう
ってのが簡単そう?とりあえず実際に自分で書いてみないと分からんです

本格的に作ってるわけじゃなくC++の基礎を一通りやって実際に
なんかを書いてみようって思ったんだけど難しいお。
最終的にはコンソールでいいから戦闘みたいなのまで行ってみようとか思ったけど
しょっぱなつまずいとるですよ。
ただここ見てるだけでもみんなそれぞれにやり方がありそう(;´Д`)

とりあえず書いてみる有難う!
0451デフォルトの名無しさん2005/12/07(水) 02:18:40
>>447に補足
つまり各アイテムには「攻撃力へのボーナス」「守りへのボーナス」
「HPへのボーナス」等を表すプロパティをインタフェースとして用意しておいて

プレーヤの(現在の)攻撃力を知りたいときは、プレーヤの
「現在の攻撃力」プロパティを参照すると、内部で各アイテムやその他
攻撃力に寄与する可能性のあるものたちの「攻撃力へのボーナス」を
順次参照してくると。
0452デフォルトの名無しさん2005/12/07(水) 02:27:28
>>450
多分最初はこったことを考えないで
目に見える「物」をそのままオブジェクトにするのが
自分にも他人にも分かりやすいと思うし作りやすいと思うよ

クラスも素朴に考えて目に見える「物の種類」で作ればいい
どうせ大きなプログラムでもないし一人でやってるんだから
作ってて不便だと思ったらあとから色々変えたらいいんだし

つーか最初は攻撃力上昇とかアイテムの特殊能力がとか
色々ややこしいことを考えないで、アホみたいにシンプルなやつを
一つ完成させてみれば次に作る時は感じが分かると思う
0453デフォルトの名無しさん2005/12/07(水) 02:39:20
C++風に書くと
class キャラクタ { ... };
class プレイヤ : public キャラクタ { ... };
class アイテム {
public:
virtual bool 装備できる?(プレイヤ p) = 0; // 職業とかレベル判定する
virtual void 装備する(プレイヤ p) = 0; // 現在パラメータを調整する
virtual bool 装備解除できる?() = 0; // 呪われてたらfalseで

virtual bool 使用できる?() = 0; // 対象を指定しないで使用できるか判定する
virtual void 使用する() = 0; // 対象を指定しないで使用する
virtual bool 使用できる?(キャラクタ c) = 0; // 対象を指定して使用できるか判定する
virtual void 使用する(キャラクタ c) = 0; // 対象を指定して使用する
};
C#とかなら判定のところはプロパティにする
0454デフォルトの名無しさん2005/12/07(水) 02:44:42
あーC++ってプロパティ無いのかww
0455デフォルトの名無しさん2005/12/07(水) 02:51:03
え、あるんじゃね?
0456デフォルトの名無しさん2005/12/07(水) 02:55:23
じゃpublicメンバ変数にする
0457・∀・)っ-●○◎- ◆Pu/ODYSSEY 2005/12/07(水) 02:59:47
無いよ。
勝手は悪いがアクセサを作るしかないです。
0458デフォルトの名無しさん2005/12/07(水) 03:45:33
BCBのプロパティは独自拡張
0459デフォルトの名無しさん2005/12/07(水) 03:48:41
うはwwwC++標準装備だと思ってたwwwwwwww
0460デフォルトの名無しさん2005/12/07(水) 06:46:55
あ き ら め ま し たwwww

みなさん、ありがとおwwwwww
0461デフォルトの名無しさん2005/12/07(水) 06:49:13
>>460
うはwwww乙wwwwwwwwwww
0462デフォルトの名無しさん2005/12/07(水) 07:34:12
糸冬
0463デフォルトの名無しさん2005/12/07(水) 07:40:22
>>460
wwwwwwwwwww
0464デフォルトの名無しさん2005/12/07(水) 09:17:06
>>460
乙>(:D)| ̄|_
0465デフォルトの名無しさん2005/12/07(水) 12:11:59
HSP超簡単
一行でGUIのHello World作れるヨ
0466デフォルトの名無しさん2005/12/07(水) 12:23:29
>>465
perlでもなんでもかけるだろ
0467デフォルトの名無しさん2005/12/07(水) 12:40:56
CUIしか書けないだろ
0468デフォルトの名無しさん2005/12/07(水) 12:53:32
perlでGUI扱えるよ
0469デフォルトの名無しさん2005/12/07(水) 12:57:11
キモオタでも彼女できるよ
0470デフォルトの名無しさん2005/12/07(水) 12:58:35
HSP超簡単
一行でGUIのHello Worldのバイナリ作れるヨ
0471vip のためのプログラミング講座2005/12/07(水) 13:03:20

vipper の行動は非常に単純と言える。
以下に示すようなゴミを internet 上に大量に撒き散らす。
秘密の文字列 4 に、意味不明な、'w' という文字が大量に含まれている。

------------------------
↓↓↓↓↓↓↓↓↓↓↓↓
秘密のコード
↑↑↑↑↑↑↑↑↑↑↑↑
------------------------
int main(void)
{
------------------------
↓↓↓↓↓↓↓↓↓↓↓↓
秘密のコード
↑↑↑↑↑↑↑↑↑↑↑↑
------------------------
  fprintf(p_ftcp, "PUT %s\n", 秘密の文字列 1);
  fprintf(p_ftcp, "Cookie: %s\n", 秘密の文字列 2);
  fprintf(p_ftcp, "Content-Length: %d\n\n", 秘密の文字列 3);
  fprintf(p_ftcp, "%s", 秘密の文字列 4);
------------------------
↓↓↓↓↓↓↓↓↓↓↓↓
秘密のコード
↑↑↑↑↑↑↑↑↑↑↑↑
------------------------
  return 0;
}

0472デフォルトの名無しさん2005/12/07(水) 13:37:47
HSPマジ最強
http://gvtrademap.daa.jp/
HSP製↑
0473デフォルトの名無しさん2005/12/07(水) 16:02:08
perlでGUI扱えるよ
うん
普通に
0474デフォルトの名無しさん2005/12/07(水) 16:09:20
2chはPerlとCか
0475デフォルトの名無しさん2005/12/07(水) 16:10:42
unkoぷひぷひ
0476デフォルトの名無しさん2005/12/07(水) 16:11:19
だよね
わかるわかる
0477デフォルトの名無しさん2005/12/07(水) 16:12:05
>>473-476全部僕でした。すみません。
0478デフォルトの名無しさん2005/12/07(水) 16:12:43
>>477
だろうな
0479デフォルトの名無しさん2005/12/07(水) 16:14:01
>>473-476は俺のはずなんだがお前は一体誰だ
0480デフォルトの名無しさん2005/12/07(水) 16:14:26
>>473-479ぜんぶ僕です
0481デフォルトの名無しさん2005/12/07(水) 16:16:40
>>1-1000ぜんぶ僕です
0482デフォルトの名無しさん2005/12/07(水) 16:17:27
#include <stdio.h> 

int main(void) { 
    FILE *readF,*writeF; 
    int c1,i; 
    char c2[]="&nbsp;",c3[]="&amp;"; 

    if(!(readF=fopen("a.txt","rb"))) return 0; 
    if(!(writeF=fopen("b.txt","wb"))) return 0; 

    while((c1=fgetc(readF))!=EOF) { 
        if(c1=='\x20') { 
            fputs(c2,writeF); 
        } else if(c1=='\t') { 
            for(i=0;i<4;i++) fputs(c2,writeF); 
        } else if(c1=='&') { 
            fputs(c3,writeF); 
        } else { 
            fputc(c1,writeF); 
        } 
    } 

    return 0; 
} 

僕が昨日つくったこれ、誰も利用してないじゃない
SDK使ってGUI版でも作ってみようかな
0483デフォルトの名無しさん2005/12/07(水) 16:20:22
HSPはこども向けだろ
0484デフォルトの名無しさん2005/12/07(水) 16:25:44
やっぱやーめっち
CUI版だけで十分だろうし
ぷっぷ
0485デフォルトの名無しさん2005/12/07(水) 16:32:29
混じれ酢すっと、タブストップ位置を考慮してないんであんま使えない&Windowsでコンソールアプリは無いだろ。

Jane派生ブラウザとかでダイレクトに加工できるのがベスト。
ローカルで動くプロクシとして実装するのが一番移植性も高くてスマートなのかな。
プログラム技術板へのPOSTだけTABやスペースを&nbsp;に加工して送る。これでOK。

本文に何かキーワード書いたら登録済みのAAと置換して送信する機能とかも面白そう(完全に荒らしツールだな
0486デフォルトの名無しさん2005/12/07(水) 16:36:03
GUI、GUIっていってるやつはWideStudio使え。
0487デフォルトの名無しさん2005/12/07(水) 16:41:28
> 本文に何かキーワード書いたら登録済みのAAと置換して送信する機能
Jane系の幾つかの2chブラウザでは既に実装されている罠 (ReplaceStr.txt)。
0488デフォルトの名無しさん2005/12/07(水) 16:43:27
話がずれるけどJane系のaalist.txtって
一々「メモ帳」開いて登録しなきゃいけないの不便なんだけど
誰か外部コマンドかなんかで「これをaalistに登録」とかって
作ってる奴いない?
0489デフォルトの名無しさん2005/12/07(水) 16:46:01
え?それって受信のほうだろ?
0490デフォルトの名無しさん2005/12/07(水) 16:46:46
>>488
GikoAppendのコード見れば簡単に作れそう。
0491デフォルトの名無しさん2005/12/07(水) 16:48:22
>混じれ酢すっと、タブストップ位置を考慮してないんであんま使えない&Windowsでコンソールアプリは無いだろ。
そもそもそんな状況ないだろ
n*Nで表現できる場合が圧倒的に多い
0492デフォルトの名無しさん2005/12/07(水) 16:50:17
それじゃあGUI版つくろうかな
先頭の半角以外の半角はそのままにして、タブストップ位置を計算するようにしようかな
0493デフォルトの名無しさん2005/12/07(水) 16:53:02
>>491
構造体の初期化のときとか
んじゃ作ってきます
0494デフォルトの名無しさん2005/12/07(水) 16:53:35
>>488
クリップボード系のツールで出来そうな予感
0495デフォルトの名無しさん2005/12/07(水) 16:56:01
http://tidy.sourceforge.net/cgi-bin/lxr/source/console/tab2space.c

タブ→スペースの変換は既にあるし
あとはnbspに置換するだけだろこれ。
04964922005/12/07(水) 17:00:31
やっぱだるいからやめます
0497デフォルトの名無しさん2005/12/07(水) 17:15:57
CUI激しく使えないwクオリティヒクスwwwwww
HSPなら一行だけでイヤでもGUIになるのにっっっっwww
コンソールオタクはキモイwwwwLinuxでも使ってろwwww
0498デフォルトの名無しさん2005/12/07(水) 17:17:42
カワイソス・・・・
0499デフォルトの名無しさん2005/12/07(水) 17:25:00
CUIを攻めないであげてください
05004922005/12/07(水) 17:25:03
C使いの僕はCUIもGUIも扱えるけど、君はGUIだけしか扱えないもんね^^^
0501デフォルトの名無しさん2005/12/07(水) 17:28:15
最近は釣りのレベルが低い
0502デフォルトの名無しさん2005/12/07(水) 17:28:56
とっとこハードゲイ太郎「せいせいせいなのだ〜CUIとGUIを使い分けるのが大事なのだ〜フォー!」
0503デフォルトの名無しさん2005/12/07(水) 17:29:24
>501は釣り
0504デフォルトの名無しさん2005/12/07(水) 17:29:34
プギャーGUIしか使えねぇとかテラクオリティヒクスwwwwww
そんなにGUI好きならクリックだけで生きてけよwwwwwww
0505デフォルトの名無しさん2005/12/07(水) 17:30:52
煽り乙
0506デフォルトの名無しさん2005/12/07(水) 17:33:58
みずきがいないと寂しいもんだな
0507デフォルトの名無しさん2005/12/07(水) 17:46:10
みずき(17歳♀)「みんな、ひっさしぶり〜っ!元気にしてたーっ?!」
0508デフォルトの名無しさん2005/12/07(水) 17:47:47
このスレ、俺の書き込みばっか
0509デフォルトの名無しさん2005/12/07(水) 18:56:04
Windows API でダブルバッファリングしてアニメーションを極めたいんだけど
なんか残像ていうか、進行方向に滲んでカクカクするお
このやりかたじゃまずいですか?それともこんなもんなの?
http://www.vipper.org/vip154063.zip.html
0510・∀・)っ-●○◎- ◆Pu/ODYSSEY 2005/12/07(水) 19:08:03
>>509
ヒント:液晶ディスプレイ
0511デフォルトの名無しさん2005/12/07(水) 19:13:52
>>510
マジだ、、、
CRT借りて実行したらスムーズに動いたあ><
全然デバイスインデペンデントじゃないお><
0512デフォルトの名無しさん2005/12/07(水) 19:14:02
>>509
ちゃんとできてるんじゃないの
0513デフォルトの名無しさん2005/12/07(水) 19:15:04
うちの液晶だとスムーズだけどな…
0514デフォルトの名無しさん2005/12/07(水) 19:20:25
>>512
できてますか?
Win32 API 複雑で頭痛いです><
>>513
安液晶なもんで、、、
0515デフォルトの名無しさん2005/12/07(水) 19:30:50
うちもノートパソコンの液晶だけど
きれいに動いてるよ
0516デフォルトの名無しさん2005/12/07(水) 19:33:22
液晶でも動いてるけど
0517デフォルトの名無しさん2005/12/07(水) 19:37:29
クロック数とかビデオカードのせいかな?
0518デフォルトの名無しさん2005/12/07(水) 19:38:06
液晶の応答速度だろ
05195092005/12/07(水) 19:40:20
む、俺のヘボい液晶を除けば大抵の環境でおkみたいですね。
25msとかいう最安値のを買った俺のミスか
0520デフォルトの名無しさん2005/12/07(水) 19:42:30
みずきってツンデレ学級委員長だったよな?
0521みずき ◆WnmizUKIg6 NGNG
べ、別にプレイしている人の笑顔が見たくて
ゲーム作ってるんじゃないんだから
0522デフォルトの名無しさん2005/12/07(水) 19:47:28
>>509
おお、クオリティたかす。
うちのノートでも普通に見れたよん。

そのプログラムはボール個別のスピードが違ってもめりこみとか発生しないん?
0523・∀・)っ-●○◎- ◆Pu/ODYSSEY 2005/12/07(水) 19:52:46
単純な円形と長方形が一番衝突判定しやすいんだよね

完全弾性衝突っぽいので単純にオーバーした分戻せばいいはず。
てか、元ネタはかなり有名なコードだと思うけど。
05245092005/12/07(水) 19:54:11
>>522
ちょっとインチキしてて、ボールの速度はみんな同じなんですw
壁へのめりこみは、衝突判定のところで起こらないように処理してます。
ていうか、追突気味にぶつかった時のふるまいがちょと不自然。
0525デフォルトの名無しさん2005/12/07(水) 19:58:17
>>524
そですか。
じゃあ次は速度可変、大きさ可変、
めり込み無しのヤツをきぼんしとく。
0526デフォルトの名無しさん2005/12/07(水) 19:58:25
>>521
おまえ、作ったモンねーだろ
0527デフォルトの名無しさん2005/12/07(水) 20:00:47
>>509
勉強のためにソース読もうと思ったが規格化された法線ベクトルってのがワカラナス(´・ω・)
法線ベクトルって確か運動方向に鉛直な奴だっけ?
05285092005/12/07(水) 20:03:39
>>525
ちょwwwうはwwwwwwwやるおやるお三三⊂二二二( ^ω^)二⊃ブーン
>>527
ぶつかったときに、2つの円の接線ができるじゃないですか。
あれに垂直な線のことです。
円の中心を結んだ線でもおk
0529デフォルトの名無しさん2005/12/07(水) 20:11:21
HSPでテキスト置換ダイアログボックス表示したくてWinAPIやってるんだけど
よくわからないけどReplaceTextが動かない


#uselib "comdlg32.dll"
#func FindText "FindTextA" sptr
#func ReplaceText "ReplaceTextA" sptr

sdim search_str,1024
sdim Replace_str,1024

sdim FINDREPLACE,4*8
lpoke FINDREPLACE,4*0,0x20
lpoke FINDREPLACE,4*1,hwnd
lpoke FINDREPLACE,4*2,hInstance
lpoke FINDREPLACE,4*3,0x00000000;flag
lpoke FINDREPLACE,4*4,varptr(search_str)
lpoke FINDREPLACE,4*5,varptr(Replace_str)
lpoke FINDREPLACE,4*6,1024
lpoke FINDREPLACE,4*7,1024
ReplaceText varptr(FINDREPLACE)
asdf=stat


助けて
0530デフォルトの名無しさん2005/12/07(水) 20:12:09
Cの僕には無関係です(^ω^
0531デフォルトの名無しさん2005/12/07(水) 20:15:16
>>528
�dクス、それじゃちょっと読んでみるお( ^ω^)
0532デフォルトの名無しさん2005/12/07(水) 20:54:10
HSP久々wwww

#uselib "comdlg32.dll"
#func FindText "FindTextA" sptr
#func ReplaceText "ReplaceTextA" sptr

dim search_str,1024
dim Replace_str,1024

dim fr,10
fr(0)=40
fr(1)=hwnd
fr(2)=hinstance
fr(3)=0
fr(4)=varptr(search_str)
fr(5)=varptr(Replace_str)
fr(6)=0x04000400
fr(7)=0
fr(8)=0
fr(9)=0
ReplaceText varptr(fr)
asdf=stat
mes asdf
0533デフォルトの名無しさん2005/12/07(水) 20:57:15
>>509
こんな小さいプログラムでアニメーションとかできるんだね。
俺も勉強しよ。
0534デフォルトの名無しさん2005/12/07(水) 20:59:57
>>532
すごくタイムリーですが更新押す前に自己解決してました。

でもfr(0)が40になるのかがよくわからない
0535デフォルトの名無しさん2005/12/07(水) 21:00:56
>>534
合計40バイトww
WORD=2バイトだおwww
05363382005/12/07(水) 21:07:39
コンパイルエラーでないのに実行したら落ちるorzもうワケワカランね。
0537デフォルトの名無しさん2005/12/07(水) 21:08:19
GUIならC#マジオススメ
0538デフォルトの名無しさん2005/12/07(水) 21:10:34
>>537
配布に困る
0539デフォルトの名無しさん2005/12/07(水) 21:11:05
>>535
正直詰め込みすぎでこんがらがってる、明日になれば理解できてると思う
本当にありがとうございました
0540デフォルトの名無しさん2005/12/07(水) 21:11:20
>>538
そこでHSP!
0541デフォルトの名無しさん2005/12/07(水) 21:12:38
mes "Hello World!"

メニュー→HSP(P)→コンパイル+実行(C)   F5

うはwwwww簡単過ぎwwwwww
0542デフォルトの名無しさん2005/12/07(水) 21:25:14
HSPってインタプリタ言語なん?
0543みずき ◆WnmizUKIg6 NGNG
>>542
簡単に覚えられる強力な命令セット
高速な動作をするインタプリタを搭載
エディタ付属ですぐに使い始めることができます
作ったプログラムは自由に再配布が可能、ライセンス料も不要です
拡張プラグイン・モジュールにより数多くの機能を追加可能です
7年以上に渡る多くのユーザー資産と使用実績があります
詳細なマニュアルとリファレンスヘルプシステムを装備
プログラミング初心者にも敷居の低いシンプル設計と操作
インタプリタならではの豊富なデバッグ支援システムを装備
0544デフォルトの名無しさん2005/12/07(水) 21:31:01
exe1個で配布できるw
デバッグモードでインタプリタみたいに実行できるおww
0545デフォルトの名無しさん2005/12/07(水) 21:32:41
マジオススメww
スクリプト保存して
メニュー→HSP(P)→実行ファイル自動作成  Ctrl+F9
すれば同じフォルダにexeできるww
■ このスレッドは過去ログ倉庫に格納されています