[PR]テレビ番組表
今夜の番組チェック

記述場所 記述形式 記述数 重要度 説明 詳細
全体          
    // …   ★★★ コメント // から行末まではコメントとなり、読み込み時には無視されます。
ForceCode の中に説明を埋め込むときに使います。
    /* … */   ★★★ コメント /* から */ まではコメントとなり、読み込み時には無視されます。
複数行にわたるコメントも記述できます。
            ※半角スペース、タブ、改行は、読み込み時には無視されます。自分が見やすいように、好きな場所に挿入してください。
※アルファベットの大文字、小文字は区別しません。force, Force, FORCE, fOrCe どれも同じ意味になります。
             
最上位          
    challenge{…} 0 〜   ChallengeCode 『セーブ』で自動生成されます。
『ロード』で読み込むものですが、ForceCodeに埋め込んでおけば『プログラム』でも読み込むことができます。
    force{…} 0 〜 ★★★ 軍隊 この内容を工夫して、強い軍隊を作るのがこのゲームの醍醐味になります。
    force 名称 {…}   記述不可
(準備中)
  force { name=名称; … } の省略形。
             
challenge{…}        
    general=名称; 1   指揮官の名称  
    name=名称; 1   軍隊の名称  
    date=日時; 1   セーブ日時  
    code=コード; 1   勝敗情報  
             
force{…}        
    general=名称; 1 ★★★ 指揮官の名称 あなたの名前を記述する場所です。
    name=名称; 1 ★★★ 軍隊の名称 ゲーム画面やランキングに表示されるので、カッコイイ名前を付けてくださいな。
    randomPoint=数値; 0 〜 1 ★★ ランダムポイント 全ての tactics の point にランダムで 0 〜 randomPoint の範囲の値が加算されます。
同じ戦術ばかりが採用されるのを防ぎます。
【省略時】randomPoint=0.001
    basePoint=数値; 0 〜 1   ベースポイント 全ての tactics の point に basePoint の値が加算されます。
一見、意味がないと思うかもしれませんが次の法則に関連します。
全ての tactics の point が 0 以下の場合は、どの tactics も採用されず 1 秒間何もしない。
【省略時】basePoint=0
    formation{…} 0 〜 ★★★ フォーメーション  
    tactics{…} 1 〜 99 ★★★ 戦術  
    first{…} 0 〜 1 記述不可 最初に実行する戦術 宣戦布告のすぐ後に1回だけ実行されます。
    last{…} 0 〜 1 記述不可 最後に実行する戦術 勝敗が決定した後に1回だけ実行されます。
printコマンドで捨て台詞を残したりとか?
    wait{…} 0 〜 1 記述不可 待機時に実行する戦術 全ての tactics の point が 0 以下の場合に実行されます。
【省略時】1 秒間待機
    sub{…} 0 〜 ? 記述不可 サブルーチン よく実行する処理をまとめて定義しておくことができます。
    before{…} 0 〜 1 記述不可 戦術の前処理 戦術の実行前に毎回呼び出されます。
    after{…} 0 〜 1 記述不可 戦術の後処理 戦術の実行後に毎回呼び出されます。
    arm{…} 0 〜 ? 記述不可 兵器のカスタマイズ 生産コストが増えるけど命中率を上げるとか
             
    passwd=パスワード; 0 〜 1 記述不可 パスワード ランキングに登録した軍隊を、他のプレイヤーに上書きされないように。必要か?
    symbol=ビットマップ; 0 〜 1 記述不可 首都のシンボル 首都(兵器が生産される場所)に絵を表示する?あるいは、下の情報表示スペースに?
自分オリジナルの国旗的なものを表示するとか?
    bgColor=色; 0 〜 1 首都の背景色 【省略時】bgColor=404040;  // 濃い灰色
    fgColor=色; 0 〜 1 記述不可 首都の前景色  
    laserColorI=色; laserColorO=色; 0 〜 1 記述不可 レーザーの色  
             
formation{…}        
    name=名称; 1 ★★★ 名称 ここで指定した名称は make の f=□ で指定します。
    alias=名称; 0 〜 1   別名 ここで指定した名称も make の f=□ で指定できます。
    x=数値,…; 1 ★★★ x座標、生産数 x=0 が一番前、x が大きくなるほど後ろになります。
    y=数値,…; 1 ★★★ y座標、生産数 y=0 が中央、y が大きくなるほど上、小さくなるほど下になります。
            ※tactics の c が関連するため、実際に生産されるy座標は y+c になります。
※生産可能な座標は、0≦x≦50, -100≦y+c≦100 までです、これを超えると生産されません。
※兵器同士が近すぎる場合(x方向y方向それぞれの距離が10未満)も、生産されないので注意してください。
※戦闘機と戦車のように高度が違っていれば、重なっていても生産することが可能です。
※生産することで自軍の兵器数が50を超える場合は、古い兵器が破棄されるので注意してください。
             
tactics{…}, first{…}, last{…}, wait{…}        
    name=名称; 0 〜 1 ★★★ 名称 ゲーム画面に表示されるのでカッコイイ名前を!
【省略時】name=Tactics□(□には戦術の基本IDが入る)
    cut=整数; 0 〜 1 ★★ y方向の分割数 【省略時】cut=1
    c=数値,…; 0 〜 1   中心位置(y座標)、
y方向の分割数
cut の代わりに記述可能。 cut よりも細かく設定したい場合に。
cut=5 は c=80,40,0,-40,-80 と同じ意味。
【覚え方】Center
    h=数値; または h=数値,…; 0 〜 1   高さ(y方向の範囲) count(兵器数のカウント)を利用したときのy方向のカウント範囲などに関連します。
複数記述することで、中心位置毎に高さを変えることもできます。
【省略時】h=200/(y方向の分割数)
【覚え方】Height
    point=数式; 0 〜 1 ★★ 戦術の有効性 【省略時】point=0
    コマンド; 1 〜 100 ★★★ 戦術採用時の行動 記述した順序も考慮されます。この戦術が採用された場合、上にあるコマンドから順に実行されます。
             
sub{…}, before{…}, after{…}        
    name=名称; 1 記述不可 名称 ここで指定した名称は数式のサブルーチン呼出で指定します。
    alias=名称; 0 〜 1 記述不可 別名 ここで指定した名称も数式のサブルーチン呼出で指定できます。
    コマンド 0 〜 ? 記述不可 処理 記述した順序も考慮されます。サブルーチンが呼び出された場合、上にあるコマンドから順に実行されます。
             
arm{…}          
    name=名称; 1 記述不可 名称 ここで指定した名称は make の a=□ で指定します。
ゲーム画面に表示する可能性があるので、カッコイイ名前を!
    alias=名称; 0 〜 1 記述不可 別名 ここで指定した名称も make の a=□ で指定できます。
別名は、a=□ で指定するためのシンプルな名前にするといい感じです。
    base=兵器; 1 記述不可 元になる兵器  
    兵器情報=数値; 0 〜 記述不可 兵器性能のカスタマイズ 記述できるのは、兵器情報のうち性能のみです。IDなどは不可。説明するまでもない…かな?
    兵器情報+=数値; 0 〜 記述不可 兵器性能のカスタマイズ  
    兵器情報-=数値; 0 〜 記述不可 兵器性能のカスタマイズ  
    w[数値].武装情報=数値; 0 〜 記述不可 武装性能のカスタマイズ 記述できるのは、武装情報のうち性能のみです。IDなどは不可。説明するまでもない…かな?
    w[数値].武装情報+=数値; 0 〜 記述不可 武装性能のカスタマイズ  
    w[数値].武装情報-=数値; 0 〜 記述不可 武装性能のカスタマイズ  
    priority=兵器…; 0 〜 1 記述不可 攻撃する優先順位  
    x=数値,…; 0 〜 1 記述不可 形状(x座標) カッコイイ形状があれば、デフォルトの形状として使わせてもらうかも?
    y=数値,…; 0 〜 1 記述不可 形状(y座標)  
    color=色; 0 〜 1 記述不可  
             
コマンド(ほとんどメモです。興味がある方以外はスルーしてください)  
  行動          
    make(…);   ★★★ 兵器生産 生産するだけで出撃はしません。
    go();     兵器出撃 記述してなくても、戦術の最後には必ず go が実行されます。
    wait(数式);     待機 数式が true の間、待機します。
    kill(数式);   記述不可 兵器破棄 数式が true になる自軍兵器を全て破棄します。
    shot(…);   記述不可 レーザー発射 エネルギーを消費して、指定した出力、y座標にレーザーを発射する?敵味方巻き込んで敵首都まで到達?
メモ:ゲーム性が全然違うものにならないか?STGのボムのように補助的なものとして戦略性が上がるなら導入?次回作で?
    shield(…);   記述不可 シールド出力変更 shot対策。シールド出力が低いならエネルギー回復が速いとか?
    giveup();   記述不可 降伏 降伏する利点はないけど、いさぎよさをアピールしたいときに?
    bomb();   記述不可 自爆 降伏と違って、首都が爆発します。派手に散りたいときに?
  出力          
    trace(数式/文字列,…);   記述不可 文字列表示(ログ) 指定した数式、または、文字列をログに表示します。複数指定した場合は、全てを連結して表示します。
数式の結果確認なんかに利用できます。
    debug(数式/文字列,…);   記述不可 文字列表示(ログ) 基本的に trace と同じですが、チャレンジモードの場合は実行されません。
フリー対戦モードでテスト中は出力したいけど、本番では trace の実行時間が生死を分ける場合に?
    print(数式/文字列,…);   記述不可 文字列表示(ゲーム画面 指定した数式、または、文字列をゲーム画面に表示します。複数指定した場合は、全てを連結して表示します。
対戦相手へのメッセージなんかに利用できます。 print("かかってこいや〜") とか?
  設定          
    setPrintColor(色);   記述不可 printの色変更  
    setPrintSize(数式);   記述不可 printの文字サイズ変更  
    setPrintFont(数式);   記述不可 printのフォント変更 Serif、SansSerif、Monospaced、Dialog、DialogInput
    setPrintStyle(数式);   記述不可 printのスタイル変更 プレーン、ボールド、イタリック、ボールド&イタリック
    setPrintTime(数式);   記述不可 printの表示時間変更  
    setSymbol(ビットマップ);   記述不可 首都のシンボル変更  
    setBgColor(色);   記述不可 首都の背景色変更  
    setFgColor(色);   記述不可 首都の前景色変更  
    setLaserColorI(色);   記述不可 レーザーの内側色変更  
    setLaserColorO(色);   記述不可 レーザーの外側色変更  
    setDefaultMake(…);   記述不可 生産時の数式変更 兵器生産で s、d、r を省略した場合の数式を変更します。サブルーチンがあれば十分か?
  制御          
    $変数=数式 または set(…);?   記述不可 変数に値を代入 例えば make の r と連携して、退却命令を出したりもできます。
メモ:変数は全てグローバル?
    サブルーチン(数式,…);   記述不可 サブルーチン呼出  
             
    if ( 数式 ) { コマンド… }   記述不可 条件分岐 数式が true ならコマンドを実行します。
    else if ( 数式 ) { コマンド… }   記述不可 条件分岐 直前にある if や else if の数式が全て false で、かつ、この else if の数式が true ならコマンドを実行します。
    else { コマンド… }   記述不可 条件分岐 直前にある if や else if の数式が全て false ならコマンドを実行します。
    switch ( 数式 ) {…}   記述不可 条件分岐  
             
    while ( 数式 ) { コマンド… }   記述不可 ループ 数式が true の間、繰り返しコマンドを実行します。
    do { コマンド… } while ( 数式 );   記述不可 ループ  
    for(数式;数式;数式){コマンド…}   記述不可 ループ  
    foreach $変数(配列){コマンド…}   記述不可 ループ  
             
    break;   記述不可 ループの終了  
    continue;   記述不可 ループの再試行  
    return;   記述不可 終了 戦術の場合は、戦術の実行を終了し、戦術の選択に移ります。
サブルーチンの場合は、サブルーチンの実行を終了し、呼び出し元に 0 を返します。
    return 数式;   記述不可 終了 戦術の場合は、戦術の実行を終了し、戦術の選択に移ります。
サブルーチンの場合は、サブルーチンの実行を終了し、呼び出し元に数式の値を返します。
    exit();   記述不可 完了 戦術の場合は、戦術の実行を終了し、戦術の選択に移ります。
サブルーチンの場合も、戦術の実行を終了し、戦術の選択に移ります。
    ラベル:   記述不可 移動先  
    goto ラベル;   記述不可 移動  
             
    jump(数式A);   記述不可 条件分岐 jump(数式A,true) の省略形。
    jump(数式A,数式B);   記述不可 条件分岐 B が true なら、A の数だけコマンドを実行せず進めます。A がマイナスの場合は、戻ります。
A に小数部がある場合は切り捨てる?
メモ:if や while とかの実装が面倒なとき用。絶対、スパゲッティになる… せめて、ラベルとか?
             
make(…);        
    a=兵器 1 ★★★ 兵器  
    f=フォーメーション 0 〜 1 ★★★ フォーメーション  
    x=数値 0 〜 1   x座標 f の代わりに記述可能。
    y=数値 0 〜 1   y座標 f の代わりに記述可能。
    x+=数値 または x-=数値 0 〜 1 ★★ xの差分 連続して生産するときに、位置が重ならないようにずらすことができます。
make(f=hoge,a=F);
make(f=hoge,a=A,x+=10); // 同じフォーメーションでも、ずらせばOK
【省略時】x+=0
    y+=数値 または y-=数値 0 〜 1   yの差分 【省略時】y+=0
    x*=数値 0 〜 1   xの倍率 【省略時】x*=1
    y*=数値 0 〜 1   yの倍率 【省略時】y*=1
    x+数値 または x-数値 0 〜 1 非推奨 xの差分 x+= の旧形式。 数式と区別できないので廃止予定。
    y+数値 または y-数値 0 〜 1 非推奨 yの差分  
    x*数値 0 〜 1 非推奨 xの倍率  
    y*数値 0 〜 1 非推奨 yの倍率  
    s=*   廃止 進軍速度(最大) 進軍速度を指定しない場合、進軍速度は最大になる(のでわざわざ s=* を記述する意味はあまりない)。
    s=数値 数式に変更 廃止 進軍速度  
    d=l+数値 または d=l-数値 数式に変更 廃止 停止位置(ライン依存)  
    d=数値 または
d=f+数値 または d=f-数値 または
d=e+数値 または d=e-数値
数式に変更 廃止 停止位置(x座標) f は自軍の首都のx座標(-200)、e は敵軍の首都のx座標(200)を意味します。
d=150 と d=e-50 は同じ意味ですが、もしも、首都の位置が変更になった場合も、d=e-50 なら ForceCode の修正が必要ありません。
    s=数式 0 〜 1 ★★ 進軍速度 1.0以下の場合は1.0、最高速度以上の場合は最高速度になります。単位はpixel/sec
前進時の速度です。後退時の速度は最高速度/5、退却時の速度は最高速度で固定です。
生産時に固定されるわけではなく、生産後もこの数式の値が変化すれば進軍速度も変化します。
【省略時】s=1000 // 常に最高速度
【覚え方】Speed
    d=数式 0 〜 1 ★★ 停止位置(x座標) 停止位置に達すると停止、停止位置を越える後退を開始します。
生産時に固定されるわけではなく、生産後もこの数式の値が変化すれば停止位置も変化します。
【省略時】d=e-□ // □は兵器の最長射程距離にほぼ等しい。
【覚え方】Destination
    r=数式 0 〜 1 ★★ 退却条件 この数式が true になると退却を開始します。
【省略時】r=( ! w[0].count && ( timeA>2 || !( w[1].count || w[2].count ) ) )
メイン武装が空、かつ、(最後に攻撃してから2秒経過、または、サブ武装も空)
【覚え方】Return condition
            メモ:停止位置とは別に、s=-10とかでも後退できるようにする?
後退速度=最高速度/5 は遅すぎ?後退中に追いつかれるっという熱い状況?が発生して欲しいが…
後退時に反転するかバックするか選択できるようにする?
そもそも、(戦車はともかく)航空機がバックしてるのはいかがなものか…
             
陣営          
    f   ★★★ 自陣営 【覚え方】Friend
    e   ★★★ 敵陣営 【覚え方】Enemy
    w   ★★★ 両陣営 【覚え方】Whole または double
    *     両陣営  
             
兵器          
    F   ★★★ 戦闘機 【覚え方】Fighter
    A   ★★★ 攻撃機 【覚え方】Attacker
    B   ★★★ 爆撃機 【覚え方】Bomber
    T   ★★★ 戦車 【覚え方】Tank
    R   ★★★ ロケット砲 【覚え方】Rocket
    G   ★★★ 対空機関砲 【覚え方】aa Gun
    S   ★★★ 対空ミサイル 【覚え方】Short range sam
    L   ★★★ 防空ミサイル 【覚え方】Long range sam
    I   ★★★ 歩兵 【覚え方】Infantry
    W   ★★★ 全兵器 【覚え方】Whole
    *     全兵器  
  派生型        
    F0, F1, …   記述不可 戦闘機(派生型) 標準、旧式、対地、対艦?、制空、要撃、格闘、ステルス、支援?、戦闘爆撃?、VTOL?
    A0, A1, …   記述不可 攻撃機(派生型) 標準、旧式、対地、爆装?、装甲、ステルス?
    B0, B1, …   記述不可 爆撃機(派生型) 標準、旧式、軽装?、重装、対艦?、ステルス?
    T0, T1, …   記述不可 戦車(派生型) 標準、旧式、装甲、偵察、戦闘?
    R0, R1, …   記述不可 ロケット砲(派生型) 標準、旧式、迎撃、榴弾
    G0, G1, …   記述不可 対空機関砲(派生型) 標準、旧式、ミサイル、AA-AT
    S0, S1, …   記述不可 対空ミサイル(派生型) 標準、旧式、最新?
    L0, L1, …   記述不可 防空ミサイル(派生型) 標準、旧式、迎撃
    I0, I1, …   記述不可 歩兵(派生型) 標準、民兵?、軽装(機動)?、重装、ミサイル、装甲?
             
           
    [00-FF][00-FF][00-FF]     RGB指定 例えば FF0000 は赤色。
             
文字列          
    "文字列"   記述不可 文字列  
             
数式          
  定数          
    f   ★★ 自軍首都のx座標 -200 と同じ意味。
-150 も f+50 も同じ意味ですが、f+50 の方が自軍首都から50のx座標というのが分かりやすいかも?
あと、まずないですが首都の位置が変更になった場合も f+50 なら ForceCode の変更が不要です。
【覚え方】Friend
    e   ★★ 敵軍首都のx座標 200 と同じ意味。
【覚え方】Enemy
    t   ★★ 生産可能な
最大のy座標
100 と同じ意味。
【覚え方】Top
    b   ★★ 生産可能な
最小のy座標
-100 と同じ意味。
【覚え方】Bottom
  基本          
    数値   ★★★ 数値 10 や 1.5 など
    数式A + 数式B   ★★★ A+B  
    数式A - 数式B   ★★★ A−B  
    数式A * 数式B   ★★★ A×B  
    数式A / 数式B   ★★★ A÷B  
    数式A % 数式B     A を B でわった余り  
    + 数式     プラス記号 +10 など わざわざ+を付ける意味はあまりない
    - 数式   ★★★ マイナス記号 -10 など
    ( 数式 )   ★★★ 演算順序指定 ( 1 + 2 ) * ( 3 + 4 ) など
    $変数   記述不可 変数参照 コマンドで代入した値を参照します。
    $変数 = 数式 または set(…)   記述不可 変数に値を代入 メモ:等号の = とかぶってる。:= にする?
    サブルーチン(数式,…)   記述不可 サブルーチン呼出 一番上にある return だけ実行する?
  条件分岐関連        
    true     1 と同じ意味。
    false     0 と同じ意味。
    if( 数式A, 数式B )   ★★ 条件分岐 if( 数式A, 数式B, 0 ) の省略形。
    if( 数式A, 数式B, 数式C )   ★★ 条件分岐 A が true なら B、A が false なら C になります。
蛇足:正確に言うと、A が 0 に十分近い(-0.001 < A < 0.001)なら C、それ以外は B
    数式A ? 数式B : 数式C     条件分岐 if の別形式。意味は同じ。
    数式A == 数式B   ★★ A=B A=B が成り立つなら true、成り立たないなら false になります。
蛇足:正確に言うと、A と B が十分近い(-0.001 < A-B < 0.001)なら true、それ以外は false
    数式A =  数式B   非推奨 A=B == と同じ意味。代入の = とかぶっているので廃止予定。
蛇足:point=1=2; も正しい数式という素敵な仕様です。 結果は point=false つまり point=0
    数式A != 数式B   ★★ A≠B  
    数式A <> 数式B     A≠B != の別形式。意味は同じ。
    数式A <  数式B   ★★ A<B  
    数式A <= 数式B   ★★ A≦B  
    数式A >  数式B   ★★ A>B  
    数式A >= 数式B   ★★ A≧B  
    数式A && 数式B   ★★ AかつB A が true、かつ、B が true なら true、それ以外は false になります。
    数式A &  数式B   非推奨 AかつB A, B ともに true または false なら && と意味は同じ。
蛇足:A や B に true, false 以外を指定した場合の結果は不定(今は、論理演算だけど、ビット演算にするかも?)
    数式A || 数式B   ★★ AまたはB A が false、かつ、B が false なら false、それ以外は true になります。
    数式A |  数式B   非推奨 AまたはB A, B ともに true または false なら || と意味は同じ。
蛇足:A や B に true, false 以外を指定した場合の結果は不定(今は、論理演算だけど、ビット演算にするかも?)
    数式A ^  数式B   非推奨 排他的論理和 A と B のどちらか一方だけが true なら true、それ以外は false になります。
蛇足:A や B に true, false 以外を指定した場合の結果は不定(今は、論理演算だけど、ビット演算にするかも?)
    ! 数式A   ★★ Aではない