無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

ツンデレ祭りー永遠のライバル

おっ!わんくまでツンデレ祭りが開催されているピヨ♪
本当は関数型言語で表現したかったんだけど、日本語表記が難しく面倒なので断念(笑)
ツンデレという言葉でボクが連想するのは熱血バトル漫画ピヨッ!


using System; namespace TunDre { class Program { static void Main( string[ ] args ) { Hero hero = new Hero( ); Console.WriteLine( "後に永遠のライバルとなる敵が出現" ); Enemy enemy1 = new Enemy( hero ); TunnDreRival rival1 = hero.Sympathy( enemy1 ); Console.WriteLine( "\n強敵出現!" ); Enemy hard = new Enemy( hero ); hero.HP = 10; Console.WriteLine( "\n" ); } } /// <summary> /// 主人公 /// </summary> class Hero { /// <summary> /// 最大HP /// </summary> private int m_maxHp = 100; /// <summary> /// 現在のHP /// </summary> private int m_hp; public int HP { get { return this.m_hp; } set { this.m_hp = value; if ( this.m_hp <= ( this.m_maxHp / 10 ) ) OnPinch(); } } /// <summary> /// もうHPがやばいよ! /// </summary> public event EventHandler<EventArgs> Pinch; /// <summary> /// HPがやばい事を外部に知らせる /// </summary> private void OnPinch() { Console.WriteLine( "ここまでか・・・" ); EventHandler<EventArgs> e = Pinch; if ( e != null ) Pinch( this, EventArgs.Empty ); } /// <summary> /// 敵に情けをかける。 /// </summary> public TunnDreRival Sympathy(Enemy e) { Console.WriteLine( "止めは刺さない。お前なら変われる。" ); return ( TunnDreRival ) e; } } /// <summary> /// ツンデレ仕様のライバル /// </summary> class TunnDreRival { /// <summary> /// ライバル視している相手 /// </summary> private Hero rival; /// <summary> /// ライバル視している人を指定して、インスタンスを生成する。 /// </summary> /// <param name="target"></param> public TunnDreRival( Hero target ) { this.rival = target; this.rival.Pinch += new EventHandler<EventArgs>( Rival_Pinch ); } /// <summary> /// それは俺の獲物だ! /// </summary> void Rival_Pinch( object sender, EventArgs e ) { this.Help( ); Console.WriteLine( "お前を倒すのは俺だ!" ); } /// <summary> /// 主人公を助ける。 /// </summary> private void Help() { Console.WriteLine( "だらしがないぞ!"); Console.WriteLine( "俺が奴を引き付けている間に必殺技を使え!" ); Console.WriteLine( "よし、やったな!" + "流石俺の永遠のライバルだけあるぜ!" ); } /// <summary> /// 昨日の敵は今日の友 /// </summary> public static explicit operator TunnDreRival( Enemy obj ) { return new TunnDreRival( obj.Target ); } } /// <summary> /// 主人公の敵 /// </summary> class Enemy { /// <summary> /// 敵視している相手 /// </summary> private Hero target; internal Hero Target { get { return target; } } /// <summary> /// ターゲットを指定して、インスタンスを生成する。 /// </summary> /// <param name="target">敵視している相手</param> public Enemy( Hero target ) { this.target = target; } } }

やっぱりライバルの助けはイベントだね♪それと、敵がライバルに変るのもお約束の仕様さ♪
別窓 | ネタ | コメント:0 | トラックバック:1 | ∧top | under∨
<<書籍をつつく86−入門OCaml ~プログラミング基礎と実践理解~。読み方に注意が必要な本。 | 無差別に技術をついばむ鳥 | 中の人の徒然草141>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

re: \'祭り\'を仕掛けてみるテスト …
2009-02-27 Fri 09:44 東方算程譚
∧top | under∨
| 無差別に技術をついばむ鳥 |