昨日、こんなことを書き、

 

「さて、何々?」

 

と先ずHomeで進め方について英文を読むと、

 

"To begin playing, click on the PLAY link to create an account."

 

とあります。「では」とPLAY に進むと、

"In order to play Myst Online on the Cyan Worlds server, you must first create an account. Then you need to download the installer."

 

とあり、確かにその下に「アカウントを作る」と「クライアント(プログラム)をダウンロードする」とあるので、

 

先ずはアカウントを作ろう!(ルンルン)

 

と進みましたが、

 

?...ん?...んん?

ACCOUNT CREATION OFFLINE


つながってねーじゃん!!!(怒)


一応

 

"We apologize for any inconvenience this causes, and hope to have service back online shortly."

 

と書いてあるので、今日も行ってみましたが単に混んで使えなくなったのではないことは

 

明々白々のOpen and obvious!

 

ということで、又しても「最後のチャレンジ」は先送りされたのでした。悪しからず

 

脳みそが劣化

 

してきているようです。

 

私が若い頃に「(キチタイ)」という言葉があり、その意味は「気力知力体力」で、これら三者が綿密に連携しあっている、ということでした。つまり、気力体力(実際、脳みその活動は大きなカロリーを消費します)がなければ知力を発展させられず、体力知力が充実しなくては気力も湧かず、気力を持って十分な知力的裏付けがなければ体力を維持できない、という意味になるでしょう。

 

50の時に40、60の時に50、70の時に60を振り返った時にこの想いを抱きましたが、「」の落剝による落胆は "each and every decade" 毎に強まってきています。

 

あ"~、後10年以内にバイバイするかもしれないんだよね。

 

という、

 

当たり前

 

事実が素直に心に染み渡ってきます。より具体的な話をしましょうか?例えば、

 

ゲーム

 

です。私が8 bitマシンで遊んでいた時代でも市販ゲームソフト(リバース、ウィザードリーとか、どれもRPGでした)を2、3買ったことを覚えていますが、本気で深夜までプレイするようになったのは、米国に駐在していた16bitマシン時代です。"Magic Carpet (3D Graphics Game for DOS)"、Sierra-OnLineのゲームなどもやりましたが、特に"Dungeons & Dragons(D&D)"が面白く、その後帰国してもはまっていました。帰国してから完全に嵌ったのがDiabloでこれはII~IVまでやったんじゃないかな?シンガポール時代もSim Lim Square(森林商業中心)があったし、Changi Air Port(樟宜国際空港)でもソフトを安売りしている所があったので、 Dungeon SiegeFable等で遊びました。

 

で、何が言いたいのかと言うと、

 

昔は好奇心とガッツと体力があった

 

ので、深夜まで睡眠時間を削ってまで、集中力を維持しながら根を詰めてプレーすることが出来ましたが、今は

 

15分も持ちません。

 

実際、このブログでも取り上げたDaggerFallというRPGも途中で放り出し、専ら短時間で決着がつく【無駄話】今でも遊んでいる「化石」ゲームソフトしか遊びません。このブログを書くようになった後も、RPGでは「ラハ三部作」「Elona」等ダウンロードして、スタートはしますが、長続きせずに放り出してしまいます。又「懐かしいっ!」という観点からSnes9xを使って「ドラゴンクエスト」「ファイナルファンタジー」「ウィザードリィ」「クロノトリガー」等が遊べますが、

 

どーも、食指が動かない!

 

んですよねぇ。

 

本当にもうRPGやアドベンチャーゲームは無理なのかしら?

 

と感じるこの頃ですが、最後のチャレンジとして(それこそ米国帰国後に発売され、やる機会がなく「Long Goodbye」していたて、やりたいなと思っていた)

 

Myst

 

のフリーWeb版である

 

Myst Online: Uru Live

 

というのがあることを知り、これで「人生最後のゲームチャレンジ」にしようかな、と考えています。(尤も、Mystもスマホ用のMobile版がフリーで使えるのでiPhoneに入れているのですが、スマホで長時間遊ぶのに慣れていないので、それも放り出しています。まぁ、今回も長続きはしないでしょうが...)

 

ps. 長続きしたら、ブログネタにしますね。

 

またまたネタ切れで知恵を絞っているこの頃。家庭で必要な計算と言えば...

 

あ"っ、ローン返済シミュレーションがあるか?

 

「計算」はPCの最も得意とするところで、若いころ住宅ローン関係の業務や、赤本(注1)をベースに対人損害賠償計算アプリなどを作っていましたので、これなら基礎的知見(注2)があるので面白いかも、と考えました。

注1:日弁連交通事故相談センター東京支部発行の交通事故損害賠償裁判基準(弁護士基準)が書かれた書籍。

注2:基本的に借り入れ額、毎月払いと反年賦払い(およびその割合)、元利均等か元金均等か、利率、返済期間を変数にして、何を求めるのかをベースに計算対応をすればできます。

 

ところが、

 

ん?

 

と思ってググってみると、

 

何処でもやっていて、こんなにあるじゃん!

 

ということで 同じようなソフトやwebサービスがザックザク見つかりました。ということで、

 

没!

 

又何か考えましょう。

 

前回はJR横浜駅と勤務地周辺について書きましたが、夜ともなればさ迷い歩くのは26歳(転勤した1981年4月時点)の男子として当たり前のこと。

 

ということで、

 

今回は当時の私が飲み歩いた中でまだ覚えている所の「今」を調べてみましたので、紹介しましょう。

 

1.JR横浜駅周辺

勤務地周辺は矢張り手軽に飲み食いすることが多く、回数的には多かったのですが、余り記憶に残っている店は無いですね。

当時一緒だったアル中の()課長代理が(↓の通りの経緯の後)退院後連れて行ってくれた居酒屋というか、首都高速道の下にあった屋台のような狭い店なんですが、そこは店主が船で釣ってきた魚を当日出す店でとても新鮮なネタだったので覚えてはいますが、名前は思い出せません。(まぁ、現在は無いでしょうが。)

:実際、ある日会社に来なくなり、入院しましたので真正の、です。

 

今では信じがたいですが、現在の「横浜ベイシェラトン」のビル地階に「うなぎの肝焼き」一本で勝負していた店があり、時々仲良しの母店の総務の課長代理と飲みに行っていたことは覚えています。これも名前は思い出せませんね。

 

矢張り「家飲み」のような居酒屋系の店は、記憶に残りにくいようですね。

 

2.横浜中華街

インターネットweb上で何でも情報(偽情報も)が入手できる今の人は信じられないでしょうが、1980年初頭当時の日本には外国人が稀であり、町中華ではない本格中国料理を食べようと思ったら、「横浜中華街)迄行かなくちゃーね」なんて言われていた時代でした。

:より昔は南京街。当時「チャイナタウン(Chaina town)」なんていったらエーちゃん風で気障でしたね。

 

クロニカ(As the story is such,)

 

横浜と言えばエキゾチック、その中でも中華街は無視するわけにはいかない重要なエリアです。しかし、お店は山ほどあるのですべて廻るわけにはいきません。歓迎会や送別会等の会合で使うのも、よく知られている萬珍楼聘珍楼華正樓等の有名店(だけど高い!)は偉いさんが使う店で若かった僕らはもう少しリーズナブルな同發順海閣永福楼等の大衆店に行ったように記憶しています。

 

ネット等ない当時、情報媒体は雑誌(特にAn-an、Non-no等当時大流行の女性月刊誌や、POPEYE、BRUTUS等の男性ファッション雑誌)や口コミであり、その伝聞情報で特に有名であったのが「海員閣」で、私も神様(女房)とデートの後行って、冬の寒空の下1時間まって晩飯にありついたことを覚えています。しかし、当時すでに高齢であったご店主の後継者問題からか、現在はおひとりの方が完全予約制のコース料理のみで切り回しているようですね。

 

また、転勤後担当することになった当時の取引先に中国系アメリカ人の方が経営する会社があり、そこにお邪魔するたびに色々な名店(such as 山東謝甜記 etc etc)へランチに連れて行ってもらいました。

 

でも、

 

その際に教えてもらったのは、「中華街の中には外形的にはお店に見えない、個人経営の隠れ家的な店が多く存在し、自分の舌にあった好みの店を作って長く荒らされないで楽しむ」のが通なんだそうです。実際何店か連れて行ってもらい、正月料理 etc の珍しい中国料理もいただきました。(とはいっても、私ら一見客なんでねぇ...)

 

3.バー・レストラン

横浜と言えばエキゾチック」と書きましたが、それは中華だけではありません。若かったこともあり、気取った洋風のレストランやバーなどにも出没しました。

 

スカンディアScandia)ーシルクセンタービルの日本大通り対面にある「北欧料理レストラン」ということになっていますが、一般的な洋風料理も注文できます。しかし、ここも2025年冬から1階を開けていないようですね。

 

ホフ・ブロウThe Hof Brau)ー名前の通り、ザワークラウト、ジャーマンポテト、アイスヴァイン等のドイツ料理の店で、特にジャーマンポテトの印象が深いです。(今のメニューを見ると今は大分イタリアがかっていますが...でも、おすすめはドイツ料理でしょうね。)

 

WindJammer-酒とJAZZを愛する人にはたまらない、こういった店でした。が、たくさんの人が惜しむ中、2024年に閉店していました。残念です。ご興味のある方はこちらを→「日本のバーの歴史と歩む横浜今昔物語

 

最後に触れるのは山下公園の向かいにある「ホテルニューグランドHOTEL NEW GRAND)」。

 

ここも↑で述べた方(Chenさん)に連れて行ってもらい、そのクラシカルな佇まいに感銘したものでした。(その時Chenさんがオーダーしたサラダにイタリアンドレッシングがかかっていたのですが、彼は更に"Extra vinegor"を依頼したのでした。何故かそれが<元来お酢好きな私なので>心に刺さり、「サラダには"Extra vinegor"」が私の生き方になっています。)

 

エラそーに横浜を語る、なんて到底私にはできませんが、

 

「横浜」という歴史的、文化的に稀有な街についてご興味を持っていただき、閉店してしまう前に稀有な店の味を楽しんでいただける契機になれば望外の幸甚に感じます。

 

ps. GW中の手慰みに始めた今昔物語ですが、書き始めると長々となるので、一旦ここで打ち切り、特にこの後NewYorkへ研修に往き、更に駐在し、再度Singaporeに駐在した「今昔物語」はもう少し熟成させてからにしましょう。

 

少し音楽方向へ脱線気味でしたが、今回は日本橋で3か年勤め始めた後、初めての転勤先となった横浜について書きます。

 

当時私の勤めていた会社は転勤が多い業種で、「3年に一回」転勤するのが当たり前でしたが、とうとう私の番になりました。前年遠方へ転勤された先輩もいる中、

 

「なーんだ、お前は横浜か?隣町みたいなもんじゃないか?」

 

という上司等の「定義」により(今思えば、パワハラとしか思えませんが)、自分の送別会の幹事をまだ下から2番目の自分自身が担当することになりました。(トホホ)でも、4月1に日の転勤日当日は「(当時は1番線だった)東京駅の東海道線乗り場」で(当時は定番の)「〇〇君、バンザーイ!」等とやって頂き、約30分後に横浜駅に着く、という

 

なんとも間の抜けた転勤

 

であったことを思い出します。

 

とはいえ、

 

26~30歳まで4年間務めた間には、若かったこともあり色々と思い出があります。

 

・客先の接待後、余り一緒になりたくない先輩と同じ車で帰りたくなかったので、(8月だったこともあり)山下公園橋の埠頭のベンチで寝て、夜中にホームレスさんが(私の目の前で)焚火をしていたり、4時に起きて横浜球場迄歩いて最後のなけなしのコインで関内駅から電車で寮に買えり、シャワーを浴びてからまた横浜に出勤したり...

 

・日本橋時代に付き合ったけど、一旦分かれた彼女と又付き合い始め、とうとう所帯を持ったり...

 

・結婚直前で「全国最年少の地域分解組合委員長」となり、地方経営かつ仲人の取締役支店長とやりあったり...

 

・翌年長男が生まれたので、(現場用の作業服に着替えて)出役後、その帰りに入院先の病院に行った際、自宅アパートの鍵を忘れ、酔っぱらったまま3階の階段から窓の手すりに飛び移ろうかまじめに考えたり...(矢張りおっかないのであきらめて、元居た寮に頼み込んで寝かせてもらいました)

 

・米国研修試験に受かり(ご参考、その後の海外業務キャリアの出発点となったり...

 

等々、その他色々とエピソードがありましたが、その時代の勤め先はJR横浜駅西口駅前ドまん前、横浜市北幸1丁目3番23の「相鉄ビル」でした。JR横浜駅西口から一旦地下に入り、「横浜駅西口地下街(ダイアモンド地下街)」を通って通いました。当時の「横浜地下街」には飲食店が多く、「勝烈庵」とかお寿司屋さん、中華屋さんなどがひしめいていて、お昼は全く困らなかったことを覚えています。

 

偶々、2023年に女房が横浜で目の外科手術を受けることになり、何度か車、電車で横浜に足を運ぶ機会があり、帰りに駅前を散策する機会がありましたが、

 

 

まー、変わったこと、変わったこと

 

・まず勤め先が入っていた「相鉄ビル」が「横浜ベイシェラトン ホテル&タワーズ」になっているんですね。

・地下街も飲食店が(恐らくコロナの影響と横浜駅西口大改造構想により)跡形もなく、ブティックばかりになっています。

・当時立ち読みした本屋はありましたが、大分品揃えや店舗デザインも変わっていました。

・西口はそんなものですが、東口埋立地は矢張り(当時はなかった)ルミネやそごう等で趣が大きく変わっていました。

・横浜高島屋がテナントの相鉄ジョイナス横浜岡田屋(MORE'S)は健在ですが、矢張り当時とは様変わりですね。

・「ダイアモンド地下街」も「ザ・ダイアモンド」というそーな。

 

これが40余年の変化かぁ...もう郷愁、ノスタルジアでIR横浜駅を訪れることはないな...

 

という深い感慨をもって帰宅したことを覚えています。

 

ゴメンナサイ。(最初から謝っちゃいます。)

 

ここから始まった【TurtleGraphics】シリーズで、Visual StudioからC#5へ移行してサンプルやらTGEditorやらで22投稿したので疲れてしまったのと、GWに差し掛かり、このブログも5周年だったので、余り深く考えずに始めた

 

【今は昔...】シリーズ

 

社会人になった【今は昔...】今昔物語(1)日本橋時代から始めましたが、投稿した後、何故か学生時代に聴いた

 

 

にWEBで遭遇し、懐かしさの余り昨日私の「懐メロ」メニューに加えてしまいました。

 

そんなこととで、「今昔物語(2)」は「最初の転勤地の今」を予定していたのですが、突如余り深く考えずに学生時代」に退行してしまいました。

 

しっかし、

 

発見はあるもので、今聞き返すと、例えばTake it easyとかLyin’sEyesとか

 

Eaglesって、めっちゃカントリー

 

なんですね。

 

いずれにせよ、

 

Witchy WomanDesperadoOne of These Nights、そしてHotel Californiaと夜中、机に向かっていた時分が 蘇り、結構浸ってしまいました。

 

ん?

 

『だから何?』と言わないで

 

 

Don't say "So what?"

 

でよいのでしょうか?

 

今回の真意は、現在も存続する

 

Eagles

 

ではありますが、

 

決して同じではありえないEverything Must Change

 

ということを言いたかったのです。

 

ps. 次はまた(1)の延長に戻るつもりです。(のつもりですが... 「気分次第で責めないで」)

 

Golden Week ...とはいえ、今年6回目の年男である私は人混みに出てゆく体力、気力がわきません。(それというのも、ゴールデンウィークの高速の混雑についてトラウマがあるからなんですが...)

 

そんな時に

そうそう、今はグーグルビューがあって、何処でも行ったように見えるんだっけ

:正しくは「Google MapのStreet View」です。

 

と思い立ち、取り敢えず、学校を卒業して社会人になった1978年から3年間務めた東京、日本橋がどうなっているのか、グーグルマップの人型(so-called "pegman")

を落として、当時の勤務地を探ってみました。すると、

 

ビル自体が無いっ!(48年前だから当たり前だよな)

 

ということで、今がどうなっているのかを検索すると、

 

日本橋一丁目中地区第一種市街地再開発事業

という再開発プロジェクトを三井不動産と野村不動産が仕掛け、今年の3月に竣工して


東京ミッドタウン日本橋

 

になっているそーな。

 

でも、でもよっ!

 

このマップを見ていると、(1978年)当時(お昼の予算は500円で)勤務するビルの(社食で安くあげて矢張り)裏にあったアマンドに行くか、コーヒーを我慢して行った)中華料理店の

 

小洞天」はどうなっちゃったの?

 

という素朴な疑問が生じます。これも調べてみると、

 

日本橋小洞天閉店の理由と80年の歴史【1944年創業中華料理店の最後】

 

ということで、この再開発事業の結果(当然アマンドも同じく)

 

閉店(ガーン!!!)

 

になった模様です。それで焦って小洞天のホームページを詳細に調べると残っている店舗は

 

小洞天 大手町ファーストスクエア店

shop_fs

 

だけになってしまった模様。(💦)

 

でも、名物の

 

シュウマイご飯(Shumai and rice set  シュウマイ4ヶ+ライス+スープ+ザーサイ)

¥1,000

 

は勿論、当時先輩が「食べろ、食べろ」と煩かった、懐かしい

 

menu02

五目やわらか焼きそば(Five ingredient soft fried noodle)

¥ 1,300

 

はまだ健在の模様なので、一度食べに行かなくては!

 

このブログ、初めての投稿がこれ。なので、14日で

 

開設5周年!

 

を迎えます。大体GWに「あ"~、もう〇年ブログを書いたな~」と感じる暦年記念記事は

 

(1)一年目に祝一周年】ハァハァ、ゼィゼィなどを書いていますが、同時にこんな紹介を書いていますね。

(2)二年目は書いていませんが、ウィンドウズの描画がらみの(後にC#のEaselクラスとなる)こんな記事を書いていますね。

(3)三年目もかいていませんが、(OpenGLだから)矢張り描画がらみでこんな記事をかいています。」

(4)四年目も記念記事はかいていませんが、こんなことを書いています。(しょーもな。)

 

まぁ、

 

Anniversaryを祝う気がない

 

ことはわかりました(笑)が、5月1日に最終回

 

 

を迎え、結果的に5周年記念作品になったTGEditorもグラフィック系であることを考えると、絵心はない」私ですが、描画やグラフィックに関心があることは分かります。事実2022年のこんな紹介(BCCSkeltonのC++プログラム)

 

 

でも(より深度の大きい)フラクタルツリーが出ていました。C#でEaselクラスを作った後、手慰みでこんなもの

 

 

を作りましたが、矢張り環境ソフト的なものが好きなのでしょうかね?

 

いずれにせよ、

 

祝5周年、おめでとー!

 

前回でTGEditorの最終回としましたが、TGEditorが「独特な関数を用いた描画や、繰り返しネスティングの複雑な描画等には対応できないという限界が明白」ということで、

 

「独特な関数を用いた描画や、繰り返しネスティングの複雑な描画等はこっちを使いましょう。」

 

と結びました。以下では↑の青字の典型であるフラクタルや、フラクタル樹形を描画(末尾参照)してみましょう。

 

【TG_Ala_Carte.cs】

////////////////////////////
// TG_Ala_Carte.cs
// Copyright 2026 by Y-Sama
////////////////////////////

using System;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
using System.Reflection;                //Assemblyを使う為
using Nakov.TurtleGraphics;                //TurtleGraphicsを使う為

namespace TG_Ala_Carte
{
    class Launcher
    {
        //エントリーポイント
        [STAThread]
        static void Main()
        {
            Application.Run(new TGAC());
        }
    }

    public class TGAC : Form
    {
        //クラスコントロール
        private Button Reset_Button;
        private Button Hide_Button;
        private Button Draw1_Button;
        private Button Draw2_Button;
        private Button Draw3_Button;
        private Button Exit_Button;

        //コントロールの初期化
        private void InitializeControls()
        {
            this.Reset_Button = new Button();
            this.Hide_Button = new Button();
            this.Draw1_Button = new Button();
            this.Draw2_Button = new Button();
            this.Draw3_Button = new Button();
            this.Exit_Button = new Button();
            this.SuspendLayout();
            //Reset_Button
            this.Reset_Button.Anchor = AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
            this.Reset_Button.Location = new Point(713, 12);
            this.Reset_Button.Name = "Reset_Button";
            this.Reset_Button.Size = new Size(75, 30);
            this.Reset_Button.TabIndex = 0;
            this.Reset_Button.Text = "リセット";
            this.Reset_Button.UseVisualStyleBackColor = true;
            this.Reset_Button.Click += new EventHandler(this.Reset_Button_Click);
            //Hide_Button
            this.Hide_Button.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            this.Hide_Button.Location = new Point(713, 44);
            this.Hide_Button.Name = "Hide_Button";
            this.Hide_Button.Size = new Size(75, 30);
            this.Hide_Button.TabIndex = 1;
            this.Hide_Button.Text = "亀表示";
            this.Hide_Button.UseVisualStyleBackColor = true;
            this.Hide_Button.Click += new EventHandler(this.Hide_Button_Click);
            //Draw1_Button
            this.Draw1_Button.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            this.Draw1_Button.Location = new Point(713, 74);
            this.Draw1_Button.Name = "Draw1_Button";
            this.Draw1_Button.Size = new Size(75, 30);
            this.Draw1_Button.TabIndex = 2;
            this.Draw1_Button.Text = "描画1";
            this.Draw1_Button.UseVisualStyleBackColor = true;
            this.Draw1_Button.Click += new EventHandler(this.Draw1_Button_Click);
            //Draw2_Button
            this.Draw2_Button.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            this.Draw2_Button.Location = new Point(713, 104);
            this.Draw2_Button.Name = "Draw2_Button";
            this.Draw2_Button.Size = new Size(75, 30);
            this.Draw2_Button.TabIndex = 3;
            this.Draw2_Button.Text = "描画2";
            this.Draw2_Button.UseVisualStyleBackColor = true;
            this.Draw2_Button.Click += new EventHandler(this.Draw2_Button_Click);
            //Draw3_Button
            this.Draw3_Button.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            this.Draw3_Button.Location = new Point(713, 134);
            this.Draw3_Button.Name = "Draw3_Button";
            this.Draw3_Button.Size = new Size(75, 30);
            this.Draw3_Button.TabIndex = 4;
            this.Draw3_Button.Text = "描画3";
            this.Draw3_Button.UseVisualStyleBackColor = true;
            this.Draw3_Button.Click += new EventHandler(this.Draw3_Button_Click);
            //Exit_Button
            this.Exit_Button.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
            this.Exit_Button.Location = new Point(713, 410);
            this.Exit_Button.Name = "Exit_Button";
            this.Exit_Button.Size = new Size(75, 30);
            this.Exit_Button.TabIndex = 4;
            this.Exit_Button.Text = "終了";
            this.Exit_Button.UseVisualStyleBackColor = true;
            this.Exit_Button.Click += new EventHandler(this.Exit_Button_Click);
            //TGAC本体
            Assembly myOwn = Assembly.GetEntryAssembly();
            this.Icon = Icon.ExtractAssociatedIcon(myOwn.Location);    //プログラムアイコンをフォームにつける
            this.AutoScaleDimensions = new SizeF(6F, 12F);
            this.AutoScaleMode = AutoScaleMode.Font;
            this.ClientSize = new Size(800, 450);
            this.Controls.Add(this.Hide_Button);
            this.Controls.Add(this.Reset_Button);
            this.Controls.Add(this.Draw1_Button);
            this.Controls.Add(this.Draw2_Button);
            this.Controls.Add(this.Draw3_Button);
            this.Controls.Add(this.Exit_Button);
            this.Name = "TGAC";
            this.Text = "TurtleGraphics Ala Carte";
            this.ResumeLayout(false);
        }

        //コンストラクター
        public TGAC()
        {
            Turtle.Init(this);
            Turtle.Reset();
            InitializeControls();
        }

        //終了処理
        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            base.OnFormClosing(e);
            DialogResult dr = MessageBox.Show("終了しますか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if(dr == DialogResult.No)
            {
                e.Cancel = true;
            }
            else
                Environment.Exit(0);    //解説【重要】ウィンドウをクローズしてもプロセスが終了せず、継続してしまう為
        }

        //リセットボタン処理
        private void Reset_Button_Click(object sender, EventArgs e)
        {
            Turtle.Reset();
        }

        //非表示処理
        private void Hide_Button_Click(object sender, EventArgs e)
        {
            if (Turtle.ShowTurtle)
            {
                Turtle.ShowTurtle = false;
                this.Hide_Button.Text = "亀表示";
            }
            else
            {
                Turtle.ShowTurtle = true;
                this.Hide_Button.Text = "亀非表示";
            }
        }

        //描画1ボタン

        private void Draw1_Button_Click(object sender, EventArgs e)
        {
            DisableCtrls();                                //ボタン無効化
            Turtle.Reset();
            Turtle.PenUp();
            Turtle.MoveTo(-100, 200);
            Turtle.PenDown();
            Turtle.Rotate(90);
            fractal(200, 0);

            Turtle.Reset();
            Turtle.PenUp();
            Turtle.MoveTo(-100, 100);
            Turtle.PenDown();
            Turtle.Rotate(90);
            fractal(200, 1);

            Turtle.Reset();
            Turtle.PenUp();
            Turtle.MoveTo(-100, 0);
            Turtle.PenDown();
            Turtle.Rotate(90);
            fractal(200, 2);

            Turtle.Reset();
            Turtle.PenUp();
            Turtle.MoveTo(-100, 0);
            Turtle.PenDown();
            Turtle.Rotate(90);
            fractal(200, 3);
            EnableCtrls();                                //ボタン有効化
        }

        private void fractal(int size, int depth)    //Used by Draw1 abd Draw2
        {
            if(depth <= 0)
                Turtle.Forward(size);
            else
            {
                Turtle.Delay = 50;
                Turtle.PenSize = 2;
                fractal(size / 3, depth - 1);
                Turtle.Rotate(-60);
                fractal(size / 3, depth - 1);
                Turtle.Rotate(120);
                fractal(size / 3, depth - 1);
                Turtle.Rotate(-60);
                fractal(size / 3, depth - 1);
            }
        }

        //描画2ボタン

        private void Draw2_Button_Click(object sender, EventArgs e)
        {
            DisableCtrls();                                //ボタン無効化
            Color[] col = new Color[3] {Color.Red, Color.Green, Color.Blue};
            for(int j = 0; j < 3; j++)
            {
                //Turtle.Reset();
                Turtle.PenUp();
                Turtle.MoveTo(-100 + j * 4, -100 + j * 4);
                Turtle.PenDown();
                Turtle.PenColor = col[j];
                for(int i = 0; i < 5; i++)
                {
                    fractal(200 - j * 4, 3);
                    Turtle.Rotate(360 / 5);
                }
            }
            EnableCtrls();                                //ボタン有効化
        }

        //描画3ボタン

        private void Draw3_Button_Click(object sender, EventArgs e)
        {

            //Fractal  Tree
            DisableCtrls();                                //ボタン無効化
            Turtle.Delay = 10;
            Turtle.PenSize = 2;
            Turtle.MoveTo(0, -150);
            for(int i = 0; i < 100; i++)
            {
                draw(100);
            }
            EnableCtrls();                                //ボタン有効化
        }

        private void draw(int i)    //Used by Draw3_Button_Click
        {
            if(i < 10)
                return;
            else
            {
                Turtle.Forward(i);
                Turtle.Rotate(-30);
                draw(3 * i / 4);
                Turtle.Rotate(60);
                draw(3 * i / 4);
                Turtle.Rotate(-30);
                Turtle.Backward(i);
            }
        }

        //終了ボタン

        private void Exit_Button_Click(object sender, EventArgs e)
        {
            Close();
        }

        //ボタンを無効化する

        private void DisableCtrls()
        {
            Reset_Button.Enabled = false;
            Hide_Button.Enabled = false;
            Draw1_Button.Enabled = false;
            Draw2_Button.Enabled = false;
            Draw3_Button.Enabled = false;
            Exit_Button.Enabled = false;
        }

        //ボタンを有効化する

        private void EnableCtrls()
        {
            Reset_Button.Enabled = true;
            Hide_Button.Enabled = true;
            Draw1_Button.Enabled = true;
            Draw2_Button.Enabled = true;
            Draw3_Button.Enabled = true;
            Exit_Button.Enabled = true;
        }
    }
}
 

【描画1】

(解説:フラクタル深度0、1、2を続く最後の2です。)

 

【描画2】

(解説:【注意】20分くらいかかるので注意してください。)

 

【描画3】

(解説:【危険】描画完了まで1時間以上かかります。)

 

まっ、

 

眺めて楽しい環境ソフトではありますが、時間が長いのは今風ではないかもしれませんね。(とはいえ、速過ぎるのは興ざめでもあったりして。)

 

前回でコードについては全て書きましたので、今回は「実際に使ってみるとどうか」、なんて書いてみましょう。

 

何度も表示していますが、単に起動すると

 

こんな風になります。又起動時に「実行リスト実行命令のファイル - *.tge)」をドロップするとそれが読み込まれ、又起動してからドロップしても同様に読み込まれます。「読み込まれているかどうか」の違いはウィンドウ最下部のステータスバーに表示されるファイル名で分かります。

(解説:   ↑ここです。)

 

ここで「ファイル」-「実行ファイルの新規作成」をメニューやツールバーボタンで選択すると、

 

と確認が出ます。要すれば「ファイル」メニューの対象ファイルは実行リスト(TGEクラスインスタンスのtge.ExeListメンバー)であり、「新規作成」はその初期化だけの意味しかありません。この確認に対して「はい」と答えると、(既にファイルがあってもなくても)次のダイアログが「何をすればよいのか(ToDo)」の操作指示を表示します。(尚、既にファイルを読み込んでいた場合には初期化され「(ファイル名)」状態に戻ります。)

 

例えば↑の第2パラにある「命令リスト(ダイアログ)」の「命令追加(ボタン)」から「(「命令入力ダイアログ」をつかって)命令セット」を作ります。この操作は画像を含めにやりましたね?(その結果、PenColor命令入力の仕様変更も行いました。)

又、作成した「命令セット(TGSetクラスインスタンス)」はダイアログを「はい」で終了すると自動的に「命令リスト(「命令セットライブラリー」であるTGEクラスインスタンスのtge.CmdListメンバー)」に追加されるので、即座に「実行」-「命令セットの実行」メニュー(またはツールバーの緑色の横▲ボタン)で命令セットライブラリー」から選択して実行できます。

 

単体の描画「命令セット」は部品として命令セットライブラリー」に登録されるので、

 

それを好きなように選択し、実行リスト(TGEクラスインスタンスのtge.ExeListメンバー)」に登録することができ、やや複雑な画像を連続して描画することが可能です。

 

又それらを「名前を付けて保存」することで、その後に「ファイル」ー「実行ファイルを開く」で読み込んで、「編集]-「実行リスト編集」で追加、削除、編集して新しい「実行リストファイルにすることができ、画像作成の生産効率が向上します。

(解説:最後の2枚は↑で単体で描いた命令セットのPenColor命令と繰り返し回数を変化させたものです。)

 

このような訳で、最初にやったダイアログへの描画命令記述()はWYSWYG化と再利用化が可能となりました

【TurtleGraphics】TurtleGraphics01

  【TurtleGraphics】TurtleGraphics02

  【TurtleGraphics】TurtleGraphics03

 

が、一方

 

独特な関数を用いた描画や、繰り返しネスティングの複雑な描画等には対応できないという限界も明確になりました。でも、それは「わかった上での設計方針」であったし、それを基に仕様を決めたのだから

 

No problem/No worries

没問題(メイウェンティ)

 

なんですが、矢張り対応できないのもちょっと気になるので、

 

なんくるナイサー

 

ということで、最初に作ったダイアログを使って

 

「独特な関数を用いた描画や、繰り返しネスティングの複雑な描画等はこっちを使いましょう。」

 

ということにしました。それはまた次回。