トップページへ戻る
Diary

RSS配信してます
 

HPがInfoseekにあったころの日記は、現在データベース化待機中となっています。
  DB化完了:2006年度分 ・ 2002年度分 ・ 2003年度分1~5月
インデックスより、年・月を指定すると、その月のタイトルが表示されます。
見たい日記のタイトルをクリックすることで、日記を閲覧することができます。
タイトルにつく【】の意味

インデックス
2002年2003年2004年2005年2006年2007年
2008年2009年2010年2011年2012年2013年
2014年
1月2月3月4月5月6月
7月8月9月10月11月12月

2007年 12月の日記タイトル
No. 795 [31日] ・ふぁいなる2007 【日・標】(0)
No. 794 [29日] ・通常業務終了 【日】(0)
No. 793 [22日] ・イベントツリー 【日】(0)
No. 792 [21日] ・素粒子が難しい 【日・心・考】(2)
No. 791 [17日] ・分からないのが分からない 【日・機・心】(0)
No. 790 [15日] ・そろそろ大詰め 【日・機】(0)
No. 789 [11日] ・師走徒走 【日】(0)
No. 788 [10日] ・背景付ジェットコースター 【考】(0)
No. 787 [ 9日]オブジェクト指向的カード 記述【考】(0)
No. 786 [ 8日] ・音素インテグレーター 【考】(0)
No. 785 [ 2日] ・風邪をひいてしまいました 【日】(2)

2007年 11月の日記タイトル
No. 784 [29日] ・BOINCはじめました 【機】(0)
No. 783 [17日] ・寒くなりました 【日・機】(0)
No. 782 [12日] ・文房具万歳 【日】(0)
No. 781 [11日] ・さて11月に 【日】(0)

2007/12/09 (Sun) No.  787
オブジェクト指向的カード 記述 【考】

しばらくは先週の倒れている間に思いついたものでも。


カードゲームを作成する際、重要なのは世界観の広がり。
つまり、発売の回を重ねるにつれて、ルールが拡張されていくことが大事。(そうでも無いなら、新しいブースターを発売する意義があまり無いと考えている。)

そこで、出てくるのが、ルールの改変の蓄積。
特にカードゲームの場合は、後半になるにつれて、新しい概念がたくさん出てくる。

というわけで、カードゲームの記述をオブジェクト指向化したらいいのでは無いだろうかという考察。


例えば、ユニットみたいなカードは以下のようなクラスを準備して、これをextendsして生成すればよい。
abstract class unit{
  String name;
  int level;
  int life;
  int attack;
  int defence;
  int position;
  unit(){
  }
  void getDamage(int val){
    life-=val;
  }
  void dead(){
    life=0;
  }
  void assault(unit target){
    target.getDamage(attack - target.getDefence());
  }
  boolean isLive(){
    return life>0;
  }
  void destruction(){
    position = PLACE_TRASH;
  }
}
ユニットというものは、単に数値だけではなく、特殊能力みたいなものを持つから、それは以下のように追記すればよい。
void special_attack(unit target){
  target.getDamage(2);
}
ルール部分も例えばこのように記述できる。
class rule{
  void judge_card_existence(card[] target){
    foreach(target as obj){
      if(!obj.isLive()){
        obj.destruction();
      }
    }
  }
}
ルールの拡張も簡単である。
新しいパラメータを実装する場合は、コンストラクタ時に書いておけばよい。
public class mage extends unit{
  int magic;
}

あと日本語のぶれも存在しないし(多くのテキストでは、同じ意味でもカードによって違う言い回しをしてたりする)、あいまいな定義はまず無いし(プログラムの基本)、フレーバーテキストはコメントで入れれば良いし。
なかなか面白そうかもしれない(・-・)


巷で話題の狂戦士の魂はこう書けるかもしれない。
class berserker_soul extends instantly_magic(){
  void execute(){
    my.deleteCard(-1);
    while(my.getCard().getClass()=="class unit"){
      my.deleteCard(-1);
      unit tmp = my.chooseUnit();
      if(tmp.getAttack()<=1500){
        tmp.assault(my.chooseEnemyUnit);
      }
    }
  }
}


★この日記のURLはhttp://haukun.sakura.ne.jp/?diarymode=200712090787

この日記へのコメント
コメント無し

名前(10文字)削除pass(8文字)
コメント(512文字)
送信オプション
コメントを送信する※誤爆防止用
コメントを削除する※名前に番号を,削除Passに投稿時のPassを入れてください。
《全体処理時間》0.111sec.
インデックスに飛ぶ
日記の先頭に飛ぶ
トップページへ戻る

HKP-DiarySystem Ver.1.07