2008年5月17日土曜日

斎藤孝著 原稿用紙10枚を書く力 その2

再度、この本を読んで思ったことの文章です
文章の本の良書を読んでから
もしくは、ブログを書くようになって漸進的に
TACKに変化が生じました
それは、書くことの素材探しとしての読書です

いつからか、僕は書くことの素材探しとしての読書をするようになりました
普通に楽しむために読んで簡単な感想を書く
そのような読書ももちろんまだあります
でも、書く材料探しとしての読書も、最近よくします

やっぱり漠然と読書をするのと
書くことを前提に読書をするのとは違うし
このような読書にも違う楽しさは(はっきり)あります

斎藤孝著 原稿用紙10枚を書く力

図書館で借りてきて読みました
読んで一番気になったキーワードは構築力です
この本の中で何かを10枚書くには構築力が必要と書いていました

僕は構築なんてしたことないように見えて
書く前にボヤーッと書きたいことを考えます
で、思い浮かんだら、思い浮かんだことについて書く
キーワードはいつも2個か3個
この本の中でもキーワードは3つがいいと書いていました
それ以上、キーワードを増やしてもまとまりがないのは事実

とはいえ10枚って、結構大変ですよね
内省した結果を誰に見せるともなく書いたことはあったけど
ノートパッドにして何行かはわからないけれど
それくらいは書けた気がします
書く量を増やした時期を経て
今のTACKは2、3キーワードが浮かんだらPCに向かいます
でも、書くのは短い
いつか10枚書くのを前提に
また、量をこなす文章書きもしてみたいです

話は変わって
例えば小説を書こうとした時
構築は不可欠。みたいなことも書かれていました

小説。書けないっすね
一回書こうとして
短い段落2つ。で先が書けなくなったものです
でもそれは、僕に実力がないのではなくて
構築の作業が欠けていた。ということかもしれない

現在作成中のゲームにシナリオをつけようとして
なかなかシナリオが浮かびません
でも、それは構築の作業が欠けているということかもしれません
シナリオ書きのために
すこしづつ、キャラ設定と構築の作業を進めていきたいものです

2008年5月13日火曜日

TACK Local Links:テストコード末尾データの復元操作:テストコード

テストコード末尾データの復元操作の単体テストです
dat\\null.txt:空のテキスト
dat\\tmp_HSP_LINK.txt:データ復元操作の対象
ちなみにテキストの行数は11行です
処理しやすいように11行のテキストに9行追加して
20行にします
NO.001
TITLE:HSPオフィシャルホームページ
URL :http://www.onionsoft.net/hsp/
memo1:フリー・インタプリタ・HSPのオフィシャルサイト
memo2:
memo3:
memo4:
memo5:
memo6:
memo7:
NO.002

以下テストコード
#include "set_note_begin.hsp"
#include "set_note_last.hsp"
init_at_set_note_last "URL"
sdim dat,1024
notesel dat;*1
noteload "dat\\null.txt"
def_set_note_begin
def_set_note_last
notesave "dat\\null_c03.txt"
mes notemax
exec "notepad dat\\null_c03.txt"

sdim dat_b,1024
notesel dat_b;*2
noteload "dat\\tmp_HSP_LINK.txt"
def_set_note_begin
def_set_note_last
notesave "dat\\null_d01.txt"
mes notemax
exec "notepad dat\\null_d01.txt"
stop

*1:空テキストを操作
*2:11行のテキストを操作
今まで、テキスト操作→保存→手動で開く
といった作業をしていたんですけど
スクリプトの中でexecを使用して
自動的に開けば楽なことに気付きました(ぉ

TACK Local Links:テストコード末尾データの復元操作

TACK Local Linksでは読み込むテキスト形式のファイルは
10行単位と想定しています
なので10行で割り切れない行数だと正確に処理できないかもしれません
行数がずれていた場合、表示がおかしくなるので、わかりそうです
しかし10行の倍数で割り切れない行数のテキストファイルを
10行の倍数で読み込むとどうなるかは、予想がつきません
なので無理矢理10行の倍数まで行を埋める命令を作成してみました
ファイル名:set_note_last.hsp
#module m_set_note_last
#deffunc init_at_set_note_last str p
sdim t,256,16
t.2 ="TITLE:"
t.3 =p+" :";*1
t.4 ="memo1:"
t.5 ="memo2:"
t.6 ="memo3:"
t.7 ="memo4:"
t.8 ="memo5:"
t.9 ="memo6:"
t.10="memo7:"
return
#deffunc def_set_note_last
n=notemax\10
m=2
while n!=0
if n<=m{
noteadd t.m,-1,0
}
m++
n=notemax\10
wend
return
#global

*1:3行目は"URL :"と"pos :"の2種類のテキストの存在を
想定しているため引数を使用して代入しています

#単体テストは書きかけなのでまた明日!

2008年5月12日月曜日

TACK Local Links:空ファイル及びファイルが一行のデータへの処理:テストコード

読み込むファイル
null.txt:空ファイル
null_b.txt:データが一行のファイル
#include "set_note_begin.hsp"
sdim dat,1024
notesel dat;*1
noteload "null.txt"
def_set_note_begin
notesave "null_a01.txt"
mes notemax

sdim dat_b,1024
notesel dat_b;*2
noteload "null_b.txt"
def_set_note_begin
notesave "null_b01.txt"
mes notemax
stop

*1:空ファイルを読んだ時のテスト
*2:データが一行のファイルを読んだ時のテスト

TACK Local Links:空ファイル及びファイルが一行のデータへの処理

TACK Local Linksは複数のファイルへの処理を想定しています
なのでファイルを作成したばかりのファイルは空です
ここではそんなファイルに一行書き込む命令を定義してみます
ファイル名:set_note_begin.hsp
#module m_set_note_begin
#deffunc def_set_note_begin
if notemax==0{
noteadd "NO.001",-1,0
}else{
if notemax==1{
noteadd "NO.001",0,1
}
return
#global

2008年5月7日水曜日

TACK Local Links:ナンバーの再定義操作 テストコード

ナンバーの再定義操作命令の単体テストです
注:文字コードのエスケープ文字がバッククォートになってます
#include "write_number.hsp"
sdim dat,64000
notesel dat
noteload "dat\\HSP_LINK.txt";*1
l=notemax/10
def_write_number l
notesave "dat\\HSP_LINK11.txt"

noteload "dat\\HSP_LINK.txt";*2
repeat 15000
noteadd ":",-1
loop
def_write_number 1200
notesave "dat\\HSP_LINK12.txt"
stop

*1:ナンバーがきちんとつけられるか?のテスト
*2:ナンバーをつける数の最大が999であるか?のテスト

TACK Local Links:ナンバーの再定義操作 その2

普通はいくつかの命令をまとめてモジュール化するのですが
漸進的なブログ形式での開発ということで
モジュールが細切れです

さて、ナンバーの再定義モジュールです
ファイル名:"write_number.hsp"
#module m_write_number
#deffunc def_write_number int p
m=p;*1
if m>999:m=999
repeat m
n=cnt+1
if n<10{s="00"+str(n)};*2
else{
if n<100{s="0"+str(n)};*3
else{s=str(n)}
}
noteadd ("NO."+s),(cnt*10),1;*4
loop
return

#global


*1:数値型引数に代入をすると怒られるので変数に代入しています
*2:1桁の数字の桁数を3桁に揃える
*3:2桁の数字の桁数を3桁に揃える
*4:上書きモードでテキストデータに書き込み

末尾データの復元操作の作成が先だったかな?

TACK Local Links:ナンバーの再定義操作

サンプルテキスト
注:文字コードのエスケープ文字がバッククォートになってます
ファイル名:"dat\\HSP_LINK.txt"
NO.001
TITLE:HSPオフィシャルホームページ
URL :http://www.onionsoft.net/hsp/
memo1:フリー・インタプリタ・HSPのオフィシャルサイト
memo2:
memo3:
memo4:
memo5:
memo6:
memo7:
NO.002
TITLE:HSPTV!
URL :http://hsp.tv/
memo1:HSPの最新情報ならココ!
memo2:
memo3:
memo4:
memo5:
memo6:
memo7:
NO.006
TITLE:HSPユーザーのサイトのLINK
URL :http://hsp.tv/play/link.html
memo1:HSPユーザーのサイトのLINK
memo2:
memo3:
memo4:
memo5:
memo6:
memo7:
NO.007
TITLE:HSP LINK 推奨サイト
URL :http://hsp.tv/play/link1.html
memo1:HSPの推奨サイト
memo2:COOL で HOT な情報がテンコ盛り
memo3:
memo4:
memo5:
memo6:
memo7:
NO.008
TITLE:HSP LINK HSPの情報・講座などがあるサイト
URL :http://hsp.tv/play/link2.html
memo1:HSPの情報・講座などがあるサイト
memo2:HSPを学びたいなら、ここからジャンプ!
memo3:
memo4:
memo5:
memo6:
memo7:
NO.009
TITLE:HSP LINK 拡張プラグイン・支援ツール等のサイト
URL :http://hsp.tv/play/link3.html
memo1:HSPの拡張プラグイン・支援ツール等のサイト
memo2:HSPを極めたいなら、ここからジャンプ!
memo3:
memo4:
memo5:
memo6:
memo7:
NO.010
TITLE:HSP LINK その他・リンク集など
URL :http://hsp.tv/play/link4.html
memo1:HSPのその他・リンク集など
memo2:HSPを調べる時は、ここからジャンプ!
memo3:
memo4:
memo5:
memo6:
memo7:
NO.011
TITLE:HSP LINK HSPによるソフトを公開しているサイト
URL :http://hsp.tv/play/link5.html
memo1:HSPによるソフトを公開しているサイト
memo2:HSPで楽しみたいなら、ここからジャンプ!
memo3:
memo4:
memo5:
memo6:
memo7:

このようなテキストを操作してみます
サンプルテキストは80行です
テキストファイルの最後尾の行は"memo7:"の行で終わって下さい

TACK Local LinksのToDoリスト

現在考えている、TACK Local Linksのデータ構造と、テキスト形式のデータへの操作のToDoリストです
  • データ構造
  • 一行目:ナンバー
  • ナンバーはつけなくてもいいような気もしてきましたが、テキストを直接編集する時にあると便利そうなので、一行目は、ナンバーにしています
  • 二行目:タイトル
  • 三行目:URL
  • 四行目~十行目:メモ
  • 本当はメモは八行あったのですが、七行だと行数付きエディタで編集するのに便利なので、泣く泣く、メモは七行にしました

データ操作機能ToDoリスト

  • 末尾データの復元操作
  • 末尾データが十行ではなく、例えば、七行だったら、正確に処理できないので、末尾データのみ、データを付け加えて、テキストデータの行数を十の倍数にします
  • ナンバーの再定義操作
  • 追加や削除でナンバーが正確でなくなった時に、必要そうな機能です。またテキストデータを直接加工した場合、自動的にナンバーを再定義できると、便利そうです
  • データの編集操作
  • データの追加操作
  • データの削除操作
  • データの移動操作
  • (将来的に)データのエラーチェック
  • データを直接加工することを考えると、データのエラーをチェックしてくれると便利そうですよね。しかし、この機能は、TACKの技術的に当分実装できない気がします

TACK Local Links

結構、前に作成していたLocl Linkツール、TACK Local Links
の作成を再開してます

動機は以前書いた。小・中学生の頃、通っていた
塾の先生のアドバイスです。
wikiに書くのを続けてみればいいじゃない?
と、その時、言ってもらいました
僕に何人もの人が反論したことを指して
一対複数だから、負けて当然ですよね。言った
そうすると先生は書くということは
何人が相手だろうと立ち向かうことなのよ。と言った

その時は、またwikiへの投稿を再開しようと思いました
でも、以前の投稿から間が空きすぎて(ソフト開発の企画ね)
上手く再開はできません
しかし、テキスト形式のデータの処理として
TACK Local Linksのテキスト形式で処理している
データへの操作のスクリプトを書くことに決めました
wikiへの投稿はためらわれますが
ellerさんのようにブログ形式で更新していこうと思っています

2008年5月6日火曜日

考える力がつく「文章」の書き方

またまた、図書館で借りて読みました
考える力はついたかどうかわからないけれど
(そもそも本、一冊読んだくらいで
 考える力がついたら苦労しないんだろうけど
 でも、考えながら何かを書き続けていったら
 考える力もつくんだろうなぁ)
少し、文章を考えながら読むようになりました

予備校の小論文の授業で生徒が書いた小論文の添削が主なんだけど
説明を読みながら読んでたら
考えながら読めるようになってきた気がします

それよりなにより
文章指導の本は、読むことにより
文章指導をするというほどテクニックを押さえた
書き方をする文章を読むということで
文章に影響が出るんですよね
今、気付いたんやけど
この文章も序論・本論・結論の三段重ねになっている(笑)