約 391,578 件
https://w.atwiki.jp/mopsprogramming/pages/52.html
1バイト文字をASCIIコードで数値に変換するには、"CHAR"というプレフィックスを使います。例えば、 CHAR A とすれば、実行時には文字Aに当たるASCII値(64)がスタックに積まれます。これは、ワードやメソッドが引数としてcないしcharを必要とするときに便利です。 なお、Mopsでは"CHAR"の簡約形として、" "を使うことができます。つまり、 A とすれば上のコードと同値です。 ASCII文字は1バイトですから、その値を4つ並置すれば4バイトでちょうど1セル分になります(32ビットパソコンの場合)。Macintoshではこのように併置した4文字列をOSタイプとして頻繁に利用します。そこで、Mopsでは4文字列をASCII値の並置に変換するプレフィックスとして「 TYPE」が準備されています。例えば、 TYPE TEXT とすれば、実行時には、"TEXT"タイプに該当する値がスタックに積まれます。ツールボックス関数のパラメターとして使われることがあるでしょう。なお、" TYPE"の頭の点はゴミや汚れではなく、ティック(tick ASCII 39)と呼ばれる文字が先頭になければなりません。特に、全く異なる働きをするTYPEというワードも定義されているので、注意して下さい。 なお、iMopsでは TYPEはコンパイルモードでしか動作しません。ワード定義内で使用してください。 エンコードについて: 現在のところ、Mopsでは文字は1バイトのASCII文字であり、例えば、日本語の文字をユニコードエンコーディングで文字として扱うことはできないようです(少なくとも、私は、この機構が提供されているかどうか知りません。)。それをしたい場合、最も容易と思われるのは、OSが提供するエンコーディング転換ユーティリティを用いて、ワードセット、あるいはストリングクラスを書くことであると思われます。 関連項目: -[[データスタック]] 固定文字列 文字を呼び出す STATES トップページへ 目次へ
https://w.atwiki.jp/shinobu2/pages/18.html
Javaでは文字と文字列は別のものとして扱っています。まずここでは文字について見ていきましょう。 文字は1つの文字のことであり「a」や「あ」などが文字となります。プログラムの中で値として使用される文字は文字リテラルという呼び方をすることもあります。 リテラル リテラルという言葉は文字リテラルの他にも数値リテラルや文字列リテラルなどのように使われるのですが、「の値」と読み替えておけばほぼ間違いありません。つまり文字リテラルは文字の値のことです。 「リテラル」 とは 「の値」 プログラムの中では演算子や変数や制御文など色々なものを組み合わせて記述しますが、数値や文字など実際の値も記述されます。このような値のことをリテラルといいます。文字リテラルと書いてある場合は文字の値と読み替えておいて下さい。 文字の値を表現する ではプログラムの中で文字の値を記述する場合はシングルクォーテーション( )で囲んで表現します。 a あ a や あ のように1つの文字をシングルクォーテーションで囲んだものが文字リテラルとなります。 文字は1文字なので次のように2つ以上の文字を( )で囲んだ場合はエラーとなります。 ab 文字 わからないところがあったら以下に書き込んでください。 test -- (test) 2010-12-10 22 01 03 テスト -- (test) 2010-12-10 23 00 34 hosei -- (HOSEI) 2011-01-31 14 10 34 test -- (名無しさん) 2011-01-31 14 10 53 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/imapoke/pages/22.html
一文字変数は、A~Z(文字列変数の場合はA$~Z$)の一文字で表される変数であり、メモリの固定した領域に確保される。 一文字変数領域を使用することで、BASICとマシン語とのパラメーターのやり取りがスマートに行える。 PC-G801の一文字変数に文字列を入れてRAMを調べると、1800H~18CFHが一文字変数のワークエリアと判明。 1800HがZ(Z$)の領域で以降、8バイトずつYXW・・・Aとアルファベットを遡ってゆく。数値変数Aと文字変数A$は同じ領域を使用する。データの格納方法は以下のようになる。 文字列の場合 Z$="ABCD" → 1800 F5 41 42 43 44 00 00 00 文字列の場合7文字まで、先頭がF5H 足りない部分は00で埋める 0終端とは違い、7文字の場合は領域一杯に文字列コードが埋まることに注意。 数値の場合 Z=12345678901 1.23456789E10 → 1800 01 00 12 34 56 78 90 00 Z=123456 → 1800 00 50 12 34 56 00 00 00 オフセット 意味 +0 指数部3、2桁目 +1 指数部1桁目、および仮数部の符号 +2~+6 仮数部BCD10桁 左詰め、0で終端 +7 00 +0の上位下位ニブル、+1の上位ニブルの3桁で指数部を表す。 プラスは 000~099 で 0~99 マイナスは 999 →-1 998→-2 ~ 901→-99 +1 b3 仮数部符号 0=プラス 1=マイナス
https://w.atwiki.jp/kokeiro/pages/20.html
文字列を描画する際に使用する主な関数は int DrawString( int x , int y , char *String , int Color ) ; int DrawFormatString( int x , int y , int Color , char *FormatString , ... ) ; の2つです。 int DrawString( int x , int y , char *String , int Color ) ; 第1引数、第2引数は描画開始の左上の座標です。DXライブラリでの座標は、左上を(0,0)とし、右方向がxの正方向、下方向がyの正方向となります。慣れるまではわかりにくいかもしれません。第3引数は描画したい文字列です。第4引数は描画に使用するカラーコードを指定します。 もし、左上に、緑色で「Hello World!」と表示したい場合は以下のように関数を呼び出します。 int green = GetColor( 0 , 255, 0 ); DrawString( 0 , 0 , "Hello World!" , green ); C言語でprintf関数のように書式付の文字列を描画したいときは後者のDrawFormatString関数を呼び出します。 int DrawFormatString( int x , int y , int Color , char *FormatString , ... ) ; 第1引数、第2引数は描画開始の左上の座標です。先ほどの関数と異なり、カラーコードが第3引数となります。第4引数が描画する文字列です。 int型の値、double型の値をそれぞれ表示する int white = GetColor( 255 , 255 , 255 ); int murasaki = GetColor( 128 , 0 , 128 ); int SampleInt = 249; double SampleDouble = 3.14; DrawFormatString( 0 , 0 , white , "SampleIntの値は「%d」です。" , SampleInt ); DrawFormatString( 0 , 20 , murasaki , "SampleDoubleの値は「%f」です。" , SampleDouble ); まとめのサンプルソース #include"DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode(TRUE); if(DxLib_Init()==-1) return 1; SetDrawScreen(DX_SCREEN_BACK); while(1){ if( ProcessMessage() != 0 || CheckHitKey( KEY_INPUT_ESCAPE ) != 0 ) break; ClearDrawScreen(); int green = GetColor( 0 , 255, 0 ); DrawString( 0 , 0 , "Helllo World!" , green ); int white = GetColor( 255 , 255 , 255 ); int murasaki = GetColor( 128 , 0 , 128 ); int SampleInt = 249; double SampleDouble = 3.14; DrawFormatString( 0 , 20 , white , "SampleIntの値は「%d」です。" , SampleInt ); DrawFormatString( 0 , 40 , murasaki , "SampleDoubleの値は「%f」です。" , SampleDouble ); ScreenFlip(); } DxLib_End(); return 0; } このほかにも、フォントを変更して文字列を描画する関数が用意されています。詳しくは本家関数リファレンスの文字列関連の項目を見てください。
https://w.atwiki.jp/vahren_ency/pages/614.html
概要 文字変数 1個~複数個の「文字列」を代入する変数です。文字列とはpower, spot, unit, class構造体の名前(識別子)の事です。 決められた関数の引数欄でのみ使えます。文字変数はセーブされませんので一時的なデータとして用います。 文字変数を用いる時は先頭に@を記してください。 数値変数 「数値」を代入する変数です。 if文の条件式内で使えます。決められた関数の引数欄でも使えます。 数値変数はセーブされますので各種のゲームフラグとして使えます。 例:プレイヤー勢力の全ユニットを3レベル上げる storePlayerPower(@aaa) storeUnitOfPower(@aaa, @bbb) addLevel(@bbb, 3) もしくは levelup(@bbb, 3) 例:領地s5にいる全ユニットを所属勢力の他領へ移動させて新勢力p9を登場させる storeLeaderOfSpot(s5, @uuu) storePowerOfSpot(s5, @ppp) addUnit(@uuu, @ppp) s5にいたユニットを現勢力のどこかの領地に移す removeSpot(s5) s5を中立領地に戻す addPower(p9) 勢力p9を追加する。この時のp9は領地ゼロ addSpot(s5, p9) 勢力p9に領地s5を追加する addUnit(p9master, s5) p9のマスターとするユニットp9masterを追加(又は他領から移動)する changeMaster(p9, p9master_unit) マスターを変える 例:最強国に対抗して他の諸国が互いに同盟する(合従) storePowerOfForce(0, @aaa) 第一引数をゼロにすると全勢力を代入する storePowerOfForce(1, @bbb) 総戦力値が1番の勢力を代入する subv(@aaa, @bbb) 変数aaaからbbbの要素を削除する setLeague(@aaa, -1) 変数aaaに代入されてる全勢力が互いに無期限同盟する 例:最強国と他の諸国がそれぞれ同盟する(連衡) storeAllPower(@allp) 全勢力をallpに代入する storePowerOfForce(1, @topp) 戦力首位の勢力をtoppに代入する subv(@allp, @topp) allpからtoppを削除する set(idx, 0) インデックス値となるidxを0にする while (idx count(@allp)) { index(@allp, idx, @pow) allpのidx番目の要素勢力をpowに代入する setLeague(@topp, @pow, -1) toppとpowを無期限同盟する add(idx, 1) idxを+1する } 例:指定した領地に隣接する中立地帯を取り出す storeNextSpot(領地, @a) storeNextSpot(領地, @b) @a,@bに指定した領地と隣接する領地を代入する storeNeutralSpot(@c) 中立地帯を@cに代入する subv(@b, @c) @bから@cを引いて、隣接する中立でない領地にする subv(@a, @b) 元となる@aから@bを引いて、領地に隣接する中立地帯を出す 引数についての注意 計算関数では対象変数を引数欄の「左側」に書きますが、 pushとstoreが接頭辞の代入関数では対象変数を引数欄の「右側」に書きます。 混同されないように御注意ください。分かり難くなってしまい大変申し訳ありません。 以下のリファレンスで青色の引数には文字変数が使えます(先頭に@を付けると文字変数と見なされます) 紫色の引数には数値変数が使えます(数値変数はそのまま記述します) 数値変数の計算(代入対象変数は引数欄の左側) set(数値変数, 数値) 数値変数に数値を代入します。 add(数値変数, 数値) 数値変数を加算します。 sub(数値変数, 数値) 数値変数を減算します。 mul(数値変数, 数値) 数値変数を乗算します。 div(数値変数, 数値) 数値変数を除算します(余りは切り捨て)。0で除算するとエラー落ちします。 mod(数値変数, 数値) 数値変数を剰余算します(割った余りを求める)。 per(数値変数, 数値) 数値変数を百分率変換します。per(var, 75) だと変数varの75%の数値にします。 ただし答えが負数となる場合は、計算結果が+1多くなります(ver7.01時点)。 文字変数の計算(要素の追加削除)(代入対象変数は引数欄の左側) 一部の関数を除き、引数欄の「左側」において内包要素が複数の文字変数も全要素が利用可能です。 setv(文字変数, 文字列要素) 文字変数に、2番目の要素を代入します。 (現在有効な別名 setVar) addv(文字変数, 文字列要素) 1番目の文字変数の要素の末尾に、2番目の要素を加えます。 2番目の要素が複数個の「文字列」からなる文字変数のとき、末尾にそのまま連結されます。 (現在有効な別名 addVar) subv(文字変数, 文字列要素) 1番目の文字変数の要素から、2番目の要素を全て削除します。 2番目の要素が複数個の文字列からなる文字変数のとき、 1番目の文字変数の要素内の「文字列」のうち2番目の要素にもあるものを全て削除します。 (現在有効な別名 subVar) clear(文字変数) 文字変数の要素を全部消去します。 (現在有効な別名 clearVar) shuffle(文字変数) 文字変数の要素をシャッフルして順序をバラバラにします。 (現在有効な別名 shuffleVar) addstr(文字変数, 文字列) ※各引数の変数内 複数無効 文字変数内の文字列に、第二引数の文字列をつなげます。 (例) set(aaa, mark@) storePlayerUnit(@bbb) ※ゴート3世がプレイヤー。文字変数bbbの中身は「goto」となる。 addstr(aaa, @bbb) 文字変数aaaの中身は「mark@goto」となる。 gwrite(@aaa, 1, nextmsg.png) こうするとゴート3世のキャラ選択アイコンにマークが付く。 グローバル変数 gread(任意のグローバル変数名, 数値変数名) gread(任意のグローバル変数名, 数値変数名, 文字変数名) グローバル変数(全ゲームプレイで使える共通データ)をそれぞれの変数に読み込みます。 gwrite(任意のグローバル変数名, 数値) gwrite(任意のグローバル変数名, 数値, 文字列) グローバル変数(全ゲームプレイで使える共通データ)を書き込みます。 グローバル変数の文字列は英数字だけです。全角文字は使えません。 グローバル変数の使用注意 gwrite(aaa, 5) と gwrite(@aaa, 5) では意味が異なります。 前者は「aaa」という識別名で5の数値が保存されますが、後者は空の識別名で保存されます。 事前にsetv(@aaa, bbb)としてると gwrite(@aaa, 5)は「bbb」という識別名で5の数値が保存されます。 gread(aaa, var) と gread(@aaa, var) も同様です。この二つも意味が異なります。 引数の「任意のグローバル変数名」を青文字にしてるのはその為です。 また、一度作成したグローバル変数はゲーム内では完全には消去できません。 gwrite(aaa, 0, @)等としても、値こそ空にはなりますが、 本体ファイル「global.sav」のファイルサイズは作る以前の大きさには戻らないので、記述するときは注意が必要です。 完全に消去するにはglobal.savを手動で削除します。 グローバルデータに、 「show@シナリオ」「show@勢力」「show@ユニット」を1で書き込むと、 enable_select = off 指定が外れて表示されるようになります。(0で非表示になる) (例) gwrite(show@goto, 1) gwrite(show@scenario8, 1) gwrite(show@kingdom, 1) 「mark@ユニット」「mark@勢力」を1で書き込むと、 開始時のキャラ選択時にimageフォルダにある文字列名の画像をマークとして付ける事が出来ます。 (例) gwrite(mark@goto, 1, nextmsg.png) gwrite(mark@p1, 1, nextmsg.png) 数値変数への代入(代入対象変数は引数欄の右側) pushv関数を除き、内包要素が複数の文字変数はその先頭要素のみが利用されます。 pushv(文字変数, 数値変数) pushVar(文字変数, 数値変数) 文字列配列変数が持つ全要素数を数値変数に代入します。 pushv(文字変数, 文字列, 数値変数) pushVar(文字変数, 文字列, 数値変数) 文字変数が持つ文字列の数を数値変数に代入します。 第1引数は当然文字列配列変数使用可能です。第2引数も文字列配列変数使用可能です。 pushRand(数値変数) 数値変数に乱数(0~99)を代入します。 pushRand2(数値変数) 数値変数に乱数(0~2147483646)を代入します。 pushTurn(数値変数) 数値変数に現在のターン数を代入します。 pushCountPower(数値変数) 数値変数に現在生存中の勢力の数を代入します。 pushForce(勢力/ユニット, 数値変数) 勢力の識別子なら勢力の総戦力値が、ユニットの識別子ならユニットの戦闘力が代入されます。 pushDiplo(勢力A, 勢力B, 数値変数) 数値変数に勢力ABの友好値を代入します。 pushSpot(勢力, 数値変数) 数値変数に勢力の領地数を代入します。 pushBaseLevel(勢力, 数値変数) 数値変数に勢力の一般ユニットの底上げレベルを代入します。 pushTrain(勢力, 数値変数) 数値変数に勢力の訓練限界値(0~100)を代入します(全人材の平均レベルの百分比率)。 シナリオ初期値のまま変更がない場合は“0”が代入されます。 pushTrainUp(勢力, 数値変数) 数値変数に勢力の訓練上昇値を代入します。シナリオ初期値のまま変更がない場合は“0”が代入されます。 pushGain(勢力/領地, 数値変数) 数値変数に勢力の総収入(財政値適用前)、又は領地の経済値を代入します。 pushCastle(領地, 数値変数) 数値変数に城壁値を代入します。 pushCapa(領地, 数値変数) 数値変数に駐留数を代入します。 pushCon(領地, 基底クラス/ユニット名, 数値変数) 数値変数に領地にいる指定ユニットの個数を代入します。 ただし基底クラスで指定した場合は、非人材ユニットのみが対象となります。 pushSpotPos(領地, x座標用の数値変数, y座標用の数値変数) 領地のワールドマップ上の座標を代入します。 pushLevel(ユニット, 数値変数) 数値変数にユニットのレベルを代入します。 pushMoney(勢力/ユニット, 数値変数) 数値変数に所持金を代入します。 pushLoyal(ユニット, 数値変数) 数値変数にユニットの忠誠度を代入します。 pushMerits(ユニット, 数値変数) 数値変数にユニットの戦功値を代入します。 pushTrust(ユニット/勢力, 数値変数) 数値変数にユニット/勢力のマスターの信用度を代入します。 pushSex(ユニット, 数値変数) 数値変数にユニットの性別を代入します。無性=0、男性=1、女性=2 pushRank(ユニット, 数値変数) 数値変数にユニットの身分を代入します。その他=0、上士=1、重臣=2、宿将=3、マスター=4 pushStatus(ユニット, 文字列, 数値変数) 数値変数にユニットのステータス(スキル適用前)を代入します。 文字列は、hp, mp, attack, defense, magic, magdef, dext, speed, move, hprec, mprec, のどれかです。 pushItem(アイテム名, 数値変数) 数値変数に所持アイテム数を代入します。 pushBattleHome(x座標用の数値変数, y座標用の数値変数) 現在の戦場シーン(簡易可)の防衛側位置の座標が代入されます。 pushBattleRect(横サイズ用の数値変数, 縦サイズ用の数値変数) 現在の戦場シーン(簡易可)のエリアサイズが代入されます。 pushLimit(数値変数) 数値変数に戦場シーン(簡易可)の残り時間(左上の数値)を代入します。 文字変数への代入(代入対象変数は引数欄の右側) 一部の関数を除き、引数欄の「左側」において内包要素が複数の文字変数も全要素が利用可能です。 index(文字変数A, index値, 文字変数B) 文字変数Aのindex番目の要素を文字変数Bに代入します。先頭要素のindexは 0 です。 index値を要素数より大きな値をいれると末尾の要素を取り出せます。 (現在有効な別名 storeIndexVar) + ... おまけ。 逆に文字変数Aのindex番目に文字変数Bの要素を代入したい場合は少し手間が必要。 例:※文字変数Bは単一要素を持つとする clear(@C) set(i, 0) while (i count(@A)) { index(@A, i, @D) if (i == n) { addv(@C, @B) } else { addv(@C, @D) } add(i, 1) } setv(@A, @C) storePlayerUnit(文字変数) 「プレイヤーユニットの識別子」を文字変数に代入します。 storePlayerPower(文字変数) 「プレイヤーがマスターについている勢力の識別子」を文字変数に代入します。 storeAllPower(文字変数) 生存する「全ての勢力の識別子」を文字変数に代入します。 storeComPower(文字変数) 生存する「全てのCOM勢力の識別子」を文字変数に代入します。 storeAllSpot(文字変数) 「全ての領地の識別子」を文字変数に代入します。 内政/非表示に設定された領地が除かれて代入は行われます。 storeNeutralSpot(文字変数) 「全ての中立領地の識別子」を文字変数に代入します。 内政/非表示に設定された領地が除かれて代入は行われます。 storeNextSpot(領地, 文字変数) ※左引数の変数内 複数無効 指定領地に「隣接する全領地」を文字変数に代入します。 storeAllTalent(文字変数) 「全ての人材ユニットの識別子」を文字変数に代入します。 非表示設定にされた領地のユニットも代入されます。 storeNowPower(文字変数) 現在戦略思考中の「COM勢力の識別子」を文字変数に代入します。 storeTalentPower(ユニット, 文字変数) ユニットの「旗上げした勢力の識別子」を文字変数に代入します。 ただし代入が空欄となるときは、“ユニット@np”が代入されます。 storePowerOfForce(数値, 文字変数) 総戦力値順位が数値の「勢力の識別子」を文字変数に代入します。 数値が全勢力数を超えてる場合は自動的に切り詰められます(最下位の数値に変換される) 数値を 0 にすると「全ての勢力の識別子」を代入します。 storePowerOfSpot(領地, 文字変数) 引数の領地が所属する「勢力の識別子」を文字変数に代入します。 storePowerOfUnit(ユニット, 文字変数) 引数のユニットが所属する「勢力の識別子」を文字変数に代入します。 storeSpotOfPower(勢力, 文字変数) 引数の勢力が持つ「全ての領地の識別子」を文字変数に代入します。 storeSpotOfUnit(ユニット, 文字変数) 引数のユニット(放浪可)が存在する「領地の識別子」を文字変数に代入します。 storeLeaderOfPower(勢力, 文字変数) 引数の勢力が持つ「全ての部隊長の識別子」を文字変数に代入します。 storeLeaderOfSpot(領地, 文字変数) 引数の領地に所属する「全ての部隊長の識別子」を文字変数に代入します。 storeRoamUnitOfSpot(領地, 文字変数) 引数の領地に放浪する「全ての部隊長の識別子」を文字変数に代入します。 storeUnitOfPower(勢力, 文字変数) 引数の勢力が持つ「全てのユニットの識別子」を文字変数に代入します。 storeUnitOfSpot(領地, 文字変数) 引数の領地に所属する「全てのユニットの識別子」を文字変数に代入します。 storeMemberOfUnit(ユニット, 文字変数) 引数のリーダーユニットが持つ「全ての部下ユニットの識別子」を文字変数に代入します。 storeMasterOfPower(勢力, 文字変数) ※左引数の変数内 複数無効 引数の勢力の「マスターの識別子」を文字変数に代入します。 storeBattleSpot(文字変数) 直前に侵攻された「領地の識別子」を文字変数に代入します。 簡易戦闘後でも正確に代入されるようになりました。 storeAttackPower(文字変数) 直前の侵攻先の攻撃側ホストの「勢力の識別子」を文字変数に代入します。 簡易戦闘に関しても代入されます。 storeDefensePower(文字変数) 直前の侵攻先の防衛側ホストの「勢力の識別子」を文字変数に代入します。 簡易戦闘に関しても代入されます。 clearBattleRecord() 直前の戦闘の記録データ(上記の3関数で得られるデータ)をリセットします。 storeAliveUnit(基底クラス/ユニット名, 文字変数) ※左引数の変数内 複数無効 現在の戦闘シーン(簡易可)で引数の基底クラス/ユニットの識別子を持つ生存ユニットを全て文字変数に代入します。 ただし基底クラスで指定した場合は、非人材ユニットのみが対象となります。 storeTodoUnit(基底クラス/ユニット名, 文字変数) ※左引数の変数内 複数無効 現在の戦闘シーン(簡易可)で引数の基底クラス/ユニットの識別子を持つユニットを全て文字変数に代入します。 ただし基底クラスで指定した場合は、非人材ユニットのみが対象となります。 死亡したユニットも代入されます。 storeRectUnit((red/blue), left, top, right, bottom, 文字変数) 現在の戦闘シーン(簡易不可)で四角領域にいる赤or青陣営の生存ユニットを全て文字変数に代入します。 MapMakerの座標を用いてください。内部でクォータービュー座標に変換されます。 storeSkillOfUnit(ユニット, 文字変数) 引数のユニットが持つ「全てのスキルの識別子」を文字変数に代入します。 storeClassOfUnit(ユニット, 文字変数) 引数のユニットが持つ「クラスの識別子」を文字変数に代入します。 storeBaseClassOfUnit(ユニット, 文字変数) 引数のユニットが持つ「基底クラスの識別子」を文字変数に代入します。 storeRaceOfUnit(ユニット, 文字変数) 引数のユニットが持つ「種族の識別子」を文字変数に代入します。 storeSkillset(スキルセット名, 文字変数) 引数のスキルセットが持つ「全てのスキル」を文字変数に代入します。 内政ユニットの雇用関連 引数欄の「左側」において、内包要素が複数の文字変数はその先頭要素のみが利用されます。 setPM(内政ユニット名, merceデータ) ※「merceデータ」=addv等を用いて内政用のunit等を代入した文字変数(複数個の文字列可)。 指定した内政ユニットの merce に、雇用できるユニットを追加・上書きします。 追加されたユニットは初期に設定した merce とは別の部分(独立部分)として追加されます。 なので、一度setPMを用いた内政ユニットに、再度setPMを用いて雇用欄にユニットを追加した 場合、前回追加した merce データが上書きされる形で削除されます。 (削除せずに追加したい場合は下記のstorePMを用いて、一度追加したmerceデータを文字変数に 代入し、その文字変数に雇用したいユニットを追加したうえで、再度それをsetPMで上書きする) また識別子順の本来の部分とは異なり、雇用表示欄の末尾から merceデータ 内の並び順で追加 されます。 storePM(内政ユニット名, 文字変数) 指定した内政ユニットにおいて、setPM関数で追加した merce データのみを、文字変数へと 代入します。(初期設定されている雇用可能ユニットは代入されない) 追加されている雇用可能ユニットの参照の他、setPMを用いて再度雇用できるユニットを追加 する際、それ以前にsetPMで追加した要素を、上書きによって消去されるのを防ぐ場合等に活用 します。 ※現在内政の雇用ユニットに関し、上記二つを用いて増減を行えるのは、setPMを用いて追加した データのみとなっています。(ゲーム内で初期設定されている雇用可能ユニットの削除はできない) 文字変数の保存 setud(保存識別子, 文字列) 文字列を「保存識別子」に代入します。この文字列はセーブファイルへ保存されます。 文字変数に複数の文字列が代入されてても全部保存されます。 storeud(保存識別子, 文字変数) 「保存識別子」に代入された文字列を文字変数に代入します。 .
https://w.atwiki.jp/shinobu2/pages/20.html
文字を文字列を値として使用する場合、キーボードから入力できないような文字があります。例えば改行です。文字列の中で改行をキーボードから入力した場合は次のようになります。 System.out.println("こんにちは お元気ですか"); 上記の例では「こんにちは」と「お元気ですか」の間で改行を入力しようとしましたがキーボードで「Enter」キーを押してもプログラムが改行されるだけです。文字列の途中で改行するとコンパイルエラーとなります。 そこで改行などキーボードから入力できない文字などは「¥」+特定の文字の組み合わせで表現します。例えば改行は「¥n」という「¥」と「n」の組み合わせによって表すことができます。 System.out.println("こんにちは¥nお元気ですか"); 上記では「こんにちは」と「お元気ですか」の間に「¥n」が記述されています。「¥n」は改行を表しますので実際に実行してみると次のように画面に出力されます。 こんにちは お元気ですか このようにキーボードから入力できない文字を他の文字の組み合わせで表現したものをエスケープシーケンスといいます。 エスケープシーケンスの一覧 エスケープシーケンスとしては次のようなものが定義されています。 エスケープシーケンス 意味 ¥b バックスペース ¥t 水平タブ ¥n 改行 ¥r 復帰 ¥f 改ページ ¥ シングルクオーテーション ¥" ダブルクオーテーション ¥¥ ¥文字 |¥ooo |8進数の文字コードが表す文字 |¥uhhhh |16進数の文字コードが表す文字 改行や水平タブについてはキーボードから入力できない文字のためのエスケープシーケンスですが、「¥ 」や「¥"」については次のような理由からエスケープシーケンスが用意されています。 文字を例に考えてみます。文字は1つの文字をシングルクオーテーション( )で囲うことで表していました。例えば「 a 」や「 各 」などです。ここで「 」を表す文字を表現しようとすると「 」となります。 System.out.println( ); 文字を表すには「 」から「 」までに1つの文字を囲んで表現しますが、このプログラムでは2番目の「 」が文字ではなく文字の終端を表す「 」だと解釈されてしまいます。その結果上記のように記述すると「 」と「 」の間にも文字が記述されていないと言うはエラーとなります。 このような場合に「 」の代わりに「¥ 」を記述すると、この「 」は文字の終端を表す「 」ではなく1つの文字としての「 」として扱われます。 System.out.println( ¥ ); 上記の場合には1番目と3番目の「 」の間に文字の「 」が記述されているものとして処理されます。 また文字列は「"」から「"」までの間に記述された文字の集まりですので、文字列の中で「"」を使用したい場合にも「"」の代わりに「¥"」を使用します。 System.out.println("この机は¥"1500円¥"です"); エスケープシーケンスは「¥」+特定の文字で表しますので文字や文字列の中で「¥」を使用したい場合にも注意が必要です。例えば「¥」という文字の後に「n」という文字を続けたい場合、「¥n」と記述してしまうとこれは改行を表すエスケープシーケンスとして扱われてしまいますので「¥」がエスケープシーケンスの1文字目ではなく単なる文字の「¥」としたい場合には「¥¥」と記述する必要があります。 System.out.println("改行のエスケープシーケンスは¥¥nです"); どのように出力されるのかはサンプルで確認して下さい。 わからないところがあったら以下に書き込んでください。 test -- (test) 2010-12-10 22 01 03 テスト -- (test) 2010-12-10 23 00 34 hosei -- (HOSEI) 2011-01-31 14 10 34 test -- (名無しさん) 2011-01-31 14 10 53 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/pignon/pages/19.html
ary = [1, 3, 4, 3, 5, 2, 1] 統合された配列 = ary ary # = [1, 3, 4, 5, 2]
https://w.atwiki.jp/dslua/pages/111.html
構文 editText( タイトル[,初期文字列セットフラグ] ) 戻り値 入力文字, 入力結果コード 説明 文字入力ダイアログを表示します。 引数 タイトル ダイアログに表示する文字です。初期文字列セットフラグ 入力時に初期文字列をセットするかどうかのフラグ 0 無し 1 有り 戻り値 入力文字列(最大240バイト)入力結果コード 0 Cancel 1 OK 引数の初期文字列セットフラグ「1 あり」のサンプルは、文字入力ダイアログで、あらかじめ文字列を設定を見て下さい。 ------------------------------------------ -- 文字入力ダイアログを表示するサンプル editText_sample.lua ------------------------------------------ function main() local txtInput local ref canvas.drawCls(color(255,255,255)) canvas.drawText("文字入力ダイアログを表示するサンプル", 0, 0, 24, color(0,0,0)) canvas.drawText("画面タッチで文字入力ダイアログを表示します。", 0, 30, 24, color(0,0,0)) touch(3) txtInput, ref = editText("テキストを入力") if(ref == 0) then canvas.drawText("キャンセルされました。", 0, 60, 24, color(255,0,0)) elseif(ref == 1 and txtInput == "") then canvas.drawText("入力されていません。", 0, 60, 24, color(255,0,0)) else canvas.drawText("入力されたのは、 " .. txtInput .. " です。", 0, 60, 24, color(255,0,0)) end canvas.drawText("画面タッチで終了します。", 0, 100, 24, color(0,0,0)) touch(3) end main() 1.起動したら画面タッチでダイアログを表示させませす。この状態でOKボタンを押すと。 2.戻り値が無い為、「入力されていません。」と表示し、画面タッチで終了します。 3.1.のときCancelボタンを押すと、戻り値に0がセットされてキャンセルされたことが分かります。画面タッチで終了します。 4.1.のとき入力部分をタップすると、入力モード(?)となり、「テスト」を入力して完了ボタンを押します。 5.ダイヤログには「テスト」が入力された状態になります。OKボタンを押します。 6.入力されたの文字は、txtInputに格納されて「テスト」が入力されたのが分かります。画面タップで終了します。 コメント(最大30行) 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/dslua/pages/63.html
文字列中の英大文字を小文字に変換するサンプルです。 関数:string.lower(str) -- stringlower.lua -- 文字列中の英大文字を小文字に変換する。 while not Keys.newPress.Start do Controls.read() startDrawing() screen.print(SCREEN_UP, 0, 0, "Press START to quit") screen.print(SCREEN_DOWN, 0, 0, "test123 - " .. string.lower("test123")) screen.print(SCREEN_DOWN, 0, 8, "Test123 - " .. string.lower("Test123")) screen.print(SCREEN_DOWN, 0,16, "TEST123TeSt - " .. string.lower("TEST123TeSt")) stopDrawing() end 実行結果 1行目は、小文字なので変化なし。 2行目は、一部大文字が混ざっていますが、変換され小文字になっています。 3行目は、大文字と小文字の混在ですが、すべて変換されています。。
https://w.atwiki.jp/kmo2/pages/4.html
int型と文字列型の変換 ここら辺はPerlだと勝手にやってくれるんだけど、rubyは意識して自分でやらないと駄目。 文字から数字へ num = "1".to_i 数字から文字列へ str = 1.to_s JavaのtoString()相当 to_sメソッドは大抵の標準クラスに実装されているみたい。 puts aObjctとやると、実際にはputs aObject.to_sと呼ばれてるらしい。 JavaのtoString()相当なのかな。