YOS G-specの適当なブログ
ゲームやネットが大好きな人のブログ。毎日更新を目指してました。
2017年08月24日 (木) 23:08 | 編集
これより改定してtclの汎用ゲッター・セッターを安全に制作してみた。
読み込み専用も書き込み専用も完全privateもできるようになったのでわりかし満足かな?

oo::class create person {
variable name
variable age
method age {} {return $age}
constructor {_name _age} {
set name $_name
set age $_age
}
method get {property} {
foreach v {name age} {
if {$property==$v} {
return [expr [format "\$%s" $property]]
}
}
return undefine
}
method set {property value} {
foreach v {name} {
if {$property==$v} {
set $property $value
return
}
}
error "setting property failed."
}
}

apply {{} {
set student [person new "bob" 13]
set teacher [person new "john" 30]

puts [format "名前:%s" [$student get name]]
puts [format "年齢:%d" [$student get age]]
puts [format "名前:%s" [$teacher get name]]
puts [format "年齢:%d" [$teacher get age]]

$student set name bobV2
puts [format "名前:%s" [$student get name]]

# 次の処理は必ず失敗します!!!
#(setメソッドforeachリスト内に"age"がないため)

$student set age 15
puts [format "年齢:%s" [$student get age]]
}}
2017年08月24日 (木) 01:36 | 編集
【次!】

最近tclに興味を持ち始めたのでサクッとこれと同じクラス処理書いてみた。
tclは全てがコマンドな構造でLispも感じさせる。
ちなみにプロパティは直接ゲットできないので、ゲッターを特別作る必要があるみたい。

そういえばこの言語の変数スコープはどんな感じなんだろうか?

追記:
tclの文法が自由度高いのであっさり、汎用セッター、ゲッターできてしまった…
何でもプロパティ取れちゃうので少し危ない気はするが、凄い。

oo::class create person {
variable name
variable age
method age {} {return $age}
constructor {_name _age} {
set name $_name
set age $_age
}
method get {property} {return [expr [format "\$%s" $property]]}
method set {property value} {set $property $value}
}

apply {{} {
set student [person new "bob" 13]
set teacher [person new "john" 30]

puts [format "名前:%s" [$student get name]]
puts [format "年齢:%d" [$student get age]]
puts [format "名前:%s" [$teacher get name]]
puts [format "年齢:%d" [$teacher get age]]

$student set name bobV2
puts [format "名前:%s" [$student get name]]
}}

2017年08月13日 (日) 16:58 | 編集
混合将棋 -超棋-(ペーパークラフト・PDFファイル)

DSC_0078.jpg


これにさらに手を加えたりコンポーネントを追加しました。
今回追加したコンポーネントはこれ。
DSC_0085.jpg
DSC_0087.jpg
DSC_0090.jpg
大箱です。

色々行き当たりばったりで修正加えたり、まだ、満足する感じではないですが、
その反省を交えてPDFにはさらに修正を加えています。
そして、枠にある空洞にダンボールなどを投入すればかなりの強度補強は出来たはず…
完成してから気付いたのがもったいない。

そして、目玉となる機構が
DSC_0091.jpg
DSC_0092.jpg
DSC_0093.jpg
DSC_0096.jpg
DSC_0097.jpg
DSC_0098.jpg
開いた大箱の四隅にボード用紙を差し込めば、色々なボードに変更できる。
様になっててかなりお気に入り。

ちなみに寸法はA4に縦80mm(40mm+40mm)となります。
2017年08月05日 (土) 00:58 | 編集
コンポーネント更新しました!

混合将棋 -超棋-(ペーパークラフト・PDFファイル)

つい最近、ちょっとした思い付きで紙で将棋類の駒を作ってました。

DSC_0078.jpg

ただの将棋だけではなく、チェスやマークルック・シャンチー・チャンギなどの駒を日本の将棋の駒の形状に起こしています。

IMG_20170804_232323.jpg

ボードは通常ルール各種用と駒を混ぜた独自ルール用を用意。
コンポーネントは駒箱も作ったり、ある程度凝ってみました。

IMG_20170804_232506.jpg
DSC_0083.jpg

あともいろいろありますが、あとは上記PDFの中に全部入ってますのでそちらをご覧ください。
(独自ルールについては構想を起こしただけなのでバランス調整は一切できてません)

IMG_20170804_232448.jpg


ちなみに紙ゲー.netの方にもぶん投げてます。

このページにあるPDFの方が一応マスター版という扱いになります。
一部印刷すれば過不足なく一式揃います。
(ただし、コンポーネント(駒・駒箱)については厚紙での印刷推奨))

あとはベクタ画像なので解像度が良くなるかも。
Template by 【投資信託のことなら】投信Web /

Powered by .