VIPPERでもわかるプログラミング 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/12/01(木) 21:02:200446デフォルトの名無しさん
2005/12/07(水) 01:52:230447デフォルトの名無しさん
2005/12/07(水) 01:56:11いろいろ方法はあると思うけど
攻撃力をメンバ変数じゃなくてプロパティにするのがわかりやすいと思う
プロパティを読み出そうとすると、真の攻撃力を見たり装備品を見たりして
現在の攻撃力を計算して返す
0448デフォルトの名無しさん
2005/12/07(水) 02:01:52武器クラスなんてプレイヤキャラクタと全く同じでかまわん
キャラのステータスも武器のステータスも平等にプレイヤーの持ち物
どうせ武器だって魔法使ったり特殊攻撃させるんだろ?
武器とキャラクタの特徴の差を説明できないなら別クラスにする意味がない
アイテムも含めて全て並列に扱う
0449デフォルトの名無しさん
2005/12/07(水) 02:04:00…ん?
ステータスがprivateってことは派生クラスから見るのにメソッドかプロパティ使うのか
質問する時はまず言語からだな
固有な能力ってHP増加とかのことか?
パラメータを現在(装備あり)、通常(装備あり)、標準(装備なし)の3つ用意するとかでなんとかならん?
装備が変わったら標準から通常を再計算とか
0450デフォルトの名無しさん
2005/12/07(水) 02:17:32>>444さんのみると
派生じゃなくBaseもItemとかも全てクラスにしちゃって内部に持っちゃう
ってのが簡単そう?とりあえず実際に自分で書いてみないと分からんです
本格的に作ってるわけじゃなくC++の基礎を一通りやって実際に
なんかを書いてみようって思ったんだけど難しいお。
最終的にはコンソールでいいから戦闘みたいなのまで行ってみようとか思ったけど
しょっぱなつまずいとるですよ。
ただここ見てるだけでもみんなそれぞれにやり方がありそう(;´Д`)
とりあえず書いてみる有難う!
0451デフォルトの名無しさん
2005/12/07(水) 02:18:40つまり各アイテムには「攻撃力へのボーナス」「守りへのボーナス」
「HPへのボーナス」等を表すプロパティをインタフェースとして用意しておいて
プレーヤの(現在の)攻撃力を知りたいときは、プレーヤの
「現在の攻撃力」プロパティを参照すると、内部で各アイテムやその他
攻撃力に寄与する可能性のあるものたちの「攻撃力へのボーナス」を
順次参照してくると。
0452デフォルトの名無しさん
2005/12/07(水) 02:27:28多分最初はこったことを考えないで
目に見える「物」をそのままオブジェクトにするのが
自分にも他人にも分かりやすいと思うし作りやすいと思うよ
クラスも素朴に考えて目に見える「物の種類」で作ればいい
どうせ大きなプログラムでもないし一人でやってるんだから
作ってて不便だと思ったらあとから色々変えたらいいんだし
つーか最初は攻撃力上昇とかアイテムの特殊能力がとか
色々ややこしいことを考えないで、アホみたいにシンプルなやつを
一つ完成させてみれば次に作る時は感じが分かると思う
0453デフォルトの名無しさん
2005/12/07(水) 02:39:20class キャラクタ { ... };
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:420455デフォルトの名無しさん
2005/12/07(水) 02:51:030456デフォルトの名無しさん
2005/12/07(水) 02:55:230457・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/07(水) 02:59:47勝手は悪いがアクセサを作るしかないです。
0458デフォルトの名無しさん
2005/12/07(水) 03:45:330459デフォルトの名無しさん
2005/12/07(水) 03:48:410460デフォルトの名無しさん
2005/12/07(水) 06:46:55みなさん、ありがとおwwwwww
0461デフォルトの名無しさん
2005/12/07(水) 06:49:13うはwwww乙wwwwwwwwwww
0462デフォルトの名無しさん
2005/12/07(水) 07:34:120463デフォルトの名無しさん
2005/12/07(水) 07:40:22wwwwwwwwwww
0464デフォルトの名無しさん
2005/12/07(水) 09:17:06乙>(:D)| ̄|_
0465デフォルトの名無しさん
2005/12/07(水) 12:11:59一行でGUIのHello World作れるヨ
0466デフォルトの名無しさん
2005/12/07(水) 12:23:29perlでもなんでもかけるだろ
0467デフォルトの名無しさん
2005/12/07(水) 12:40:560468デフォルトの名無しさん
2005/12/07(水) 12:53:320469デフォルトの名無しさん
2005/12/07(水) 12:57:110470デフォルトの名無しさん
2005/12/07(水) 12:58:35一行でGUIのHello Worldのバイナリ作れるヨ
0471vip のためのプログラミング講座
2005/12/07(水) 13:03:20vipper の行動は非常に単純と言える。
以下に示すようなゴミを 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:47http://gvtrademap.daa.jp/
HSP製↑
0473デフォルトの名無しさん
2005/12/07(水) 16:02:08うん
普通に
0474デフォルトの名無しさん
2005/12/07(水) 16:09:200475デフォルトの名無しさん
2005/12/07(水) 16:10:420476デフォルトの名無しさん
2005/12/07(水) 16:11:19わかるわかる
0477デフォルトの名無しさん
2005/12/07(水) 16:12:050478デフォルトの名無しさん
2005/12/07(水) 16:12:43だろうな
0479デフォルトの名無しさん
2005/12/07(水) 16:14:010480デフォルトの名無しさん
2005/12/07(水) 16:14:260481デフォルトの名無しさん
2005/12/07(水) 16:16:400482デフォルトの名無しさん
2005/12/07(水) 16:17:27int main(void) {
FILE *readF,*writeF;
int c1,i;
char c2[]=" ",c3[]="&";
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:220484デフォルトの名無しさん
2005/12/07(水) 16:25:44CUI版だけで十分だろうし
ぷっぷ
0485デフォルトの名無しさん
2005/12/07(水) 16:32:29Jane派生ブラウザとかでダイレクトに加工できるのがベスト。
ローカルで動くプロクシとして実装するのが一番移植性も高くてスマートなのかな。
プログラム技術板へのPOSTだけTABやスペースを に加工して送る。これでOK。
本文に何かキーワード書いたら登録済みのAAと置換して送信する機能とかも面白そう(完全に荒らしツールだな
0486デフォルトの名無しさん
2005/12/07(水) 16:36:030487デフォルトの名無しさん
2005/12/07(水) 16:41:28Jane系の幾つかの2chブラウザでは既に実装されている罠 (ReplaceStr.txt)。
0488デフォルトの名無しさん
2005/12/07(水) 16:43:27一々「メモ帳」開いて登録しなきゃいけないの不便なんだけど
誰か外部コマンドかなんかで「これをaalistに登録」とかって
作ってる奴いない?
0489デフォルトの名無しさん
2005/12/07(水) 16:46:010490デフォルトの名無しさん
2005/12/07(水) 16:46:46GikoAppendのコード見れば簡単に作れそう。
0491デフォルトの名無しさん
2005/12/07(水) 16:48:22そもそもそんな状況ないだろ
n*Nで表現できる場合が圧倒的に多い
0492デフォルトの名無しさん
2005/12/07(水) 16:50:17先頭の半角以外の半角はそのままにして、タブストップ位置を計算するようにしようかな
0493デフォルトの名無しさん
2005/12/07(水) 16:53:02構造体の初期化のときとか
んじゃ作ってきます
0494デフォルトの名無しさん
2005/12/07(水) 16:53:35クリップボード系のツールで出来そうな予感
0495デフォルトの名無しさん
2005/12/07(水) 16:56:01タブ→スペースの変換は既にあるし
あとはnbspに置換するだけだろこれ。
0496492
2005/12/07(水) 17:00:310497デフォルトの名無しさん
2005/12/07(水) 17:15:57HSPなら一行だけでイヤでもGUIになるのにっっっっwww
コンソールオタクはキモイwwwwLinuxでも使ってろwwww
0498デフォルトの名無しさん
2005/12/07(水) 17:17:420499デフォルトの名無しさん
2005/12/07(水) 17:25:000500492
2005/12/07(水) 17:25:030501デフォルトの名無しさん
2005/12/07(水) 17:28:150502デフォルトの名無しさん
2005/12/07(水) 17:28:560503デフォルトの名無しさん
2005/12/07(水) 17:29:240504デフォルトの名無しさん
2005/12/07(水) 17:29:34そんなにGUI好きならクリックだけで生きてけよwwwwwww
0505デフォルトの名無しさん
2005/12/07(水) 17:30:520506デフォルトの名無しさん
2005/12/07(水) 17:33:580507デフォルトの名無しさん
2005/12/07(水) 17:46:100508デフォルトの名無しさん
2005/12/07(水) 17:47:470509デフォルトの名無しさん
2005/12/07(水) 18:56:04なんか残像ていうか、進行方向に滲んでカクカクするお
このやりかたじゃまずいですか?それともこんなもんなの?
http://www.vipper.org/vip154063.zip.html
0510・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/07(水) 19:08:03ヒント:液晶ディスプレイ
0511デフォルトの名無しさん
2005/12/07(水) 19:13:52マジだ、、、
CRT借りて実行したらスムーズに動いたあ><
全然デバイスインデペンデントじゃないお><
0512デフォルトの名無しさん
2005/12/07(水) 19:14:02ちゃんとできてるんじゃないの
0513デフォルトの名無しさん
2005/12/07(水) 19:15:040514デフォルトの名無しさん
2005/12/07(水) 19:20:25できてますか?
Win32 API 複雑で頭痛いです><
>>513
安液晶なもんで、、、
0515デフォルトの名無しさん
2005/12/07(水) 19:30:50きれいに動いてるよ
0516デフォルトの名無しさん
2005/12/07(水) 19:33:220517デフォルトの名無しさん
2005/12/07(水) 19:37:290518デフォルトの名無しさん
2005/12/07(水) 19:38:060519509
2005/12/07(水) 19:40:2025msとかいう最安値のを買った俺のミスか
0520デフォルトの名無しさん
2005/12/07(水) 19:42:300521みずき ◆WnmizUKIg6
NGNGゲーム作ってるんじゃないんだから
0522デフォルトの名無しさん
2005/12/07(水) 19:47:28おお、クオリティたかす。
うちのノートでも普通に見れたよん。
そのプログラムはボール個別のスピードが違ってもめりこみとか発生しないん?
0523・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/07(水) 19:52:46完全弾性衝突っぽいので単純にオーバーした分戻せばいいはず。
てか、元ネタはかなり有名なコードだと思うけど。
0524509
2005/12/07(水) 19:54:11ちょっとインチキしてて、ボールの速度はみんな同じなんですw
壁へのめりこみは、衝突判定のところで起こらないように処理してます。
ていうか、追突気味にぶつかった時のふるまいがちょと不自然。
0525デフォルトの名無しさん
2005/12/07(水) 19:58:17そですか。
じゃあ次は速度可変、大きさ可変、
めり込み無しのヤツをきぼんしとく。
0526デフォルトの名無しさん
2005/12/07(水) 19:58:25おまえ、作ったモンねーだろ
0527デフォルトの名無しさん
2005/12/07(水) 20:00:47勉強のためにソース読もうと思ったが規格化された法線ベクトルってのがワカラナス(´・ω・)
法線ベクトルって確か運動方向に鉛直な奴だっけ?
0528509
2005/12/07(水) 20:03:39ちょwwwうはwwwwwwwやるおやるお三三⊂二二二( ^ω^)二⊃ブーン
>>527
ぶつかったときに、2つの円の接線ができるじゃないですか。
あれに垂直な線のことです。
円の中心を結んだ線でもおk
0529デフォルトの名無しさん
2005/12/07(水) 20:11:21よくわからないけど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:090531デフォルトの名無しさん
2005/12/07(水) 20:15:16�dクス、それじゃちょっと読んでみるお( ^ω^)
0532デフォルトの名無しさん
2005/12/07(水) 20:54:10#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こんな小さいプログラムでアニメーションとかできるんだね。
俺も勉強しよ。
0534デフォルトの名無しさん
2005/12/07(水) 20:59:57すごくタイムリーですが更新押す前に自己解決してました。
でもfr(0)が40になるのかがよくわからない
0535デフォルトの名無しさん
2005/12/07(水) 21:00:56合計40バイトww
WORD=2バイトだおwww
0536338
2005/12/07(水) 21:07:390537デフォルトの名無しさん
2005/12/07(水) 21:08:190538デフォルトの名無しさん
2005/12/07(水) 21:10:34配布に困る
0539デフォルトの名無しさん
2005/12/07(水) 21:11:05正直詰め込みすぎでこんがらがってる、明日になれば理解できてると思う
本当にありがとうございました
0540デフォルトの名無しさん
2005/12/07(水) 21:11:20そこでHSP!
0541デフォルトの名無しさん
2005/12/07(水) 21:12:38メニュー→HSP(P)→コンパイル+実行(C) F5
うはwwwww簡単過ぎwwwwww
0542デフォルトの名無しさん
2005/12/07(水) 21:25:140543みずき ◆WnmizUKIg6
NGNG簡単に覚えられる強力な命令セット
高速な動作をするインタプリタを搭載
エディタ付属ですぐに使い始めることができます
作ったプログラムは自由に再配布が可能、ライセンス料も不要です
拡張プラグイン・モジュールにより数多くの機能を追加可能です
7年以上に渡る多くのユーザー資産と使用実績があります
詳細なマニュアルとリファレンスヘルプシステムを装備
プログラミング初心者にも敷居の低いシンプル設計と操作
インタプリタならではの豊富なデバッグ支援システムを装備
0544デフォルトの名無しさん
2005/12/07(水) 21:31:01デバッグモードでインタプリタみたいに実行できるおww
0545デフォルトの名無しさん
2005/12/07(水) 21:32:41スクリプト保存して
メニュー→HSP(P)→実行ファイル自動作成 Ctrl+F9
すれば同じフォルダにexeできるww
■ このスレッドは過去ログ倉庫に格納されています