matumatuのなでしこ学習帳

2008-02-02本日は、なでしこ本 P.64の学習です

学習レベルを判定した結果 LV = 3: HP = 113 : MP = 300

02:55

  • 完了予想日数 = 451 → 464 悪化
    • 完了予想年月日 = 2009/04/24 → 2009/05/12 悪化
      • はてなカウンター値 = 10725 もうすぐ、キリ番です。

  10000のキリ番は、いつのにかえました。 (^^;)

        • 学習開始日から本日までの日数 =80日

  東京に2日出張し、に溜まった仕事に

  追われたので、数値が悪化した。


下記のプログラム「文字列型と数値型.nako」は、

02:55

なでしこ本CDROM → sample → 03-01

に入っているプログラムです。


# 文字列型の指定
Sは「こんにちは」
Sを表示。

# 数値型の指定
Sは3.1415
Sを表示

         サンプルプログラムなので、

         正常に、なでしこ本のとおり、

         「こんにちは」

         「3.1415」

          と、表示された。


下記のプログラム「文字列のテスト1.nako」は、

02:55

なでしこ本CDROM → sample → 03-01

に入っているプログラムです。


# 単純な単語はOK
S=タコ
Sを表示。 # ... タコ

  • 動作結果 : 「文字列のテスト1」さすが、

         サンプルプログラムなので、

         正常に、なでしこ本のとおり、

         単純な単語の場合、文字列

         カギカッコで囲わなくても

         「タコ」と、表示された。


下記のプログラム「文字列型と数値型A.nako」は、

02:55

文字列型と数値型の動作テストが出来るようにした、改造版です。


# 文字列型と数値型の指定(改造版)
# 文字列型の指定で「 」を、『 』、“ ”に変更して動作テストしました。
# なでしこ本 P.218を参考にしてボタン選択しています。
# 数値型の指定で、小数点以下何桁まで表示するか、動作テストしました。

左括弧1はCHR(33141)。 右括弧1はCHR(33142)。  # 「 」を直に入力すると誤動作します。 (^_^;)
左括弧2は「『」。 右括弧2は「』」
左括弧3は「“」。 右括弧3は「”」。

必要の間
	質問は「動作テストしたい、項目を選んでください!!」
	選択肢は「{左括弧1} {右括弧1}
{左括弧2} {右括弧2}
{左括弧3} {右括弧3}
数値型の桁数テスト
動作テスト終了」

	# --- 出題
	質問を選択肢でボタン選択。
	もし、それが「{左括弧1} {右括弧1}」ならば
			括弧1関数
	もし、それが「{左括弧2} {右括弧2}」ならば
			括弧2関数
	もし、それが「{左括弧3} {右括弧3}」ならば
			括弧3関数
	もし、それが「数値型の桁数テスト」ならば
			数値1関数
	もし、それが「動作テスト終了」ならば
			終了関数

# 関数の定義
●括弧1関数
	# 文字列型の指定1
	Sは「初期化1」
	Sは「{左括弧1} {右括弧1}は、文字列用カッコに使用可能です」
	「{S}」を表示。

●括弧2関数
	# 文字列型の指定2
	Sは「初期化2」
	Sは『二重カギ括弧は、文字列用カッコに使用可能ですが、
二重カギ括弧を文字列に含めません (^^;)』
	「{S}」を表示。

●括弧3関数
	# 文字列型の指定3
	Sは「初期化3」
	Sは“ダブルクオーテーションマークは、文字列用カッコに使用可能ですが、
ダブルクオーテーションマークを文字列に含めません (^^;)	”
	「{S}」を表示。

●数値1関数
	# 数値型の指定
	Sは0.1234567890123456789012345678901
	「{S}
小数点以下15桁まで表示された」を表示。

●終了関数
	# この動作テストプログラムを終了する
	終わる。

         正常に、なでしこ本のとおり、

         文字列型用カッコは、「 」が最適と学習した。

         数値型は、小数点以下15桁まで表示された。


下記のプログラム「文字列のテスト1A.nako」は、

02:55

長い文字列をカギカッコで囲わない時の現象を、テスト出来るようにした改造版です。


# 単純な単語はOK(改造版)
# 文字列型の指定で、60文字にしてもカギカッコで囲わなくても良いか、
# 動作テストしました。

S=タコ12345678タコ12345678タコ12345678タコ12345678タコ12345678タコ12345678

T=タコ12345678タコ12345678タコ12345678
タコ12345678タコ12345678タコ12345678

# 数えるのが面倒なので「タコの胴体(2文字)+足(8文字)」
# =10文字 × 6セット = 60文字でテストした。 (^^;)


# 途中で一切改行しない時に、正常動作するかテストした。
「改行無しの場合 {S}」を表示。 

# 30文字目で改行した時に、正常動作するかテストした。
「改行有りの場合 {T}」を表示。 

  • 動作結果 : 「文字列のテスト1A」

         単純な単語の場合、文字列

         カギカッコで囲わなくても

         60文字でも、正常に表示された。

         ただし、カギカッコで囲った場合、

         通常は、プログラムが見やすいように、

         途中で改行し、複数行に入力するが、

         カギカッコで囲わない場合、改行すると

         それ以降の文字列が無視されることを

         学習した。


下記のプログラム「RPGレベル判定7.nako」は、

02:55

ようやく「なでしこ本」の学習が、第3章に入ったので、バージョンアップ

した、なでしこ本学習レベル判定用プログラムです。

ろ、プログラムとデーターを分離する必要ありますが、

まだ、学習不足で、これ以上の改造は無理な状態です。


#------------------------------------------------------------------------------
# なでしこ本学習レベル判定7      Ver 0.7
#
# 学習状況(なでしこ本を学習したページ数)の入力をします
# LVは、第3章(P.88まで)を学習中なので、LV=3です。
# HPは、LV=1の場合、初期値=50+カウンター値÷40で、学習開始日の
#      2007年11月14日から、1日当たり2減少し、
#          HP=0で学習不能状態と判定されます。
#     LV=2の場合、初期値=100+カウンター値÷60で、学習開始日の
#      2007年11月14日から、1日当たり3減少し、
#          HP=0で学習不能状態と判定されます。
#     LV=3の場合、初期値=200+カウンター値÷70で、学習開始日の
#      2007年11月14日から、1日当たり3減少し、
#          HP=0で学習不能状態と判定されます。
#  MPは、LV=1の場合、初期値100で、1回魔法を使うと
#      50減少する代わりに、HPが50回復します。
#      LV=2の場合、初期値200で、1回魔法を使うと
#      100減少する代わりに、HPが100回復します。
#      LV=3の場合、初期値300で、1回魔法を使うと
#      150減少する代わりに、HPが150回復します。
#  LV1~3のパラメーターは上記ですが、ゲームバランスによって
#  は、途中で自分の都合に合わせて突然変更します。
#  学習完了まで、あと何日か表示します。 完了予想年月日も、表示します。
#  学習日数の表示機能と、日記作成支援機能を部分的に修正しました。 
#------------------------------------------------------------------------------

# 現在、学習中の、なでしこ本ページ数
「現在、学習中の、なでしこ本ページ数は?」と尋ねる。
P=それ

# 現在の、はてな学習帳のカウンター数
「現在の、はてな学習帳のカウンター値は?」と尋ねる。
C=それ

# LVの判定
もし、P<=38 ならば、LV = 1     # 第1章はP.38でクリアーする
違えば
   もし、P<=62 ならば、LV = 2    # 第2章はP.62でクリアーする
      違えば、LV = 3
   		もし、P<=88 ならば、LV = 3    # 第3章はP.88でクリアーする
      		違えば、LV = 4
「LV = {LV}」と、表示。

# 学習開始日(2007年11月14日)から、今日までの日数計算
D=「2007/11/14」と今日の日数差

# HPの判定
もし、LV = 1 ならば、HP=50 + ROUND(C/40 - 2*D)
違えば
	もし、LV = 2 ならば、HP=100 + ROUND(C/60 - 3*D)
	違えば
  	LV ≧ 3 ならば、HP=200 + ROUND(C/70 - 3*D)

もし、HP>0 ならば、「HP = {HP}」と、表示。
違えば
   「HP={HP}なので、学習不能状態です!! 3秒後に魔法を使います」と、表示。
    3秒待つ。
        M=1
    もし、LV = 1 ならば、HP=50 + ROUND(C/40 - 2*D)+50*M。 「魔法使用後のHP = {HP}」と、表示。
    違えば
			もし、LV = 2 ならば、HP=100 + ROUND(C/60 - 3*D)+100*M。 「魔法使用後のHP = {HP}」と、表示。
      違えば
      	LV ≧ 3 ならば、HP=200 + ROUND(C/70 - 3*D)+150*M。 「魔法使用後のHP = {HP}」と、表示。

# MPの判定
もし、LV = 1 ならば、MP=100-50*M
違えば
	もし、LV = 2 ならば、MP=200-100*M
	違えば
  	LV ≧ 3 ならば、MP=300-150*M
もし、MP>0 ならば、「MP = {MP}」と、表示。
違えば
   「MP = {MP}なので、学習スピードを早くしてください」と、表示。

# 学習完了まで後、何日か表示
DC1=ROUND((435-P)/P*D)
「学習完了までの日数 = {DC1}日」と、表示。

今日に「+0/0/{DC1}」を日付加算。
DC2=それ
「学習完了予想年月日 = {DC2}」と、表示。

# はてなカウンター値を表示
「はてなカウンター値 = {C}」と、表示。

# 学習開始日から今日までの日数を表示
「学習開始日から今日までの日数 ={D}日」と、表示。

# 日記作成支援用テキストファイル作成
「* 学習レベルを判定した結果 LV = {LV}: HP = {HP} : MP = {MP}
- 完了予想日数 =  → {DC1} 改善・悪化 ← 不要な文字を削除してください!
--完了予想年月日 =  → {DC2} 改善・悪化 ← 不要な文字を削除してください!
--- はてなカウンター値 = {C} もうすぐ、キリ番です。 ← 不要な文字を削除してください!
----学習開始日から本日までの日数 ={D}日」を「日記作成支援.txt」に保存。

明日の予定

02:56

なでしこ本 P.65~66に進む予定です。

takken123takken123 2008/02/03 13:24 カウンター10000突破おめでとうございます^^

matumatuh18matumatuh18 2008/02/04 23:00 コメントありがとうございます。
id:takken123 さんも、センター試験が無事終了したので、おめでとうございます。

ゲスト



トラックバック - http://nadesiko.g.hatena.ne.jp/matumatuh18/20080202