プログラム言語でマターリ会話するスレです
C,C++,C#,Basic,Java,Perl,SQLなど言語は自由。
プログラマ以外の人もわかるようにソースコードに適度な解説を入れておくと++。
//変数宣言
class User user;
class Naiyou naiyou;
////本体////
//21歳未満は立入禁止。
if (user.m_iNenrei < 21)
return;
//メーカー情報スレ・ゲーム単体情報スレを立てたい方は、エロゲー板で相談してみましょう。
if (IsNaiyouMakerThread(&naiyou) || ((IsNaiyouGameThread(&naiyou)) && (sizeof(naiyou) == 1)))
{
if (SoudanMember("ErogeIta",&naiyou))
{
Post("ErogeIta",&naiyou);
return;
}
}
#include <stdio.h>
#include <studio.mebius>
void main{
return 0;
}
//書き込みは削除ガイドラインに抵触しないようにお願いします。
if (naiyou & SAKUJO_GUIDE_LINE)
{
if (User.IsSoredemoToukousuru())
{
naiyou.EnableDelete(true); //削除される可能性あり
new Hacksorina; //ハくそリーナ待機
}
else
{
return;
}
}
Post("NegiIta",&naiyou);
//※ネタをネタと見抜ける人でないと(ネギ板を使うのは)難しい。。。
LPVOID* lpfnIsNeta;
User.QueryInterface(IID_IS_NETA,&lpfnIsNeta);
if (lpfnIsNeta == NULL)
/* this-> */ m_iMuzukasisa++;,,,,,
() 忘れたんで鬱
HLT
main()
{
for (;;)
{
printf("延期しますた");
_sleep(1000 * 3600 * 24 * 365);
}
new SNOW;
//ヽ(`Д´)ノウワァァァァァン
}
#include "323MisatoGraphic.h"
class AsukaPyon : public _323Misato
{
};
//関数:秋葉原へ行く
//引数:リュックサックと財布(財布の中身は変更されるためポインタ渡し)
//戻り値:エロゲ
Eroge GotoAkihabara(Ryukkusakku ryukku,Saifu* saifu);
11 :
コピペ:02/09/24 01:25 ID:DIJB0AAx
GetSakura()->insert(GetMyStick());
// 俺の肉棒をさくらたんにぶちこむ(;´Д`)ハァハァ
12 :
コピペ:02/09/24 01:28 ID:ZWwpfn89
insert into sakura (pussy) select mycock from mybody;
--俺の肉棒をさくらたんにぶちこむ(;´Д`)ハァハァSQL版
13 :
コピペ:02/09/24 01:28 ID:ZWwpfn89
do
{
ShikoShiko(&hah_hah); // しごく
} while(hah_hah <= THRESHOLD)
Dopyu();
LD CCSAKURAEROCG
AND RIGHTHAND
AND MOMIMOMI
AND HAHHAH
OUT DOPYU
int iSaoriNenrei = 9;
int iSioriNenrei = 9;
iSaoriNenrei+=9;iSioriNenrei+=9;
if (!SofrinVerify(iSaoriNenrei) || !SofrinVerify(iSioriNenrei))
{
aborn();
}
else
{
iSaoriNenrei -= 9;
iSioriNenrei -= 9;
exec("HajimetenoOrusuban.exe");
}
16 :
コピペ:02/09/24 01:32 ID:6shsVe67
>漏れは昔は単なるUNIX好きだったんだが…
>自分の中に
try{
Eroge eg_firstImpact new Eroge(pia2);
Ore.testEroge(eg_firstImpact);
}
catch (OreHagesikuKowareruException e){
Ore.Hah_Hah();
System.out.println("潤君…俺も壊れる…\n");
}
finally{
Ore.setStatus(立派なエロゲヲタ);
}
>が埋め込まれてるのに気づいてもはや4,5年が経つ…
>んで、Ore.READY_3Dはそもそも準備されていないらしい。
># 仕様です。
17 :
コピペ:02/09/24 01:32 ID:6shsVe67
main()
{
printf("Hello 2D world");
}
for(;;)printf("マ板へ逝ってよし\n");
public static void main(String[] argv){
for (;;){
悲惨();
三段オチ();
}
現実世界でのフラグ();
}
qsort(MyEroge,35,sizeof(char*),HaaHaaKaisuu);
for (int i=0;i<3;i++)
printf("%s\n",MyEroge[i]);
----------------------
はじめてのおるすばん
みずいろ
大悪司
//山本和枝キャラクター
const Heroine heroine;
//constで変更不可なので注意!
//山本和枝グラフィックライブラリ
//作画関数。
inline int Yamamoto::Draw()
{
_asm
{
;;;;
}
}
//インラインでしかもアセンブラなのでとてつもなく速い!
character(shiori).
character(saori).
over18(X) :- character(X).
?- over18(shiori).
Yes
?- over18(saori).
Yes
PRINT"青野光展☆逝ってよし"
#include<stdio.h>
main(){
while(1){
printf("さいたま\n");
}
}
ORG 0C000H ;プログラムカイシアドレス
DI ; ワリコミキンシ
LD HL,MOJISTR ; モジレスアドレス
LD DE,0F3C8H ; カキコミアドレス
LD BC,5
LDIR ; ブロックテンソウ
EI ; ワリコミキョカ
RET ; シュウリョウ
MOJISTR: DC 'ネギイタ'
次からCOBOL専用スレになります
28 :
名無しさん@初回限定:02/09/24 18:24 ID:oHTnUV28
ってーか、せめてマジでコンパイルして実行出きる奴つくれよ
そうじゃなきゃ、意味ねーだろ(w
ヤボをゆうな。
DIで気にする局面なのか?>26
つか転送中って割り込みかかったっけ?
>>29 ブロック転送中(というより命令実行中)は割り込みは掛かりません。
それいったらNMI掛かったらDIしても無駄だし・・・
ってZ80かよ!
素人ですんでツッコミご容赦ください。
struct state{
//調教ゲーなら各種パラメータ
//ノベルゲーなら自身の遷移状態とか
//実装ないけどな(w
};
class heroine
{
public:
heroine();
virtual ~heroine();
private:
struct state* pState_;
};
便利なクラスメンバを用意するとヒロインが似たり寄ったりという罠。
33 :
名無しさん@初回限定:02/09/25 02:13 ID:1p2VdQvw
コンパイルも出来ないソースが、果たしてソースって言えるのかよ?(w
おめーら痛過ぎ
根本的な問題として、エロゲと何の関係もない気がするんだが。
>>34 エロゲとからめりゃ問題ないんじゃない
ま、もともと悲惨スレからの派生だけどな
何でだろう。
プログラムなんて全然分からない俺でも何故か笑える…
和枝はオブジェクト指向ゲンガーと言ってみる
>38
メンバ変数(原画家名)を表立って出さずにシミラーな原画を量産してくるLibidoの方がカプセル化の概念
からもオブジェクト指向が強そうだ。
山本女史はどちらかというと常にある一つの原画作成クラスをnewし続けているmain関数。
40 :
40:02/09/27 08:34 ID:hRcrg3Og
復習してからカキコしていいですか?(邪
※ はじめてのまいんど ※
このプログラムの登場人物は 18歳 以上なんだよおにいちゃん。
しおりちゃんとさおりちゃんは 「かわいい双子の姉妹」。
二人は 大すきなおにいちゃんと 「はじめてのおるすばん」をします。
(はじるすの) メインは
しおりちゃんとさおりちゃんで (;´Д`) "ハァハァ"
合成したもじれつを 表示して 改行するよおにいちゃん。
基底クラスはひどい出来だが、継承クラスの実装のおかげで
なんとか正常に動いている、樋上いたるクラス
ムリヤリ掩蔽されちゃうのか…。
どうかと思うぞ。
44 :
887:02/09/29 18:45 ID:WDZQm5l9
>>19 それはおれのこぴぺだな… この悲惨スレ住人めが…
改良版
public static void main(String[] argv){
for (;;){
throw new Exception("悲惨");
現実世界でのフラグ();
} catch(Exception e){
三段オチ();
悲惨度数 ++;
}
}
}
/*
たとえば、あなたがエロゲー(21歳未満お断り)アプリケーションのために、
性愛(sexualLove)をサポートするクラスを作る事になったとしよう。
そのメンバ関数の1つに、Ejaculation(射精)という名前を付けた。
しかしあとで、その関数は「中田氏」と呼びたいと言う人たちや、
「膣外射精」のほうがよろしいと言う人たちがいることに気づく。
誰にも親切にしたいと思うあなたは、3つの関数を、ぜんぶ提供する(どれも同じことをするにしても)。
同じじゃ困るか。
全然関係ないが、デザインパターン本のお題に3Dダンジョンがあるのが
奥深いと思いますた。
*/
/*
実妹と義妹の最も大きな違いは、義妹とは(仮想世界で)Hできるが
実妹とはできない、という点である。だから、もし性的に結合する必要
のある妹がいれば、彼女は仮想世界にいなければならず、その仮想
の妹は義妹でなければならない。その点は、非常にはっきりしている。
しかし、ソフ倫を通す必要がないときは、事情は少し複雑になる。
*/
public static void main(String[] argv)
{
for
( ; ; )// 現実世界でフラグ立て();
{ }
// 探せど探せど見つからぬ……
}
☆ エロゲで学ぶデザインパターン ☆
【 Iterator : イテレータ 】
構成要素を順番になめまわします。
ArrayList エロゲ棚 = new ArrayList{ 君望, はじるす, 水月, みずいろ };
// 悲惨な棚があります。
Iterator 俺の目 = エロゲ棚.getIterator(); // マイコレクションをCheck it!
while ( 俺の目.次がある==true ){ // 目先に何かある間、ループします。
if. ( 俺の目.次==はじるす ){ // ロリハケーン!
(;´Д`)ハァハァ // ハァハァ
}
}
☆ エロゲーで学ぶデザインパターン ☆
【 Adaptor : アダプター 】
型が合わなくても、一皮かぶせて再利用。
エロゲCD ねこねこソフト(){. // 古い関数
return new みずいろ(); // エロゲCD「みずいろ」を生成
}
エロゲDVD ねこねこソフト再販(){ // アダプターです
return DVD化( ねこねこソフト() ); // DVD版を再販します
}
☆ エロゲーで学ぶデザインパターン ☆
【 Template Method : テンプレート 】
似た機能をまとめることで、ロジックを共通化します。
abstract class はじるす{ // これがテンプレ
public int 年齢. = 18; // 祖父倫対策
public Image 見た目 = ロリ; // お兄ちゃん直撃
public abstruct String なまえ; // キャラクターの名前
}
class しおりちゃん extends はじるす{ // はじるすを継承
public String なまえ = new String(”しおり”);// しおりちゃん実装
}
class さおりちゃん extends はじるす{ // はじるすを継承
public String なまえ = new String(”さおり”);// さおりちゃん実装
}
俺クラスのメンバー変数
final static boolean DOUTEI = true;
☆ エロゲーで学ぶデザインパターン ☆
【 Factory Method : ファクトリー 】
TemplateMethod(テンプレート)の応用です。ヤヤコシイ
枠組みとして"作成者"と"製品"、(工場と製品仕様)
実装部として"具体的作成者"と"具体的製品"(作業員と完成品)
の4つに分け、枠組み(フレームワーク)の再利用を目指します。
abstruct class アリスソフト { // 作成者です
public abstruct SYSTEM3.9 create(); // SYSTEM3.9な
} // ゲームを作ります
abstruct class SYSTEM3.9 { // 製品です
public abstruct ハァハァ えちシーン();. // エロゲ必須要素
}
class 社員 extends アリスソフト { // 具体的作成者(作成者を継承)
public SYSTEM3.9 create(){ // SYSTEM3.9なゲームを
return new SYSTEM3.9(); .// "実際に"作ります。
}
}
class 妻みぐい extends SYSTEM3.9 { // 具体的製品(製品を継承)
public ハァハァ えちシーン(){ // えちシーンを"実装"します。
return new 人妻(); // 人妻で(;´Д`)ハァハァ
}
}
---
>>51 俺クラスメンバ変数(C版)
static const bool DOUTEI = true; // ダメフラグ立ちっぱなし(;´Д⊂)
☆ エロゲーで学ぶデザインパターン ☆
【 Singleton : シングルトン 】
staticとprivateを使った、ある意味テクニック。1つであることを保証します。
複数スレッドからの同時アクセス時に威力を発揮。
public class シナリオ { // これがsingletonなクラス。某エロゲ会社を想定。
private static シナリオ ライター = new シナリオ();
// static、つまり1回しか生成されないのがミソ。
public static シナリオ getInstance(){ // 実体を取得します。
return ライター; // シナリオライターを返却。
}
private シナリオ(){ // 普通の確保(new)をされないように、
} // privateです(=自分自身にしか使えない)
}
public class Main{ // 使い方。
シナリオライター 阿鼻巣暴徒,誰彼; // 2本のソフトがあります
阿鼻巣暴徒 = シナリオ.getInstance();// シナリオ取得その1
誰彼 = シナリオ.getInstance();// シナリオ取得その2
// この時点で、阿鼻巣暴徒==誰彼が成立します。
}
横レススマソですがガンガレ!
Mementoをどうカマしてくれるのか…(・∀・)ウズウズ
☆ エロゲーで学ぶデザインパターン ☆
【 Prototype : プロトタイプ 】
わざわざデータを新しく作らず、既存データのコピーつまりクローンで済ませます。
クラス数が多いとか、クラスから組み上げるのが面倒なときに適用。
public interface ロリ extends Cloneable { // クローン可能を継承。
public abstruct ロリ createClone(); . // クローン作成を宣言。
}
public class ZERO { // 昔、『密猟者』とか作ってた会社
private ロリ キャラ = new ロリ(); // 最近は、これで名を馳せますた
public ロリ create (){ // ロリを産み出します
return キャラ.createClone(); // キャラ(のコピー)を返却
} // いつものような new なんとか() で作っていないことに注意。
}
public class しおりちゃん implements ロリ {// 例によってしおりタン+ロリ
public ロリ createClone(){ // クローン作成を実装します
ロリ 自分自身 = null; // はじめは何もないけれど
try{
自分自身 = (ロリ) (this.clone());// 自分自身をクローン化。
}catch( CloneNotSupportedException e ){
// try〜catch間で、クローンに失敗したらここに来ます。
}
return 自分自身; // 自分自身のコピーを返却。
}
} // 同様にさおりタンも作成可能。当然ロリ標準装備。
---
>>54 なんとか完走できるようにガンガリマス。
Mementoはおそらく、御想像とおりのネタになると思います(;´ー`)
23パターン後にスレッド型のやつよろ
☆ エロゲーで学ぶデザインパターン ☆
【 Builder : ビルダー 】
複雑な構造は一気に作らず、少しずつ順番に。
組立方法に従って、部品を組み立てます。
public abstruct class Builder { // たくましくなる方法
public abstruct マッスル 海でガッツ(); // 筋力up宣言 その1
public abstruct マッスル 山でガッツ(); // 筋力up宣言 その2
}
public class 主人公 { // 筋力upを組立
public マッスル ガッツ( Builder ヒロイン ){ // 鍛えます。
マッスル 筋肉;
筋肉 += ヒロイン.海でガッツ(); // マッシヴ!
筋肉 += ヒロイン.山でガッツ(); // モア マッシヴ!!
return 筋肉;
}
}
public class タカさん extends Builder { // 筋力up実装
public マッスル 海でガッツ(){ return マッシヴ!! ;. }// 実装その1
public マッスル 山でガッツ(){ return マッシヴ!!!!; }// 実装その2
}
// 使い方 // タカさんにシゴかれる主人公の図
マッスル 筋肉 = 主人公.ガッツ( new タカさん() );
---
>>56 ス、スレッドデザパタ…ドナタカ オナガイシマス(;;;´ー`)
'デザパタ厨必死だな
そこでC++版の登場だ。
∧_∧
∧__∧ (´<_` ) これってGoFじゃないだろ兄者。
( ´_ゝ`)/ ⌒i
_(__つ/ ̄ ̄ ̄/i |_
\/___/ ヽ⊃
const int BSF = 1;
const int Wind=2;
const int AT=3;
…
CString genericMinoriUser(int opus)
{
switch (opus){
case BSF:
return "少女崇拝";
case Wind:
return "わたし、>1にとって、なんなのよっ!! ねえ? >1にとって、わたしはなん";//以下略
case AT:
ASSERT(0);
return "";
}
return "nbkzvxZE/w : #nDIzサV/p";//ここには絶対に来ないが、
}
☆ エロゲーで学ぶデザインパターン ☆
【 Abstruct Factory : アブストラクト ファクトリー 】
(以下、抽象工場と略します)
前述、Factory(工場)の拡張版です。比較するとこんな感じ?
<枠組み> <実装部>
(abstructにします) (extendsで対応する枠組みを継承)
通常工場 : 工場→仕様 / 作業員→完成品
抽象工場 : 工場→仕様1仕様2… / 作業員→完成品1完成品2…
で、エロゲナイズするとこんな感じ。
通常工場 枠組み: ヒロインがひとりのエロゲ → ヒロイン
実装部: / 『あゆみちゃん物語』 → あゆみ
抽象工場 枠組み: Keyのエロゲ → ヒロイン、先輩、リストカッター
実装部: / 『Kanon』 → あゆ.、 舞 、 栞
実装部: / 『Air』 → 観鈴.、美凪、 佳乃
枠組みの再利用で、新たな実装部を追加しやすくすることが特徴です。
// コード無くてスマソ(;´ー`) //
>>58 REM アト15パタン ユルシテ…
/*
AngelTypeって、抽象クラスだったんじゃないかな?
Aerisスレの住民の頭のなかには、
住民一人一人が継承したprivateなコンクリートクラスが存在した。
そして今回、minoriが別のpublicなコンクリートクラスを
リリースすることになった。
そんな感じがする。
当然、継承の上で姉妹関係にあるクラスなのだから
代入はできないので、
スレが多少「期待と違う」とか「シナリオが〜」といった
話題になるのは仕方ないだろうけど。
まずは、publicなコンクリートクラスが現れたことに乾杯。
*/
意表をついてWebプログラムで書いてみようかな
PHPあたりで
☆ エロゲーで学ぶデザインパターン ☆
【 Bridge : ブリッジ 】
Factory系は、機能追加が苦手。(前述の例では、ヒロイン種の追加)
そこでBridgeパタンの登場。実装部を継承することでパワーアップさせます。
public abstruct class ロリゲー { // ロリゲ必須要素を列挙
public abstruct void コスプレ(); // コスプレがあることを宣言
public abstruct void しーしー(); // シーシーがあることを宣言
}
public class 双子 extends ロリゲー { // 上記要素を実装
public void コスプレ(){ いろいろ(); } // コスプレを実装
public void しーしー(){ にょ(); } // シーシーを実装
}
public class はじるす { // ロリゲを核とするエロゲ
private ロリゲー x ; // 核。
public はじるす( ロリゲー x ){ // コンストラクタ:初期化するトコ
this.x = x ; // 核に双子要素をセット。
}
public void コスプレH(){ x.コスプレ(); } // コスプレイベントです
public void しーしー(){ x.しーしー(); } // しーしーイベントです
}
// 使い方 // はじるす( new 双子() ).コスプレH(); // コスプレでハァハァ
// ところが、「はじめて」がなかったことに非難轟々。
// そこで、はじいしゃには追加実装されることに。
public class はじいしゃ extends はじるす { // 前作機能を再利用。
public はじいしゃ( ロリゲー x ){ // ある意味、一種のおまじない?
super ( x ); // クラス"はじるす"版の初期化を行います。
}
public void はじめて(){ ハカシーン(); } // 待望の追加機能
}
// 使い方 // はじいしゃ( new 双子() ).はじめて(); // ハァハァ
そろそろそのネタ飽きてきた…
>>61 基底クラス
↓
住民がprivateに継承
↓
minoriがpublicに継承
↓
上記2クラスを住民が継承
↓
名前解決をめぐって住民が逆ギレ祭り
↓
「ダイヤモンド型継承」とMeyers先生に怒られる
↓
(´・ω・‘)
コード無いや。
あれ?デザパタ終わっちゃった?
結構楽しみだったのに。
中途半端にするぐらいなら、最初からやるなゴルァ!ってことで。
C++よりCでやってくれ。
++はわからん。
>68 GOTO 69
69 GOTO >68
RUN
while( 1 )
{
system.out.println( "
>>1さん、助けて〜<br>" ) ;
}
:loop
echo 飽きてきたぞ
goto loop
エロゲでデザパタ、残り14パタンを最後まで一気にやります。
あまり興味のないかたは、goto
>>88 でお願いします。
……その前に、お詫びしたいことがあります。
今までのコード中にabstructとありましたら、
それはabstractの間違いです。
申し訳ありません、ついCのくせが……。
☆ エロゲーで学ぶデザインパターン ☆
【 Strategy : ストラテジー 】
戦略部分を切り離すことで、動作をごっそり切り替えたりできます。
public interface システム動作 { // 戦略切換用の宣言集
public abstract void メニュー(); // メニュー宣言
}
public class 通常メニュー implement システム動作{// 製品用のメニュー
public void メニュー(){ // 製品版では、CGモード=クリア後のお楽しみ。
ゲーム開始を選択可能にする();
if( シナリオクリア == true ) CGモードを選択可能にする();
} // シナリオを1回クリアしていたら、CGモードオープン。
}
public class デバッグメニュー implement システム動作{// デバッグ用メニュー
public void メニュー(){ // デバッグ用なので、CGモードフルオープン。
ゲーム開始を選択可能にする();
CGモードを選択可能にする();
}
}
public class エロゲ製品版 {
private boolean シナリオクリア; // 1回クリアしたかどうかのフラグ
public void タイトル画面(){ // タイトル画面の動作
メニュー メニュー表示 = new 通常メニュー(); // 製品版なので……
メニュー表示.メニュー(); // 通常メニューを表示します
}
public void ゲーム開始(){…(省略)…}.// 実際のゲーム
public void CGモード(){…(省略)…} // ハァハァ
}
こうやって作っておくと、タイトル画面()内で
メニュー メニュー表示 = new 通常メニュー();. を
メニュー メニュー表示 = new デバッグメニュー(); に書き換えるだけで
手軽にテストすることができます。
☆ エロゲーで学ぶデザインパターン ☆
【 Composite : コンポジット 】
ファイルとフォルダの関係のように、入れ物と中身を同一種として取り扱います。
1.入れ物&中身の共通クラス(宣言)
public abstract class アイテム {
public abstract アイテム add( アイテム item ); // 持ち物追加(宣言)
}
2.中身クラス (アイテムを継承して実装)
public class 中身 extends アイテム{
public アイテム add( アイテム item ){ // 持ち物追加(中身Ver)
} // 中身には何も追加できないので、なにもしません。
} // 他に、例外をthrowして失敗を伝える方法もあります。
3.入れ物クラス (アイテムを継承して実装)
public class 入れ物 extends アイテム{
private LinkedList 一覧 = new LinkedList(); // 一覧を確保
public アイテム add( アイテム item ){ // 一覧に追加(入れ物Ver)
一覧.add( item ); // 一覧にアイテムを追加
}
}
4.こんな感じでツリーを構築
入れ物 箱. = new 入れ物(); 入れ物 CDケース = new 入れ物();
内容 ゲームCD = new 内容(); 内容 マニュアル = new 内容();
内容 アンケートハガキ = new 内容(); 内容 くまシャーペン = new 内容();
// 箱
箱.add ( CDケース ); . // ├ CDケース
CDケース.add ( ゲームCD ); // │ └ ゲームCD
箱.add ( マニュアル );. // ├ マニュアル
箱.add ( アンケートハガキ );. //.├ アンケートハガキ
箱.add ( くまシャーペン );. //.└ くまシャーペン
☆ エロゲーで学ぶデザインパターン ☆
【 Decorator : デコレーター 】
引数と戻り値を同じ型にすると、飾りつけができます。
詳しくは中身(宣言)・中身(実装)・装飾(宣言)・装飾(実装)
の4つで構成するのですが、このようなイメージてことで……
1.
Image 着替え関数( Image body ){ // 入と出が同じ型の関数
bodyにワンピースを着せる作業; // 飾りつけ部分
return body; // 飾りつけ後を返却
}
にそった形の関数群、
Image ワンピ( Image body ); とか
Image ニーソ( Image body ); とか用意します。
2.
Image ヒロイン = ハダカ( new Image( ) ); // ヒロインのハァハァ画像
を土台として、
Image ヒロイン = エプロンドレス( ワンピ ( シャツ ( ブラ ( ショーツ (
ガーターベルト ( ニーソ ( カチューシャ (
ハダカ( new Image( ) ) ) ) ) ) ) ) ) );
のように、Imageに次々と服を着せる。
3.
結果、ヒロインはメイドさん。
☆ エロゲーで学ぶデザインパターン ☆
【 Visitor : ビジター 】 受入先を訪問者が渡り歩く……と思いこんだらハマルかも。
それぞれの受入先での振る舞いを訪問者に集中させることで、処理と構造を分離。
1.訪問者と受入先の宣言
public abstract class Visitor {
public abstract void visit( Acceptor a );} // 問合(宣言)
public interface Acceptor {
public abstract void accept( Visitor v );} // 受諾(宣言)
2.訪問者クラス (訪問者宣言を実装) : 処理はここにまとめる
public class エロゲオタ extends Visitor {
public int 所持エロゲ本数 = 0; // 所持エロゲ本数、最初は0。
public void visit( 一般家電店 a ){ // 問合その1(実装)
} // エロゲが無くて(´・ω・`)ショボーン
public void visit( エロゲショップ a ){ // 問合その2(実装)
所持エロゲ本数++; // エロゲいっこ増やす。
}
}
3.受入先クラス (受入先宣言の実装) : 構造はここにまとめる
具体的な処理は訪問者で記述したので、こっちは簡潔に。
public class エロゲショップ implements Acceptor {
public void accept( Visitor v ){ v.visit( this ); }
} // エロゲオタのvisit(問合その1)を実行
public class 一般家電店 implements Acceptor {
public void accept( Visitor v ){ v.visit( this ); }
} // エロゲオタのvisit(問合その2)を実行
4.使用例
エロゲショップ getchu = new エロゲショップ( ); 一般家電店 コジマ. = new 一般家電店( ) ;
エロゲオタ 漏れ = new エロゲオタ( );
getchu.accept( 漏れ ); // エロゲ+1 → 所持 1 本
コジマ.accept( 漏れ ); // エロゲ±0 → 所持 1 本
☆ エロゲーで学ぶデザインパターン ☆
【 Chain of Responsibility : チェイン オブ レスポンシビリティ 】
責任のたらい回し。こなせるなら自分で処理、ダメなら次の人に丸投げ。
処理クラスを数珠繋ぎにします……線形リストの構造に似てるような?
public abstract class ショップ {
private ショップ 次の店; // たらい回し先。
public ショップ setNext( ショップ next ){
次の店 = next; // 次の店を設定。
return next; // 数珠繋ぎにします (実はDecorator)
}
public final boolean getエロゲ( ){ // エロゲが欲しい
if ( エロゲがある( )==true ){ // ハケーン
return true; // good job!
} else if ( 次の店 != null ){ // 他に店がまだある
次の店.getエロゲ( ); // 隣の店へGo
} else { // 全部探したのに
return false; // 見つからなかった……
}
} }
public class 近所の店 extends ショップ{
public boolean エロゲがある( ){ return false; } }
public class ソフマップ extends ショップ{
public boolean エロゲがある( ){ return true; } }
public class getchu extends ショップ{
public boolean エロゲがある( ){ return true; } }
使い方: ルートを設定して、たらい回し開始。
ショップ 巡回ルート = 近所の店.setNext(ソフマップ).setNext(getchu);
boolean 巡回結果 = 巡回ルート.getエロゲ( );
// 近所の店は×だがソフマップは○。よって、巡回結果==true。
☆ エロゲーで学ぶデザインパターン ☆
【 Facade : ファサード 】
ゴチャゴチャした処理を、たった一つの関数にまとめます。すっきり。
1.ごちゃごちゃしたクラス
public class 裏画面処理{
public void drawBackGround ( ){ 背景表示 }
public void drawCharacter ( ){ 立ち絵表示 }
public void drawWindow ( ){ メッセージウィンドウ表示 }
public void drawString ( ){ 文字列表示 }
}
2.たった1つにまとめたクラス
public class 表示{
public void 描画( ){// いろいろとややこしい処理です。
裏画面確保
裏画面処理.drawBackGround();
if ( Hシーン中 != true ){ // Hシーン中は、立ち絵必要なし。
裏画面.drawChatacter();
}
裏画面処理.drawWindow();
裏画面処理.drawString();
表画面に裏画面を上書き
} // 余談:裏画面で作業して最後に表画面に転写。
} // アニメーションさせるのに必須です。
3.使い方
表示.描画( ); // 表示はたったこの1行でOK。
☆ エロゲーで学ぶデザインパターン ☆
【 Observer : オブザーバー 】
なにかあったら全ての観察者に報告。Javaには同名クラスObserverがあるので注意の事。
1.報告者/観察者の宣言
public interface Subject { // 報告する人(報告者)
public abstract void setObserver( Observer o ); // 観察者の場所を記憶(宣言)
public abstract void notify( String str ); } // 観察者に更新を報告(宣言)
public interface Observer { // 受信する人(観察者)
public abstract void update ( Subject s ); } // 子に変更があった時(宣言)
2.報告者の実装
public class エロゲマ implements Subject {
private LinkedList BBS = new LinkedList(); // 観察者一覧
public String カキコ;
public void setObserver( Observer o ){ BBS.add( o ); }// 観察者を記憶(実装)
public void notify( String str ){ // 報告する(実装)
カキコ = str;
一覧に登録されている観察者全てに、BBS.update( this );
} }
3.観察者の実装
public class 2chBBS implements Observer {
private LinkedList ログ = new LinkedList();
public void update ( Subject s ){ // 報告者に変更があった時(実装)
ログ.add( c.カキコ ) ); // 書き込みをログに保存
} }
4.使い方
エロゲマ エロゲオタ. = new エロゲマ(); // とあるオタ
2chBBS エロゲ板 = new 2chBBS(); エロゲオタ.setObserver( エロゲ板 );
2chBBS 葱板 = new 2chBBS(); エロゲオタ.setObserver( 葱板 );
エロゲオタ.notify("エロゲオタキモイ"); // マルチポスト(・A・)イクナイ!
☆ エロゲーで学ぶデザインパターン ☆
【 Mediator : メディエーター 】
たったひとりの相談役。親がすべての子供の状態を管理します。
public interface Child { // 相談する人(子) (※一般名称はColleague:同僚)
public abstract void setMother( Mother m ); // 親のいる場所を記憶(宣言)
public abstract void setEnabled( boolean enabled ); // 親の言うことを聞く(宣言)
}
public interface Mother { // 相談される人(親) (※一般名称はMediator:相談役)
public abstract void childChanged ( Child c ); // 子に変更があった時(宣言)
}
public class ヒロイン implements Child { //子の実装
private Mother system;
private int 好感度 = 0 ; public boolean Hシーン = false ;
public void setMother( Mother m ){ system = m; } // 親を記憶(実装)
public void setEnabled( boolean b ){ Hシーン=b; } // 親の言うことを聞く(実装)
public void 好感度上昇( ){
好感度++;
system.childChanged( this ); // 自分自身に変更があったことを親に伝える
} // この部分は前述のObserverパターン。子供が親に報告します。
}
public class エロゲシステム implements Mother {// 親の実装
public Child 委員長 = new Child();
public Child あかり = new Child();
public void childChanged ( Child c ){ // 子に変更があった時(実装)
if ( 委員長.好感度>90 ){
委員長.setEnabled( true ); // 委員長はストーキングで攻略できるが、
}else if ( 委員長.好感度>50 && あかり.好感度>90 ){
あかり.setEnabled( true ); // あかりは、他キャラの好感度も
} } } } // 高くないと攻略不可。
// エロゲシステムが各ヒロインの攻略可能判定を司る図……ちょっと萎える(;´ー`)
☆ エロゲーで学ぶデザインパターン ☆
【 Memento : メメント 】
状態をまるまる保存することで、作業履歴を取り扱います。
public class セーブデータ implements Serializable{ // 状態保持クラス
private String シナリオ現在位置 = new String("title");
public void set位置( String pos ){ シナリオ現在位置 = pos; } //現在位置Set
public String get位置( ){ return シナリオ現在位置; } //現在位置Get
}
public class エロゲシステム { // 上記状態をやりくりするクラス
private Stack history = new Stack(); // いわゆるスタック。履歴管理に最適。
public void save( ){ // データを書き込み
(history.peek())をファイルに保存 // 一番最新のデータを保存します
}
public String load( ){ // データを読み込み
セーブデータ dataをファイルから読込
historyを一旦クリアしてdataを追加
return data.get現在位置( );
}
public String undo( ){ // 一つ前にもどす。
return ( history.pop( ) ).get現在位置( );
}
public void next( String pos ){ // 履歴一つ覚える。
セーブデータ data = new セーブデータ( pos );
history.push( data ); // クラスごとまるまる保存…この辺がMemento
} }
3.使い方
先に進むには エロゲシステム.next( 次シーン ); // 次のシーンへ
Hシーン直前で エロゲシステム.save( ); // 保存
CG回収できたら String 現在位置 = エロゲシステム.load( ); // 読込なおし
巻き戻すには. String 現在位置 = エロゲシステム.undo( ); // 一つ前に戻る
☆ エロゲーで学ぶデザインパターン ☆
【 State : ステート 】
クラス内の if 文で分けず、各状態ごとにクラスを作る方法。意外に説明が難しい。
例えば次のようなクラスは、
public class エロゲ {
public void エロゲ評価( ){
if. ( 良作 ){ とりあえずコンプリート }
else if ( 地雷 ){ 2chに地雷報告 }
}
}
Stateパターンで書くと、1つのinterfaceと2つのクラスになります。
public interface エロゲState {
public abstract void エロゲ評価( ); // 宣言します
}
public class 良作エロゲ implements エロゲState {
public void エロゲ評価( ){ とりあえずコンプリート }// 宣言を実装
}
public class 地雷エロゲ implements エロゲState {
public void エロゲ評価( ){ 2chに地雷報告 } // 宣言を実装
}
で、2つのクラスは必要に応じてif文で切換えます。
……結局 if は使います(苦笑) ただし、
public class 凡作エロゲ implements エロゲState {
public void エロゲ評価( ){ 2chで愚痴ってみる }// 宣言を実装
}
のような、新しい状態の追加が簡単です。
☆ エロゲーで学ぶデザインパターン ☆
【 Flyweight : フライウェイト 】
管理対象に同じ物があるのなら、余分に作るより共有。
// VCLのAnsiStringやSTLのstring等の実装で、この仕組みが使われています。
public class ImageFactory { // 画像管理クラス
private static ImageFactory singleton = new ImageFactory( );
private ImageFactory (){ }
public static ImageFactory getInstance(){ return singleton; }
// 以上の3行は前述Singletonパターン。同期ミスを防ぎます。
private HashMap CG記憶 = new HashMap( ); // 名前と画像の組合せを管理
public synchronized Image getImage( String ヒロイン ){. // 画像取得
Image img = (Image)CG記憶.get( ヒロイン ); // 登録済みの中にある?
if( img == null ){ // なかったので……
imgをファイルから読み込む // 読み込んで
CG記憶.put( ヒロイン,img ); // 組合せごと保存します。
}
return img; // 要求された画像を返却。
}
}
// こうやって作っておけば、例えば同一画像を何度も呼ばれる時、
ImageFactory CG管理 = ImageFactory.getInstance( );// Singletonでがっちり管理
Image img1 = CG管理.getImage( "..'´/^Y^ヽ" );. // a
Image img2 = CG管理.getImage( "i !l|. |" ); // b
Image img3 = CG管理.getImage( "i !l|. |" ); // b
Image img4 = CG管理.getImage( "i !l|. |" ); // b
Image img5 = CG管理.getImage( ">(|-[ ] []ノ" ); // c
// 画像メモリの消費量は、a と b と c の3つ分で済みます。
☆ エロゲーで学ぶデザインパターン ☆
【 Proxy : プロキシー 】
一見、普通のクラスだけど……内部では、ないなら作成&あるなら再利用。
必要になってはじめて new (確保) する、それがProxy。
1.共通宣言
public interface メーカー {
public abstract Date 新作発売日( ); // 予告 (宣言)
public abstract void 新作制作( ); // 実作業(宣言)
}
2.時間のかからない作業……この役がProxy(代理人)
public class エロゲメーカー implements メーカー {
public 開発 開発陣; // (取り込んで、外に見せない)
public Date 新作発売日( ){ return 予定している発売日; }
public void 新作制作( ){ // 実作業(宣言)
if ( 開発陣==null ){
開発陣 = new 開発( );
}
}
}
3.重たい作業
public class 開発 implements メーカー {
public Date 新作発売日( ){ return 予測される発売日; }
public void 新作制作( ){ エロゲ制作実作業 (※とても時間がかかる) }
}
4.使い方
エロゲメーカー maker = new エロゲメーカー( );
Date 発売予定日 = maker.新作発売日( ); // ここまでは2.のクラスが担当。
maker.新作制作(); // このタイミングで初めて3.が起動。
// 納期のズレは……気にしちゃダメ。
☆ エロゲーで学ぶデザインパターン ☆
【 Command : コマンド 】
操作ごとに関数を一つ……ではなく、操作ごとにクラスを一つ作ります。
1.共通のインターフェイス
public interface Command {
public abstract void execute( ); // コマンドを「実行」(宣言)
}
2.上記インターフェイスを組み込んだ各種操作(例)
public class Look implements Command {
public void execute( ){ 「眼鏡の看護婦さんがいる」 }
}
public class Talk implements Command {
public void execute( ){ 『嘘……ついたんですね。』 }
}
public class Action implements Command {
public void execute( ){ 「逃げることができない!」 }
}
3.こうやって作っておけば、それぞれの操作をコマンドとして
取り扱うことができます。また、複数のコマンドをまとめて実行する
……いわゆるマクロも実現できます。
public class EscapeMacro implements Command {
public void execute( ){
new Action().execute(); // 逃げる → 失敗
new Action().execute(); // 逃げる → やはり失敗
}
}
☆ エロゲーで学ぶデザインパターン ☆
【 Interpreter : インタープリター 】 // アドベンチャーやビジュアルノベルも、インタープリタです。
前述Commandを発展。簡易文法解析を組み込んで、ミニ言語を実現します。
こんなミニ言語を考えてみます……12月購入リスト。
1| 人妻麻雀2 [rouge]
http://www.will-japan.co.jp/ 2| 彼女はメイドRot 〜悠久の小夜曲〜 [BELL-DA]
http://www.media-box.ne.jp/ 3| 妹汁 (アトリエかぐや)
http://www.alpha-net.ne.jp/users2/kaguya21/ そしてここに3人のエロゲオタが。
・タイトルに "妻" が含まれていたら購入する 「ひとづまにあ」クラス
・タイトルに "メイド"が含まれていたら購入する 「御主人様」クラス
・タイトルに "妹" が含まれていたら購入する 「お兄ちゃん」クラス
ところが上記リストでは、何処から何処までがタイトルにあたるのか、わかりにくいです。
そこで文脈分割マシンを用意。各行を"("や")"で区切ってバラバラにします。
例えば3行めだと、次の3つ。
"妹汁" と "アトリエかぐや" と "
http://www.alpha-net.ne.jp/users2/kaguya21/"
1つ目がタイトルにあたるので、それを調べればよい……こんな感じで解釈します。
結果としては、次の順に実行されることになります。
1| ひとづまにあが"人妻麻雀2"を購入
2| 御主人様が"彼女はメイドRot"を購入
3| お兄ちゃんが"妹汁"を購入
まとめ : 特に重要なのは次の2つ。
1.文脈分割マシンクラス ファイルから読み込んだ1行を単語に分割して解釈しやすくします。
// Javaの場合、分割にはStringTokenizerかPatternのsplit()を使うとよいです。
2.コマンドクラス 自分の事を意味していたら、コマンドを実行します。
// 単純にswitch使ったり他クラスに投げたり木を構築したりそりゃもういろいろ方法が。
1パタン1発言内に納めるべく、相当削ぎ落としましたが、
それでも張り付ける段になって、30行制限に遭遇。ウカツでした。
そして、最後の最後で通し番号が……(´・ω・`)ショボーン
気付いてるかたは気付いてると思いますが……以上の23パタン、
http://www.hyuki.com/dp/ 結城さんの本を手本としてエロゲナイズしました。
デザインパターンは、プログラマ達がよく使う手法をまとめたものです。
私はJavaで書きましたが、考え方自体はC++等他言語でも応用可能です。
順番に覚えるのは難しいですが、今まで組んできた経験を振りかえれば、
きっとあてはまるものがあるはず。どれかひとつでも役立てば、これ幸い。
「エロゲーで学ぶデザインパターン」でした。
>87
すばらしい、感動した
Transcript show: '
>>87乙〜。次はスレッドパターンだなw'
<?php
ob_start() ;
/* HTML構文略 */
echo( ">87<br>\n" ) ;
echo( "スレッドパターンは時間がかかりそうだな・・・<br>\n" ) ;
for( i=0 ; i<100 ; i++ )
echo( "まぁがんばれ<br>\n" ) ;
ob_end_flush() ;
?>
>>87乙カレーです。
saveファイルいっこ遡ったくらいではBad直行な漏れとしては
Memento、リングバッファのほうがよかね?とか思いマスタ。
まあ勝手な話しでスマソ
>>88 ’サンクスです。
>>89 >>90 実はスレッドパターン、まだ本すら手に入れてない状態なので……すが、
なんとか、頑張る所存です。イツニナルヤラ;
>>91 リングバッファ : Queueの実装手法の一つ、ですよね?(さっき調べたw)
確かに、エロゲセーブデータにぴったりの仕様です。件数制限あるし (w
// 本当は花の記憶シリーズのように、好きな位置から再開できたらいいんですけど…
今さらですが、チョト修正します……
>>57 のBuilderですが、やっぱり、
getResult(最終結果の取出)がないのはマズーなのかなぁ、と(;~ー~)
【 Builder : ビルダー 】
複雑な構造は一気に作らず、少しずつ順番に。
組み終わったらgetResult()で取り出します。
public abstract class Builder { // たくましくなる方法
public abstract マッスル 海でガッツ(); // 筋力up宣言 その1
public abstract マッスル 山でガッツ(); // 筋力up宣言 その2
}
public class 主人公 { // 筋力upを組立
private マッスル 筋肉; // 主人公の筋肉
public void ガッツ( Builder ヒロイン ){ // 鍛えます。
筋肉 += ヒロイン.海でガッツ(); // マッシヴ!
筋肉 += ヒロイン.山でガッツ(); // モア マッシヴ!!
}
public マッスル getResult( ){ // 仕上がりを返します
return 筋肉;
}
}
public class タカさん extends Builder { // 筋力up実装
public マッスル 海でガッツ(){ return マッシヴ!! ;. }// 実装その1
public マッスル 山でガッツ(){ return マッシヴ!!!!; }// 実装その2
}
// 使い方 //
主人公.ガッツ( new タカさん() ); // タカさんにシゴかれる主人公の図
マッスル 筋肉 = 主人公.getResult(); // 鍛えられたキンニクをポージング
public class 漏れ extends エロゲオタ {
private void getErog( String title )
throws ErogPlayingException {
enjoyErog( title );
throw new ErogPlayingException( );
}
private void ChristmasEvent( ){
// reserved
}
public void 今年の12月( ){
try{
this.getErog( "妹汁" );
this.ChristmasEvent( );
} catch ( ErogPlayingException e ){
e.printStackTrace( );
}
}
}
>>94 12月は妹汁に絞ってるとこを見るとアレですなぁ
つか24,25日は予約しなくてもよい気がします(藁
C++って殆どわかんないのよね、誰かCかx86アセンブラで書いてくれ(w
>95
echo( "たいして変わらん<br>\n" ) ;
>94
っていうかErogPlayingExceptionがどういう例外なのかとても気になる・・・
>>94 public class 漏れ implements エロゲヲタ,
アニヲタ,
声優ヲタ,
:
:
クラスが投げる例外ばかりが増えていく罠
/* The Tower of FILM */
/* 教科書丸写しスマソ */
void Install7Colors(int n, char *src, char *dst, char *tmp)
{
if (n > 0) {
Install7Colors(n-1, src, tmp, dst);
WriteMessage("%d番目のファイルを %s から %s に移動中", n, src, dst);
MoveFile(n, src, dst);
Install7Colors(n-1, tmp, dst, src);
}
}
void InstallerMain(char *srcDir, char *dstDir)
{
Install7Colors(20000, srcDir, dstDir, getenv("TMP"));
}
>97
class ErogPlayingException extends Exception {
public String toString( ){
return "ErogPlayingException";
}
ErogPlayingException( ){ new Liquid( ); }
}
function waitSaleOfSNOW()
{
$strSaleDay != "UNDECIDEDNESS" ;
while ($strSaleDay != "UNDECIDEDNESS"){
$strSaleDay = setSaleDay() ;
$strSaleDay = setAdjournment() ;
}
return $strSaleDay ;
}
10 ' エロゲー BASIC
20 ' ------------
30 ポッキー
40 ペロペロCandy
run
オカシナ メイレイヲ ジッコウシマシタ
ok.
■
久しぶりにCマガジン(12月号)買ったら、
その中の記事「Linux Programming Depth」でのサンプルプログラムが
「やっちゅ〜カウンタ」だったのでビクーリ。
読者のうち元ネタが分かるのは何割ぐらいだろうか?
漏れの フラグは 定数値
いつまで たっても 偽のまま……
{
// クリスマスも近いし無理矢理フラグを立ててみるYO
const bool 104のフラグ=false;
bool *pフラグ;
pフラグ=(bool *)&(104のフラグ);
*pフラグ=true; // !(*pフラグ);
// 104 のフラグが ROM 上に存在しないことを祈る。
}
106 :
105:02/12/13 15:14 ID:G5NBM8oi
// お詫び。
// 宣言部で フラグ=false と決め付けて失礼いたしました。
>>104 {
extern const bool 104のフラグ;
bool *pフラグ;
pフラグ=(bool *)&(104のフラグ);
*pフラグ=true;
}
// extern した変数はこれじゃだめなのねん。on BCB
// やはり自力でガンバルしかないということか?
$ cc 105.c
$ ./a.out
Segmentation Fault
$ echo '。・゚・(ノД`)・゚・。'
。・゚・(ノД`)・゚・。
# cat > c105.c
#include<stdio.h>
int main(void){
const int flag104=0;
int *pf;
pf=(int *)&(flag104);
*pf=1; // !(*pf);
printf("%s\n", flag104 ? "GOOD" : "DAMN");
return flag104;
}
^C
% cc c105.c
% ./a.out
GOOD
% ECHO "FreeBSD マンセー (・∀・)"
FreeBSD マンセー (・∀・)
109 :
104:02/12/24 00:28 ID:BhWYUYcO
おかしいなぁ……下のコードだけど、falseにしかならない。
constだからfalseのままで正解なのでしょうか?
それともヤパーリ漏れのフラグは(略
// BCB6使用、ButtonClick部に配置
const bool flag104=false;
bool *pFlag;
pFlag=(bool *)&(flag104);
*pFlag=true; // !(*pフラグ);
if( flag104==true ){
Application->MessageBox("true","flag104",MB_OK);
} else {
Application->MessageBox("false","flag104",MB_OK);
}
それ、Meyers先生に見せたら、多分怒るぞ。
int main(void) {
typedef int eroge_maker;
typedef int yuusha;
eroge_maker hyp3rspac3 = rand();
yuusha
oresama;
scanf("%d", &oresama); oresama = oresama > 0 ? oresama : -oresama;
hyp3rspac3 /= 0x7FFFFFFF;
if(hyp3rspac3 <= oresama) puts("(゜∀。)ワヒャヒャヒャヒャヒャヒャ"); return 0; }
short mySon;
113 :
山崎渉:03/01/12 07:30 ID:Giw6OKq3
(^^)
こんな古代言語、もうン年も使ってなかったが…
BEGIN {
print "毎度様です。祖父倫です。"
print "突然ですが貴社のシナリオをチェックさせて頂きます。"
Pattern["Nentei"] = "([0-9][0-9]*)歳"
Pattern["Gakkou"] = "(中学生|小学生|園児)"
}
match($0, Pattern["Nentei"]) {
if(substr($0, RSTART, RLENGTH-2) < 18){
Alert(RSTART, RLENGTH)
gsub(Pattern["Nentei"], "18歳", $0)
}
}
match($0, Pattern["Gakkou"]) {
Alert(RSTART, RLENGTH)
gsub(Pattern["Gakkou"], "学生", $0)
}
{ RegularText = RegularText $0 "\n" }
END {
print "-------- 糸冬 了 --------"
print "以下は修正済みのシナリオです。お納めください。"
print "--------------------------"
print RegularText
}
function Alert(st, len){
print "● 違反を発見「" substr($0,st,len) "」を修正します"
}
115 :
山崎渉:03/01/17 07:16 ID:iz/aM5gW
(^^;
C:\>copy *.bmp >> マイ脳
>116
コピーするファイルが大きすぎて、受け側のドライブに入りません。
もっと容量の大きい脳がある場合は、交換してください。
>117
受け側をフォーマットし直せばもう少し空くよ。
テニシカク 80,25 ケ ソラミトラリイ 0,25,0,1
経験のあるやつ、手を上げろ。
|-`)ノ
ハニリイト 、とかな
友達に「手に四角。けっ、そら見たことか」と言われた。
>>119 モラミ だったら
)/"
CONSOLE@N-BASIC の 第三引数の意味が思い出せない
だれか覚えてる?
>>122 CONSOLE <スクロール開始行>, <スクロール行数>, <ファンクションキー表示>, <カラーモード>
確か、こうだったはず。
私の記憶が確かならば、
スカポン探検隊はBASICで書かれていて、
LINE文とかPAINT文が乱舞していたような気がする。
125 :
名無しさん@初回限定:03/02/03 13:43 ID:Js+Oqk/4
意外に、比較式で定数を右に書く人、多いんやねぇ。
漏れ的には、
比較式のときは、定数、関数、変数 の順で、右に。
126 :
122:03/02/03 18:31 ID:Zwqb+9qu
>>123 あーなるほど。 多謝。
仕事ではまってたもので、お礼が遅くなってすみません。
>>125 わしも、(C 言語で) 条件を記述する時は変数を
右側にもっていくようにします。
10 REM "おいみんな、プログラム言語で語れよ"
20 REM "でもこういうのって、ありなのかは微妙だなあ"
「めくりんシステムの完全実装」で本一冊書けそうな気がするな。
System.out.println("失業しちゃった…");
for ( ; 再就職出来ない; ) {
System.out.println("再就職したい…。");
}
130 :
名無しさん@初回限定:03/02/04 01:02 ID:XHC0Iq8p
代入式では 変数を左に
比較式では 変数を右に
よくある ファイル関数なんかは、
if (NULL == (fp = fopen(FILENAME, FOPENMODE)))
とか、
while (fread(fp , buff, BLOCK_SIZE, block_req) == block_req)
とか
procedure to129;
function Mensetu:boolean; begin Mensetu := Random(100) > 80; end;
var Saiyou:boolean;
begin
while not Saiyou do
begin
Saiyou := Mensetu;
if Saiyou then WriteLn('キター!') else WriteLn('ガンガレヨ!');
end;
end;
XOR A
NOP
8B4E0C83F900743A83F901741183F902741583F904741DEB24B80100000033C0EB1BB80200000033C0EB12B80300000033C0EB09B80400000033C0EB0033C0C3
C9と3EとFFくらいしか覚えてないな。
CD と C9 はセットやね。
C3 00 00
16進ダンプは言語ちゃうやろ....
SUBROUTINE DEBUG
C
WRITE(*,*) 'デバッグヲ カイシシマス。'
DO 10 I=1.100
WRITE(*,*) I, '% デバッグ シマスタ。'
10 CONTINUE
WRITE(*,*) 'デバッグ カンリョウ。'
C
RETURN
END
>137
マシン語,じゃねーの?
昔は直接マシン語で組めた『本物のプログラマ』も居たみたいだけど
あたしゃニモニック表見ながらしかできませんでした
C9と00しか覚えてないよー
>>139 まぁ機械語でもダンプリストって言い方するし
それに生の機械語は「言語」と言えるのか怪しいと思う
個人的にはアセンブリ言語が最低線。
雑誌のプログラムを手打ちしていたその昔は、
「BASIC」と言いつつDATA領域から
生マシン語をREADするような奴が多かったわけだが
打ち間違うと実行時に飛ぶんだよなw
マシン語が言語以外のなんだというのだ……
アセンブラなりコンパイラなりを通さないものは言語では無い,という基準か?
>141
チェックサムが付いてるぶん16進リスト直打ちの方がましだったりw
教科書的な定義だけど、最もローレベルのインタプリタがCPU、
それを動かす言語がマシン語、と言う事ができる。
>142
お互い歳を食ったな…
年齢バレしちまうな(w
ベーマガのリストを必死になって打ち込んでたのが懐かしい…
(DEFUN 保守 (LAMBDA ()
(COND
((GREATERP (DIFFERENCE 今日 最終カキコ) 7) カキコ)
(T スルー)
)
))
public class Toon extends TeaTime{
public void HScene( ){
while( true ){
this.shortMovie.play();
}
}
}
class ErogPlayingException extends Exception {
public String toString( ){
return "ErogPlayingException";
}
ErogPlayingException( ){ new Liquid( ); }
}
IDがCP/M記念カキコ
SWAP領域確保記念カキコ
遅レスだが。
>>143 ちゃんと規格書読めば、各命令語のどこがレジスタをあらわして、
どこがアドレッシングでとかわかるので言語って実感が生まれるな。
でもIntel系は結構意味不明だったりする罠。
>>146 ワラタ
try{
while ( true ){
new EroGame.play( );
}
}catch( ImoutoBareException es ){
System.out.println("おにいちゃんのバカ!");
}catch( OkanBareException eo ){
System.out.println("あんたイイ歳して……");
}finally{
System.out.println("〜悲惨スレへようこそ〜");
}
あぼーん
☆ はじめてのぬるぽ with エロゲネタ ☆
「ぬるぽ」とはJava言語でのエラー、Null Pointer Exceptionの略。
中身の入っていない場所 ( = ヌルポインタ )
経由で何かしようとすると出るエラーです。
つまりひとことで言うなら「中の人などいない!」なんですけど……
以下、普通の時とぬるぽの時の2つの例を挙げて
できるだけわかりやすく説明してみます。
☆ はじめてのぬるぽ with エロゲネタ ☆
〜 しおりちゃんのばあい 〜
┌─┬───────────────────┐
|1.| Shiori shiori; // 容器を準備 |
└─┴───────────────────┘
_______
/ /
/ /,||
しおりたん専用机 → || ̄ ̄ ̄ ̄ ̄||/||
|| ̄ ̄ ̄ ̄ ̄|| ||
|| ||
┌─┬───────────────────┐
|2.| shiori = new Shiori( ); // 中身を準備 |
└─┴───────────────────┘
ヽ
_ノノ
'´ ヽ
- - ─── !〈(( ))ノ)
- ─── ノ! l.゚ ヮ゚人
(´ノ⊂)H!つヽ _______
- ─── (( く_ 〉ノノ / /
し'ノ / /,||
|| ̄ ̄ ̄ ̄ ̄||/||
|| ̄ ̄ ̄ ̄ ̄|| ||
|| ||
┌─┬───────────────────┐
|3.| shiori.getNenrei( ); // よくある質問|
└─┴───────────────────┘
__∧_∧._ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ ( ´∀`) < ねぇ、しおりちゃん。本当は何歳?
| ̄ ̄ ̄ ̄ ̄| \______________
| JAVA .|/
. ̄ ̄ ̄ ̄ ̄ ヽ
_ノノ
./ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ ;'´ ヽ
| えと、えと…… ほんとに > !〈(( ))ノ)
| 18さいいじょうなんだよ☆ | ノ!l.゚ヮ ゚人
.\__________/ (ノ⊂H!(⊃ヽ__
/ ̄  ̄/
/ /,||
|| ̄ ̄ ̄ ̄ ̄||/||
|| ̄ ̄ ̄ ̄ ̄|| ||
|| ||
┌─┬───────────────────┐
|4.| // 正常終了 |
└─┴───────────────────┘
__∧_∧._ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ ( ´∀`) < よ く で き ま し た ( ソフ倫的に )
| ̄ ̄ ̄ ̄ ̄| \______________
| JAVA .|/
. ̄ ̄ ̄ ̄ ̄
// ところが、ステップ2.で中身を入れ忘れると……
☆ はじめてのぬるぽ with エロゲネタ ☆
〜 さおりちゃんのばあい 〜
┌─┬───────────────────┐
|1.| Saori saori; // 容器を準備 |
└─┴───────────────────┘
_______
/ /
/ /,||
さおりたん専用机 → || ̄ ̄ ̄ ̄ ̄||/||
|| ̄ ̄ ̄ ̄ ̄|| ||
|| ||
┌─┬───────────────────┐
|2.| // さおりちゃんは小悪魔 |
└─┴───────────────────┘
_______
/ /
/ /,||
|| ̄ ̄ ̄ ̄ ̄||/||
|| ̄ ̄ ̄ ̄ ̄|| ||
|| ||
┌─┬───────────────────┐
|3.| saori.getNenrei( ); //. よくある質問 |
└─┴───────────────────┘
__∧_∧._ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ ( ´∀`) < ねぇ、さおりちゃん。本当は何歳?
| ̄ ̄ ̄ ̄ ̄| \______________
| JAVA .|/
. ̄ ̄ ̄ ̄ ̄
_______
/ /
/ /,||
中の人などいない! > || ̄ ̄ ̄ ̄ ̄||/||
|| ̄ ̄ ̄ ̄ ̄|| ||
|| ||
__∧_∧._ / ̄ ̄ ̄ ̄ ̄
/ ( ´∀`) < ・ ・ ・ ・ ・ ・
| ̄ ̄ ̄ ̄ ̄| \_____
| JAVA .|/
. ̄ ̄ ̄ ̄ ̄
┌─┬───────────────────┐
|4.| // ここで例外発生 (Null Pointer Exception) |
└─┴───────────────────┘
__∧_∧._ / ̄ ̄ ̄ ̄ ̄
/ ( ´∀`) < ぬ る ぽ
| ̄ ̄ ̄ ̄ ̄| \_____
| JAVA .|/
. ̄ ̄ ̄ ̄ ̄
アハッ
_,.'⌒
'´ ヽ
! 〈ノ )))) | | ガッ
,ノ! l.゚ ヮ^人 | |
(´⊂)H!ハヽ 人
(( く_〃ノ) < >__Λ∩__
し__/;' .//.V `Д´)//|
(_フ彡  ̄ ̄ ̄ ̄| .|
| JAVA .|/
 ̄ ̄ ̄ ̄ ̄
最終コマがイマイチなので微調整します( ;ー;)ノ
アハッ
_,.'⌒
'´ ヽ
! 〈ノ )))) | | ガッ
,ノ! l.゚ ヮ^人. | |
(´⊂)H!ハヽ, 人
(( く_〃ノ) < >__Λ∩__
し__/;' //V `Д´)//|
(_フ彡 | ̄ ̄ ̄ ̄ ̄| |
| JAVA .|/
 ̄ ̄ ̄ ̄ ̄
ワラタ
ぬるぽの人が箱に入ってるのには何か意味が?
>>161 ぬるぽの人をJAVAの箱に入れたのは、
JavaVM (仮想マシン:実行してくれたりエラー吐いたりしてくれるヤツ)
らしさを少しでも出そうとしてみた結果です(;´ー`)チョット ムリガ アッタカナ?
// 積み木崩しテンプレート
stack < erog > myCollection;
while ( true ) {
myCollection.push ( new erog() );
}
166 :
名無しさん@初回限定:03/05/20 18:41 ID:1Yta7agd
1000 SCREEN 3
1010 CONSOLE ,,,1
1020 'ID CHECK
168 :
名無しさん@初回限定:03/05/28 00:47 ID:KnJhO6aX
168 RESTORE:END
あぼーん
ほしゅ
# 触手プレイ
# 最近ヌルくてasmもCも忘れたのでRubyで勘弁
shokushu = Shokushu.new( 20 ) # とりあえず触手20本
girl = Maid.new # メイドさんキボンヌ
counter = Counter.new # スレッドセーフ
srand
th = []
shokushu.each do |s|
# girl.partsで身体のパーツをArrayで取得可能。
parts = girl.parts[ (rand * girl.parts.size).to_i ]
th << Thread.new( s, parts ) do |i, j|
# マルチスレッドでぬるぬる
begin
loop do
i.touch( j )
break if 10 <= counter.value #10回はイかせてーな
end
rescue Ecstasy
counter.inc
end
end
end
th.each{ |i| i.join }
172 :
171:03/05/30 03:15 ID:EIDBTypQ
# 仕様変更&ポカミス修正。
# こっちのがすっきりしてるかと。
require 'shokushu'
require 'girls'
shokushu = Shokushu.new( 20 ) # とりあえず触手20本
girl = Maid.new # メイドさんキボンヌ
srand
th = []
shokushu.each do |s|
# girl.partsで身体のパーツをArrayで取得可能。
parts = girl.parts[ (rand * girl.parts.size).to_i ] # 運が悪ければ二本差し以上
s.touch( parts )
th << Thread.new( s ) do |i|
# マルチスレッドでぬるぬる
unless 10 > girl.ecstasy
i.parts.ana? ? i.insert : i.kurikuri
end
end
end
th.each{ |i| i.join }
int main(void)
{
printf("%s\n%s\n","ヽ","つ");
while(1)printf("%s\n","ぁ");
return 0;
}
今さらだが、
>>50の Templete Method は全然違うと思う。
public abstract class メイド{
abstract void ご奉仕();
abstract void フィニッシュ();
void エチシーン(){ // ご奉仕→フィニッシュの順序は鉄板
ご奉仕(); // ご奉仕内容はメイドのタイプに任せる
フィニッシュ(); // フィニッシュ内容は以下略
}
}
public class 巨乳メイド extends メイド{
void ご奉仕(){
//胸で
}
void フィニッシュ(){
//顔射
}
}
public class ロリメイド extends メイド{
void ご奉仕(){
//口で
}
void フィニッシュ(){
//口内射精
}
}
こんな感じじゃない?
>>50だとただ継承してるだけになっちゃう。
>>174 全くそのとおりです。コードもそのとおりです。
今さらですがあまりにあんまりなマチガイ内容で泣きそうです。
// しかもIDがYUKIですね( ;ー;)
-----
>>174さんの例で解説してみます。
TemplateMethodには以下の2種類のメソッド(関数)があります。
・テンプレートメソッド:「エチシーン」のコト。
スーパークラス(メイド)で実装。↓の抽象メソッドを取り扱うが、
その中身が具体的に何をしているかまでは詳しく知らない。
・抽象メソッド(abstract付き):「ご奉仕」「フィニッシュ」
サブクラス(巨乳メイド/ロリメイド)で具体的に細部を以下略。
スーパークラスで流れというか"おやくそく"を、
それを継承するサブクラスで詳細を記述するのが特徴です。
-----
// これで大丈夫ですよね…… ∧||∧
176 :
174:03/06/04 10:39 ID:dfMn6pg+
あ、俺のコードも間違ってる。各メソッドの頭にpublicを各自脳内補完よろしこ。
ついでにフィニッシュがメイドのメソッドなのはおかしいような気もするが気にしたら負けだ!
>>175 解説サンクスコ
>しかもIDがYUKIですね
Σ( ̄□ ̄;
main(){
for(int i=1;i<=3:i++)
printf("もうすっかり生女じゃ立たない\n");
return 0;
}
main(){
for(int i=1;i<=3:i++)
printf("悲惨だな。\n");
return 0;
}
for(i=0;ヲタで悪いか!;i++)printf("%*sヽ(`Д´)ノ\n",i);
return ture;
ぬるぽ
sub ぬるぽ {
hit(
>>181);
return true;
}
がっ!() while(ぬるぽ);
LD A,(0006H)
INC A
OUT A,'a'
OUT A,'g'
OUT A,'e'
#include<stdio.h>
#define HATSUBAIBI 65536
int main(void)
{
for(i = 0; i < HATSUBAIBI; i++){
printf("発売日が延期になりました。\n大変申し訳ございません。\n\n");
printf("Windows専用 恋愛AVG\n2003年発売予定\n");
printf("クラナド、鋭意開発中!\n");
}
return(0);
}
安心しろ、最近のint型のサイズは4バイトあるから。>鍵っ子
qwordも使えば?(w
>>186 実はOpteron with TuboLinux64でコンパイルしたもんでintでも8バイト
あったんですよ。ええ。
つか、そもそも変数宣言してないやん。
もう、これでええやん。
while(1){printf("発売日が延期になりました。\n大変申し訳ございません。\n\n"); }
ループ終わらないのかよ…_| ̄|○
じゃあこんなかんじで
Company c = new Company( "くらげ" );
for( ; ; ){
try{
for( ; ; ) c.announce( "発売日が延期になりました。\n大変申し訳ございません。\n\n" );
}catch( 会社消滅Exception e ){
Person p = c.get社長();
c.dispose();
c = new Company( CompanyNameFactory.createRandomName() );
c.set社長( p );
}
}
193 :
ruby:03/06/18 23:37 ID:5ZBt66TS
require 'date'
class Product
attr_accessor :release_date
def initialize name, release_date
@name = name
@release_date = release_date
end
def masterup?
return false
end
end
class ScheduleError < RuntimeError; end
product = Product.new 'LOVERS', Date.new(2003, 6, 27)
begin
unless product.masterup?
raise ScheduleError.new product.release_date.to_s
end
rescue ScheduleError => e
puts e.message
product.release_date += rand(30)
retry
end
>>189 あ、忘れてた…。コンパイルエラーでるな、これじゃ。
あぼーん
(while t
(print "クラナドまだー?"))
やると落ちました。
System.out.println("保守");
while(1){printf("保守\n"); }
#!/usr/local/bin/perl
print "Context-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>保守</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "<H2>保守</H2>\n";
print "</BODY>\n";
print "</HTML>\n";
あぼーん
201 :
山崎 渉:03/08/02 00:56 ID:1u9MLYQn
(^^)
(hoshu)
usage:HATSUBAI softname [/d:yyyymmdd] [/F]
そのsoftnameの発売日を標準出力に出力します。
/d:yyyymmdd:発売日を指定します。
/F:発売日が強制確定されますが、適用出来ないsoftnameがあります。
またLV3以下の環境依存バグは解消されないことがあります。
204 :
名無しさん@初回限定:03/08/11 17:35 ID:OIX7nWsd
ヴァカ++
あぼーん
class エロゲーキャラ{
private int 実年齢;
public int get年齢(){
return(実年齢<18? 18+rand()*10000: 実年齢);}
}
>>206 return(実年齢<18? 18: 実年齢);
ではダメなのだろうか。
俺Perlしかできねえ。
Cは少し齧った程度だ。
209 :
名無しさん@初回限定:03/09/03 00:59 ID:fKTTF/Wp
hageます
COBOLが入ってねぇ!
あぼーん
COBOLでもドゾー
int くらげ
while(くらげ<=∞){
System.out.println("恋人達延期");
}
#include<stdio.h>
main()
{
int i;for(i=0;i<10000;i++)
printf("お前が今感じている感情は以下略\n");
}
C言語習いたて。
これで動くのかな?
10 PRINT"動くとは思うけど"
20 PRINT"一万回も感情を感じられるのはなんか嫌だ。"
30 END
216 :
名無しさん@初回限定:03/10/01 01:58 ID:xei8Fq6t
#include<iostream.h>
winmain()
{
int i;for(i=0;i<10000;i++)
cout << "お前が今感じている感情は以下略" << endl;
}
class Aomurasaki {
public static void main(String[] args) {
for (int i = 0; i < 10000; ++i) {
System.out.println("お前が今感じている感情は以下略");
}
}
}
class Aomurasaki {
public static void main(String[] args) {
for (int i = 0; i < 2; ++i) {
System.out.print("R");
}
}
}
219 :
名無しさん@初回限定:03/10/03 17:35 ID:vYI5YhMa
#include "pia carrot3.h"
main()
{
char name[40];
puts(お名前= )
gets(name)
if(name ==朱美) printf("非処女\n");
}
実行結果
お名前=朱美
非処女
#include <iostream>
using namespace std;
class NullPointerException{
string str;
public: NullPointerException(const string _str){ str = _str; }
string what() { return str; }
};
void main() {
cout << "山崎 渉 ";
try { throw NullPointerException("ぬるぽ^^;"); }
catch(NullPointerException &e) { cout << e.what() << endl; }
}
while(ぬるぽ){
printf("がっ");
}
222 :
名無しさん@初回限定:03/10/09 17:47 ID:ewStzaHJ
<html>
<head>
<titile>ぬるぽ</title>
</head>
<body>
山崎渉 逝ってよし<br>
</body>
</html>
public class res{
public static void main(String args[]){
System.out.println("保守カキコ");
}
}
public class RESPONCE{
public static void main(String args[]){
System.out.println(">223");
System.out.println("クラス名は大文字で始めた方が良いんじゃなかったっけ?");
}
}
SQLキボンヌ
10 LOCATE 12,0:PRINT "ヽ(´ー`)ノ"
20 END
SELECT '>224 全部大文字も問題ねえか……' FROM DUAL;
public class Res2res extends RESPONCE{
public static void main(String args[]){
System.out.println(">227");
System.out.println("わざとでは?");
}
}
SELECT * FROM GIRL_LST
WHERE AGE BETWEEN 3 AND 10;
#include <iostream>
using namespace std;
int main()
{
cout << "ミ・д・ミ <ほっしゅほっしゅ!" << endl;
}
ぜんぜん判らん
画面に出力するだけで何の芸もないネタはいい加減にしてくれ
import java.awt.*;
import java.awt.event.*;
public class Responce extends Frame {
Responce(String t){
super(t);
setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
setSize(250,50);setResizable(false);
WindowListener l=new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
};
addWindowListener(l);
}
public static void main(String[] args) {
Responce f=new Responce("
>>233");
f.setVisible(true);
}
public void paint(Graphics g){
Font fnt=new Font("Serif",Font.PLAIN,20);
g.setFont(fnt);g.setColor(Color.BLACK);
FontMetrics fm= getFontMetrics(g.getFont());
String str="こんな感じで良いのか?";
Insets i=getInsets();
int x=(getWidth() - i.left - i.right - fm.stringWidth(str))/2 + i.left;
int y=(getHeight() - i.top - i.bottom - fm.getHeight())/2 + fm.getAscent() + i.top;
g.drawString(str,x,y);
}
}
import network.bbs.threadfloat.*;
public Class ThreadMaintenance{
public static void main( String ar[] ) throws Exception
{
BBS bbs = ThreadFloat.getBBS( "2ch" );
BBSThread t = bbs.getBoard( "葱板" ).getThread( "プログラム言語で会話するスレ" );
for( Iterator ite = t.iterator() ; ite.hasNext() ; ){
Responce res = (Responce)ite.next();
if( !res.isネタ() ) res.remove();
}
t.refrect();
}
}
10 PRINT "ぜんぜん判らん"
>229
微妙に病んでてワロタ
238 :
名無しさん@初回限定:03/11/17 21:59 ID:GA4BIolK
>237
微妙なのか? 禿藁
public class Res{
public static void main(String args[]){
System.out.println(">237-238");
System.out.println("せめてBASICでもいいからプログラム形式にしろよー・・・・");
}
}
tawagoto:
ld c,98h
ld hl,str
ld b,(hl)
loop:
inc hl
ld a,(hl)
out c,a
djnz loop
reti
str:
db 10
db 'ナ',ン'','タ','゙',32,'コ','ノ','ス','レ','ハ'
10 rem save"代弁者.bas",a
20 print "あなたはマブラブをクリアしましたか? (y/n) ": if input$(1)<>"y" goto 20
30 print "オルタマダー ";: goto 30
Do While 1
If MasterUP=True Then
Print "祝!マスターアップ!"
Exit Do
Else
Print "発売延期のお知らせ"
GoSub DebugRoom
End If
Loop
243 :
名無しさん@初回限定:03/11/22 17:11 ID:SLvIC5j3
10 モシ res-999 ナラバ 10
20 カケ "1000!"
delete from 君望 where name='孝之' and dates=3years
insert into 君望 values ( '遙', memory of 3years )
commit
C:\>bu.com printf "ワケワカランw"
select * from シスプリ where 属性=お兄ちゃんに全てを捧げます
update シスプリ set 身体=非処女 where 属性=お兄ちゃんに全てを捧げます
delete from シスプリ where 身体=非処女
C:\:exit
print"ぬるぽ"
end
try{
1-1000;
}catch( ぬるぽException npe ){
System.out.println( "ガッ" );
}
DELETE FROM このスレ WHERE 本文 LIKE '%ぬるぽ%';
DELETE FROM このスレ WHERE 本文 LIKE '%NullPointerException%';
while(1){
strcpy( myemotion, randomtxt);
if ( strcmp (myemotion , "このスレまだあったのか") == 0 )
break;
printf( "月光の降り注ぐ庭で、%sは。\n", myemotion);
}
アナタは現役プログラマー。近所には大の仲良しさんの
双子の美少女・西村ななみちゃん、このみちゃんが住んでいます。
ある日、二人のお母さんから夏休みの家庭教師をお願いされました。
「…ななみ、おにいちゃんとVC++したいな」
「このみにBCB教えてくれる、おにいちゃん?」
もちろん、おにいちゃんは即答です。「いいよ、僕でよければ喜んで」
「わぁ…よかった…」
「わぁーい、やったーっ!」
こうして夏休み中、毎日ななみちゃんとこのみちゃんに
お勉強を教えるコトになったのです。
しかし、お勉強を教えるのは二人だけではありません。
「MASMも混ぜて欲しいな…」としおりちゃん。
「TASMも教えて、おにいちゃん」とさおりちゃん。
「ゆうな…VBわからないの…」とゆうなちゃん。
「QBだけ仲間はずれー?」とまいなちゃん。
なんと『はじめてのおるすばん』『はじめてのおいしゃさん』
に登場した四人も仲良しのお友達として登場するのですっ!
一気に教え子が6人になったおにいちゃん。
恋のABC++もしっかり教えてあげてね。
> MASMも〜、TASMも〜
x86も〜、とMC68kも〜、Z80は〜?とか書けばよかったのに
insert into たにま ('つ');
update 子宮 set 卵子 = 受精卵 where 避妊具 = NULL
commit
10 PRINT "500スレを超えました!":GOTO 10
$a=0;
while(1){
if($a<2){print"ズン";}else{print"パン"}
$a++;if($a>3){$a=0;}
}
SELECT フラグ FROM 俺の人生 WHERE 年齢<=30
選択されませんでした・・・・・・・・・・・(泣)
ぬるぽ=C:\winny
5 REM jisakujien
10 if res(x)= "ぬるぽ" than res(x+1) + "ガッ" else res(x)="ぬるぽ"
20 goto 10
than?
10 REM 人生とOS(Windows)の違い
20 REM 1.OSはバージョンアップする
30 REM 2.OSは再インストールできる
40 REM 3.OSはレジストリの復旧ができる
50 REM 4.OSに不具合があっても全てビルのせいにできる
cls 0
mes "てすと"
stop
select max(profit_1) , weak_point
into asm_sales , next_title
from (
select sum( pocketmoney)/3 "profit_1" , weak_point
from ero_gamers
where worship_co is null
and brave_point > 99
group by weak_point);
jmp 0000
#!/usr/bin/bash
if [-e bottom]
then
echo 保守
else
echo > /dev/null
fi
269 :
名無しさん@初回限定:04/02/26 20:59 ID:v84dBkVC
アセンブラで記述してる方々へ
最初に割り込み禁止を宣言しないのですか?
$> touch breast
Permittion denied.
TEroGenger = class
protected
procedure DrawPicture;virtual;abstract;
end;
T3233310=class(TEroGenger)
public
procedure DrawPicture;override;
procedure Kuwa;
end;
procedure T3233310.DrawPicture;
begin
//以下企業秘密 (`ロ´)!
〜〜〜〜〜〜〜〜
//
end;
TIkegamiAkane=class(TEroGenger)
private
procedure TracePicuture(Src:TEroGenger);
public
procedure DrawPicture;override;
procedure LimitSale;
end;
procedure TIkegamiAkane.DrawPicture;
begin
TracePicuture(g3233310);
//Deleted 200X/10/12
//TracePicuture(gItaruHinoue);
//
end;
procedure TIkegamiAkane.TracePicuture(Src:TEroGenger);
begin
Src.DrawPicture;
end;
objectpascal?
誰かC++に訳してホシィ…
interface eroGamer {
String gatt = "ヽ(`Д´)ノ";
}
IUnknown * pIUnknown;
IFlagGetter * pIFlagGetter;
EroInitialize();
if ( EroCreateInstance(CLSID_MyLife, NULL, CLSCTX_ALL, IID_IUnknown, (void**)&pIUnknown) == S_OK ) {
if ( pIUnknown->QueryInterface(IID_IFlagGetter, (void**)&pIFlagGetter) == S_OK ) {
if ( pIFlagGetter->FlagGet() == S_OK ) {
cout << "フラグキタ━(゚∀゚)━ !!" << endl;
}
else {
cout << "フラグ(´・ω・`)コナイ…" << endl;
}
pIFlagGetter->Release();
}
else {
cerr << "ソレイゼンノモンダイデツカ…_| ̄|○" << endl;
}
pIUnknown->Release();
}
else {
cerr << "オレッテ(゚∀゚)ナニ?!" << endl;
}
EroUninitialize();
>>274 class TEroGenger
{
protected:
void DrawPicture();
};
class T3233310 : public TEroGenger
{
public:
void DrawPicture();
void Kuwa();
};
void T3233310::DrawPicture()
{
//以下企業秘密 (`ロ´)!
〜〜〜〜〜〜〜〜
//
}
class TIkegamiAkane : public TEroGenger
{
private:
void TracePicture(TEroGenger *Src);
public:
void DrawPicture();
void LimitSale();
};
void TIkegamiAkane::DrawPicture()
{
TracePicture(g3233310);
//Deleted 200X/10/12
//TracePicuture(gItaruHinoue);
}
void TIkegamiAkane::TracePicture(TEroGenger *Src)
{
Src->DrawPicture();
}
あのソースごときで理解できない
>>274はどうかと…
>>279 ObjectPascalだってわかってれば読めると思うけどねぇ‥‥
(´-`).。oO( どーでもいいが、クラス宣言に「__declspec(delphiclass, package)」とメソッド宣言に「__fastcall」付けといたほうが良かったかな‥‥)
>>280 それ以上に重大な違いを見落としている。
282 :
名無しさん@初回限定:04/03/03 02:44 ID:MuIdhyzA
public class age {
public static void main(String args[]) {
String ss = "hosyuる?";
String gg = " どうしようかな…?";
ss = ss + gg;
System.out.prinln(ss);
}
}
10 if -1 then print "フラグコネ━(゚A゚)━ !!" else print "フラグキタ━(゚∀゚)━ !!"
20 goto 10
keep alive
if( threads.length > 500 ) thread.write( "ミ・д・ミ " );
カケ ”サバイテン”
カケ ”キネンカキコ”
287 :
名無しさん@初回限定:04/04/25 14:27 ID:ch6T68Tm
?
ぴゅう太のbasicが
>>286みたいな感じだったような
10 PRINT "ぴゅう太って16bitマシンだったのか。"
20 PRINT "知らなかった。"
30 STOP
SELECT CHR_NO,CHR_NAME,ALIGN_NAME,FREE_COMMENT FROM M_CHARACTER
WHERE (ALIGN_NO = 5) AND (VIRGIN_DIV = 0);
/* 概要、キャラクタマスタを以下の条件で検索する */
/* 属性が魔法使い、かつ処女 */
/* ALIGN_NO:属性コード(5:魔法使い)、VIRGIN_DIV:処女区分(0:処女、1:非処女、9:不明) */
【実行結果】
CHR_NO|CHR_NAME |FREE_COMMENT
-------+-------------------------+----------------
15 ラピス・メルクリウス・フレイア その『たん』余計ー
1件が選択されました。
センスないなぁ・・・。SQLじゃだめか・・・。
ラピス様にお仕置きされないうちに逝ってくる・・・。
;
class kuragesure{
SUREDDO hoshu;
hoshu.getSINSAKU_HATUBAIBI();
}
>>292 揚げ足をとるようだけど・・・
×:SUREDDO
○:THREAD
・・・あ、でもこれだと予約語とかで引っかかるかな?
何言語の話をしてるのかはしらんがクラス名をローマ字で定義しちゃ×なのか?
プログラム言語って、日本語プログラムひまわりも入れていいのか?
>>295 SQLがOKなくらいだからいいんじゃない?
「もう、延期自体ネタになってきたな」と、尋ねる。
もし、それが、はいならば、メビ鬱の輪へ、飛ぶ。
もし、それが、いいえならば、煽りあいへ、飛ぶ。
//配列の扱い方がいまいちよくワカンネ
C:\>SED s/\(ぽ\)/ぬる\1/
ぽ
^Z_
>>298 #include <stdio.h>
int main{
printf("ガッ\n");
return 0;
}
300 END
6502だったか6809だったか忘れたけど
ADDDDってニモニックがなかったっけ?
302 :
チュパカブラ:04/05/29 21:51 ID:tgJQ+2cX
俺と俺の友達マシン語で会話できるよ
>302
シリコンと希少金属の構成物を友達とは言わない。
保守
#!/etc/perl
printf("望みを叶えてしんぜよう : ");
chomp( $a=STDIN );
printf("\n");
printf("そんなの無理に決まってんだろヴォゲ!!\n");
#nullpo
10 X$="がっ
>>305"
20 print X$
30 goto 10
msgbox = "このスレ直にDATおちだな"
end
goto 1
(define sage () (print sage))
(sage)
PROCEDURE DIVISION.
DISPLAY "次回作からワレメ(幼すじ)表示OKになりませんかね".
/**
* ゲームに含まれるエロシーンのすじ幅をチェックし、ソフ倫を通るか調べる
* @param g ゲームオブジェクト
* @return チェックを通るか
*/
boolean isソフ倫チェック( Game g )
{
for( Iterator ite = g.scenes().iterator() ; ite.hasNext() ; ){
Scene s = (Scene)ite.next();
if( s.isエロシーン() ) continue;
if( s.getすじwidth() > 1 ) return false;
}
return true;
}
>>311 さすがはエロゲ。バグってるのはお約束?
> if( s.isエロシーン() ) continue;
条件が逆
COBOLか、懐かしいなオイw
/*圧縮回避*/
<font size="5">
やったー、生き残ったー!!<br>
</font>
<--うわ、本当に生き残ってるよ--!>
100 REM 雄叫び
110 FOR X=1 TO 10000
120 PRINT "エロゲーマンセー!!!"
130 NEXT X
140 END
<?php
$a="ぬ";
$b=1;
$c=0;
print($a.$c."<br />");
while($b < 2){
print("お".++$c."<br />");
$b--;
/*if($c >= 20){
break;
}
*/}
?>
実行するなよ、特にレンタルサーバでやるなよ。絶対だぞ
Dim nanasi As Integer
If nanasi = < 100 Then
Picure1.Print "ぬるぽ"
nanasi = nanasi + 1
Else
Picture1.print "ガッ"
End If
/* なんでマがこんなに多いのん? */
#define heroineAGE 18
int sohurin()
{
if(kouryaku_kyara_AGE < heroineAGE){
return -1;
}
return 0;
}
実行結果
建前:0
本音:Segmentation fault
while (DAT落ち) {
printf("保守\n");
}
保守
このスレいいなぁ…。
goto Athene
Athene:
Head_coach Nakahata;
if(Win) {
print("長嶋のおかげ");
}
else {
print("中畑の責任");
}
Nakahata = orz;
return Japan;
Object obj = NULL;
obj.get();
1: シンボルを解決できません
シンボル: 変数 NULL
2: シンボルを解決できません
シンボル: メソッド get ()
エラー 2 個
char st = "aaa";
printf("%c",st[3]);
class guti
{
public static void Main()
{
System.Console.WriteLine("ネタがねぇ");
}
}
327 :
名無しさん@初回限定:04/09/12 18:01:56 ID:QLVFWyUK
for(int i=2; i<=326; i++)
printf(">>%d駄レス",i);
#include <iostream>
int main(int argc, char *argv[])
{
class rev_output {
public: rev_output(const char msg[]) {
for (int i=strlen(msg)-2; i>=0; i-=2)
std::cout << msg[i] << msg[i+1];
std::cout << std::endl;
}
};
rev_output msg("…いなら解が義意在存のレスのこ");
return 0;
}
print("悲惨スレからの派生(隔離)" \n);
ネタがないのでDelphiで保守しておきます。
function Hosyu: Boolean;
begin
ShowMessage('保守作業');
end;
331 :
マシン語:04/10/10 11:38:19 ID:LEtfEbvq
DI
EI
MOV DX, DATA
MOV AH, 09h
INT 21h
DATA DB "ぬるぽ"
>>332が暴走をねらっているのでなければ
push cs
pop ds
mov dx, DATA
mov ah, 09h
int 21h
mov ax,4c00h
int 21h
DATA db "ぬるぽ$"
do 1000 i=1,100
write(*,*) 'ネコミミモード♪'
1000 continue
stop
end
#include <stdio.h>
void hyoji(char *str)
{
printf("%s\n",str);
}
void main(void)
{
int suti;
char jyukugo[3][10]={"LIFE","BETTER","ASK"};
do{
printf("数値1~3の範囲で入力してください:");
scanf("%d",&suti);
}
while(suti<1||suti>3);
hyoji(&jyukugo[suti-1][0]);
}
超初心者です。同じ結果が出るように、これを改変した別のプログラムを教えてくださいdesu。
>>335 こうですか?よくわかりません!
#include <stdio.h>
void hyoji(char *str)
{
printf("%s\n",str);
}
void main(void)
{
int suti;
char jyukugo[3][10]={"宿題は","自分で","犯りなさい"};
do{
printf("数値1~3の範囲で入力してください:");
scanf("%d",&suti);
}
while(suti<1||suti>3);
hyoji(&jyukugo[suti-1][0]);
}
#!/bin/sh
echo 2> "nullpo"
import com.bbspink.NullPo;
/**
* NullPoBean
*/
public class Nullpo throws GattException{
private NullPo nullpo;
public Nullpo(NullPo _nullpo){
this.nullpo = _nullpo;
}
public NullPo getNullpo(){
return this.nullpo;
}
}
C:\>SED s/\(ぽ\)/ぬる\1/g
ぽぽぽぽぽぽ
^Z_
class Ore:
public Programer,
private AnimeOtaku,
private GameOtaku
{
friend Aitsu;
private:
TalkByProgram();
TalkByAnime();
TalkByGame()const;
};
共通点の多いアイツにも、
ひとつだけ、超えられない壁がある。
341 :
名無しさん@初回限定:04/12/23 17:02:43 ID:QNAI8vfp
あげ
10 a$="erog/105823"
20 b$="test/read.cgi/"
30 c$="e.bbspink.com/"
40 d$="8386/585"
50 e$="
http://pi"
60 f$=e$ & c$ & b$ & a$ & d$
70 g$=a$ & b$ & c$ & f$ & d$
80 OPEN f$ FOR INPUT as #1
90 INPUT j$,#1
100 LOCATE 30,10:PRINT j$
110 END
343 :
名無しさん@初回限定:04/12/24 07:33:34 ID:cdsPfPuy
LD X0
ANI X1
OUT Y0
某Cプログラム基礎のテストで出た問題。
2ちゃんねらなら1と2を見たらあれを想像するよね。
変数名として正しくないものはどれですか。
1. no
2. _no
3. no1
4. no-1
5. no_1
6. わからない
つーか6番の選択肢はなんだ。選ぶ奴いるのか。
346 :
344:05/01/03 17:40:39 ID:y1JWTn2T
同じテストでこんなのもあった
以下の説明のうち間違っているものを一つ選びなさい
1〜4 (省略。アスキー文字の法則性についての説明文)
5 1-4は全て正しい
6 わからない
1〜4に間違いがあったら5も間違いになるけど、択一問題だしありえない。
だとすると6が正解なのか…?
というかそれ以前に、5はプログラム問題ではない気がしてならない。
>344は最初見たとき変数名に日本語を使うなって問題かと思った。
SQL> SELECT AGE,ALIGN
2 FROM TBL_EROG_CHARS
3 WHERE AGE >= 30
4 AND BUST < 80
5 AND SEX = 1 --(0:男 1:女)
6 /
>>344 2も変数名としてはちょっといただけないね
<html >
<head>
<title>プログラミング言語で会話するスレ</title>
</head>
<body>
珍しい(・∀・)スッドレ! 発見w
<body>
</html>
>>349 そうでもない。というか
ローカル変数xに対して、それに対応する引数を_xと書く
コーディングスタイルがあります。
352 :
344:05/01/09 19:28:10 ID:gydBThzh
bool _no;
int orz=3;
char OTZ;
なんかやだなこういう変数w
orz=○| ̄|_なんて言い出したのもマ板住人だし。
>>351 うん、ある。
実にいただけないコーディングスタイル。
>>351 Mathematicaとかは、スタイルというよりそれが必要だったような気がする。
ていうか、_foo とかの名前は、普通Cでは内部的な使用のために
残しておくものだよね。(それは __foo だったかな?)
なんでfooとbarなのさ
357 :
344:05/01/11 23:39:55 ID:jd3Lrx3L
日本語で言う「なんとか」「かんとか」にあたる言葉のはず。>foo、bar
うあ、いい加減名前残ってるのに気づけ俺
久しぶりにC言語書いてみる・・・間違いだらけそう。
void Hatayouku(char *Name, char *Neta1, char *Neta2, char *Neta3,)
{
printf("私%s,%sって言うじゃなーい\n",Name,neta1);
printf("でも、%sですからー、ざんねーん!!\n",neta2);
printf("%s、斬りっ\n",neta3);
}
>362
void main{
char* NLP = 0;
Hatayouku(NLP,NLP,NLP);
}
void main{
try
{
char* NLP = 0;
Hatayouku(NLP,NLP,NLP);
}
catch(...)
{
printf("ガッ\n");
}
}
(つA`)アアン イケズゥ
public class Hoshu {
public static void main(String[] args) {
Sure programmingTalk = new Sure(1032797915); // 「もちろん」のsureじゃないですよ
int DohoshuOrNot = programmingTalk.getDaysFromLastRess();
if(DohoshuorNot == 結構長い) programmingTalk.doHoshu();
}
}
// Sure って、まさか Thread じゃないよ…ね…?
ローマ字だとなんか問題あるんだろうか
Threadクラスって、もともとあったと思うので重複避ける為に
ローマ字にしました。習ったばっかでプログラミングのレベル低いですごめんなさい
Msg db '俺ならmyThreadとかつけるな・・・どうでもいいけど',0
push offset Msg
call printf
add esp,4
jmp res_371
; 無限ループになった。スマソ。
- jmp res_371
+ jmp res_373
Human Ore;
Place Akiba;
Game Wind;
Character Minamo;
Ore.GoTo(Akiba).Buy(Wind);
Ore.StartPlay(Wind);
Wind.SetTarget(Minamo);
374 :
名無しさん@初回限定:2005/04/19(火) 08:51:08 ID:6AEvBABy
あげ
struct sockaddr_2ch addr = { AF_2CH };
struct timeval tv;
fd_set rfds;
int fd, nfds, res;
fd = socket(PF_2CH, SOCK_RES, 0);
addr.2ch_port = htons(80);
addr.2ch_thread = "pie.bbspink.com/erog/1032797915";
bind(fd, (struct sockaddr *)&addr, sizeof(addr));
while ( 1 ) {
FD_ZERO(&rfds);
FD_SET(fd, &rfds);
nfds = fd - 1;
tv.tv_sec = 3600 * 24;
tv.tv_usec = 0;
res = select(nfds, &rfds, NULL, NULL, &tv);
if ( res < 0 ) {
fputs("dat落ちしちゃったかも(´・ω・`)\n", stderr);
break;
}
else if ( res == 0 ) {
puts("誰もいねぇ('A`)");
}
else {
if ( FD_ISSET(fd, &rfds) ) {
puts("ネタキタ━━━(゚∀゚)━━━");
}
}
}
/*----- ここからはエロゲを嗜むプログラマが駄弁るスレ -----*/
puts("とか言ってみる。");
main()
{
printf("圧縮直前保守");
}
begin
dbms_output.put_line('9月末まで買うものがない…');
end;
ValueLoaded = true;
ValueFullVersion = ValueVersion + ".20";
function ValueShowAd() {
ValueOptions = '&v=' + ValueFullVersion;
ValueFullOptions = '';
ValueTextTest = 0;
ValueProtocol = "
http://";
ValueBannerType = self.ValueBannerType || "js";
ValueNetworkDisableNoCache = 0 || 0;
if (self.ValueSecure) ValueProtocol = "
https://";
if (self.ValueCategory) ValueOptions += '&c=' + self.ValueCategory;
if (self.ValueBorder) ValueOptions += '&border=1';
if (self.ValuePlacement) ValueFullOptions += '&p=' + self.ValuePlacement;
if (self.ValueKWParam) ValueOptions += '&r=' + self.ValueKWParam;
if (self.ValueKeywords) ValueOptions += '&k=' + escape(self.ValueKeywords);
if (self.ValueKeyCode) ValueOptions += '&' + self.ValueKeyCode;
if (self.ValueHCat) ValueOptions += '&hcat=' + self.ValueHCat;
if (self.ValuePBhav) ValueOptions += '&pbhav=' + self.ValuePBhav;
if (self.ValueTagCascade) ValueOptions += '&tc=' + self.ValueTagCascade;
if (self.ValueAID) ValueFullOptions += '&aid=' + self.ValueAID;
if (self.ValuePID) ValueFullOptions += '&pid=' + self.ValuePID;
if (self.ValueKeyCodes) {
var tempKC = ValueKeyCodes.join("&");
ValueOptions += '&' + tempKC;
}
Private Sub main()
'終了メッセージを表示
MsgBox "■ 終 了 ■"
'すべての処理を中断
End
End Sub
?
382 :
名無しさん@初回限定:2005/09/26(月) 12:13:53 ID:T8m5UKDa0
383 :
名無しさん@初回限定:2005/09/27(火) 14:58:05 ID:Kp0Hh2By0
? "BASICなんてなつかしいだろ?"
print "?でprintのかわりになる。"
void main()
{
printf("C言語なんて何年ぶりだろ?",\n)
}
int main() {
writef("%s\n", "Nullpo!", "Ga!\n");
return 0;
}
pea.l text(pc)
dos _PRINT
addq.l #4
dos _EXIT
text:
dc.b 'まんこ!まんこ!女キャラのまんこ!’,0
5 cls 'BASIC懐かしいが、俺はこれ以外使えないのだ
10 input"How old are you?";x
20 if x>=21 then 60
30 if x>=18 then 80
40 print"Go home!"
50 end
60 print"Welcome to NEGIITA!"
70 end
80 print"You can play EROGE but NEGIITA!"
90 print"Please, come here after you become 21!"
100 end
class Kaisya {
public static void main(String[] args) {
Sysytem.out.println("おうちにかえりたい・・・。");
}
}
(define x '("オルタマダー")
(set-cdr! x x)
>>388 echo "明らかに括弧の数があってない"
for(;;)puts("発売延期");
aborn(age);