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日火曜日

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

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

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

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

2008年4月30日水曜日

HSPゲームプログラミング・クックブック

なんか最近、スクリプトを書く気がおきなかったんですよ
作りたいゲームもツールもモジュールもあるのに
いまいち、スクリプトを書く気がおきなかった

で、解決策をみつけました
先日、僕の小・中学校で通っていた塾に遊びに行きました
で、僕、数学が手順を踏んで式を変形するの苦手だったんですよ
みたいなことを言いました
だから、プログラミングをする時に
手順を踏んでプログラミングをするのが苦手なんですよ
みたいなことを言いました
すると、それは数式の処理のパターンを抑えてなかったから
そうだったんだよ
みたいなことを言われました
つまり、スクリプト書きも、主なスクリプトの手順を抑えてないから
上手く、手順を踏んで、スクリプトを書けなかったんだぁ
ってなりました

それから3日くらい
HSPゲームプログラミング・クックブックを読みました
理由は主なスクリプトの手順を抑えるためです
で、今日、久しぶりにスクリプトを書きたくなりました
たった3日本を読んだだけで
スクリプトの手順なんておさえられられるようになるわけはないけれど
僕もこれまで、量としてはそんなに多くはないけれど
スクリプトを書く経験をしています
それがこの3日間で
以前の状態とつながったかんじです

これからは
HSPゲームプログラミング・クックブックも
HSP3プログラミング辞典も
モチベーションが下がる度に
何回も何回も読んでいきたいです

コンパイラ構成法

amazonで買いました
4800円もしました
プレミアでも付いているのかなー?なんて思いきや
届いて値段見たら6500円って書いてありました
専門書って高いのね

内容はyaccとlexの使い方です
簡単な言語作成の本は2冊ほど読みましたが
構文解析がいまいち理解でけん!
ってな状況です

で、この本少し読んでみました
なんかあんまり構文解析しなくても言語が使えるみたいです
難しくて家だとなかなか内容が頭に入ってきません
なので、今度図書館でも行った時に図書館パワーで読んでいこう
なんて考えています