みろりHP


緑色さんの多目的ブログ
みろりえいちぴー
ごゆるりとおくつろぎあさーせ。
<< googleでサイト内検索をする | main | Sunaba 数字をひたすらかいてくプログラム >>
| カテゴリ:感想文 |
平山尚『プログラムはこうして作られる』


むかし「ワード使いづれーなあ改造とかできないのかな」って思って以来俺はプログラミングに興味があった。ソレ系の会社いってる仲間に入門書のおすすめとして紹介してもらったのが本書。紹介文をみると「プログラミング言語の習得ではなくプログラムを考え出す能力を身につけるのが本書の目的」とある。ってことは新書みたいなサイズなのかな? とアマゾンでポチる俺。


まさか500ページ級とは……。
まあともかく一日一章こなしてようやく読み終わったので感想、というか、この教本はプログラミング言語Sunabaをいじってカンタンなゲームを作る本なので、それにともなう苦労話とかそういう失敗メモをかく。本自体は文体がフランクなのでとても読みやすかった。カタくない、無礼でもない良いライン。

  • 空欄が1スペース分足らない。->タブを使うようにしてからなくなった。
  • 全体を書き直す際よけいな行も消しちゃう。->最後までやらかし続けた。
  • y'っていう変数を作ったんだが'は使えないっぽい。
  • 入力元で(y, x + 1)、参照先でも(y, x + 1)って書いてた。->部分プログラム内の名前付メモリは他と独立している。みどりん覚えた。
  • 名前付メモリを作る際ハイフンは使えない。->マイナスとして扱われる。
  • 最初につっかかったのは10章。各マスにそれぞれメモリを割り当てるってのがうまく理解できなかった。いちばん知恵熱出したのは13章の表づくり。いま見直してもちょっと顔が強張る。

  • 教本に従って作ったあと、練習としてゲームに点数要素を足した。

     

    列を消すごとに点数がついて、10点でクリアが出る。それにともなう失敗メモが以下。

    number -> 1
    {numberに従って名前付メモリを作る}
    名前付メモリに従って描画する()
    
    def 名前付メモリに従って描画する()
    
    だから部分プログラム内に外の名前付メモリは代入できないっつってんだろ。みどりんまったく覚えてない!

    数字とかCLEARを描画するのに、
    number()
    def number()
        number -> 1
        while number <= 9
            if number = 1
                描画(1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1)
            if number = 2
    {以下9まで}
            number -> number + 1
    def 描画(number, aa, bb, cc, dd, ee, ff, gg, hh, ii, jj, kk, ll, mm, nn, oo)
        a -> 60000 + ((99 - (6 * number)) * 100) + 60
        b -> a + 1
    {以下oまで}
        memory[a] -> 888888 * aa
        memory[b] -> 888888 * bb
    {以下memory[o]まで}
    
    こんなの書いたんだが、ありえないだろこのバカみたいな長さ…。どう短くすればよかったんだろ。(しかもポイント記号にも同じようなものが使われてる。)


    エディタにはSublime Text3を使った。これ便利。検索置換できるし正規表現使えるし。


    ゲームづくりといえば以前つくった自作ゲームが思い出される。あれはウディタを使って作ったゲームで、今回の学習の助けになった。とくに変数と繰り返し、条件実行。ただしウディタはどんなにゲーム作りやすいツールだったのかも分かった。htmlでサイト作るのとブログサービスでブログ作るくらいの差、いやそれ以上の差がある。なにせhtmlはアイウエオって書けばアイウエオって表示されるんだから。こちとら123456789って表示するのにこんなの(上参照)書いてる体たらくである。

    追記@翌日
    部分プログラム「描画」が下では「write_number」になってたので修正。


    | 緑色 | 感想文 | comments(2) |
    | カテゴリ:- |
    スポンサーサイト
    | スポンサードリンク | - | - |
    著者です。

    「y'という変数を使いたい」というのは
    至極もっともなご意見です。
    早速'を使えるようにしました。
    ありがとうございます。

    ところで、文字や数字を書くならば「表」の考え方が便利かもしれません。0から9を10000番あたりのメモリに1文字100個づつ使って表を作っておき、10000+number*100で表の先頭を取る、という感じです。13章の応用ですね。
    | 平山尚 | 2015/03/25 12:21 AM |
    大変読み易い著作で、良い最初のプログラム体験をさせて頂きました。
    こちらこそありがとうございます。

    >文字や数字
    なるほど。今回の点数要素では各文字はひとつずつだけれど、たくさん書く場合はあらかじめ作っておいた方がよさそうです。
    | 緑色(Author) | 2015/03/25 5:40 AM |









          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
    << April 2017 >>
    + みろりHP内検索
    + 閲覧記事
    + カテゴリ
    + 年月選択
  • 2017年 04月 (8)
  • 2017年 03月 (7)
  • 2017年 02月 (10)
  • 2017年 01月 (6)
  • 2016年 12月 (8)
  • 2016年 11月 (8)
  • 2016年 10月 (5)
  • 2016年 09月 (5)
  • 2016年 08月 (7)
  • 2016年 07月 (9)
  • 2016年 06月 (6)
  • 2016年 05月 (8)
  • 2016年 04月 (10)
  • 2016年 03月 (10)
  • 2016年 02月 (8)
  • 2016年 01月 (9)
  • 2015年 12月 (9)
  • 2015年 11月 (6)
  • 2015年 10月 (5)
  • 2015年 09月 (4)
  • 2015年 08月 (8)
  • 2015年 07月 (5)
  • 2015年 06月 (3)
  • 2015年 05月 (7)
  • 2015年 04月 (8)
  • 2015年 03月 (12)
  • 2015年 02月 (8)
  • 2015年 01月 (4)
  • 2014年 12月 (5)
  • 2014年 11月 (5)
  • 2014年 10月 (7)
  • 2014年 09月 (4)
  • 2014年 08月 (7)
  • 2014年 07月 (6)
  • 2014年 06月 (4)
  • 2014年 05月 (12)
  • 2014年 04月 (9)
  • 2014年 03月 (6)
  • 2014年 02月 (6)
  • 2014年 01月 (8)
  • 2013年 12月 (7)
  • 2013年 11月 (10)
  • 2013年 10月 (10)
  • 2013年 09月 (9)
  • 2013年 08月 (11)
  • 2013年 07月 (10)
  • 2013年 06月 (9)
  • 2013年 05月 (15)
  • 2013年 04月 (11)
  • 2013年 03月 (5)
  • 2013年 02月 (7)
  • 2013年 01月 (6)
  • 2012年 12月 (9)
  • 2012年 11月 (10)
  • 2012年 10月 (10)
  • 2012年 09月 (4)
  • 2012年 08月 (2)
  • 2012年 07月 (7)
  • 2012年 06月 (13)
  • 2012年 05月 (13)
  • 2012年 04月 (15)
  • 2012年 03月 (4)
  • 2012年 02月 (12)
  • 2012年 01月 (9)
  • 2011年 12月 (5)
  • 2011年 11月 (13)
  • 2011年 10月 (2)
  • 2011年 09月 (2)
  • 2011年 08月 (1)
  • 2011年 06月 (1)
  • 2011年 05月 (4)
  • 2011年 04月 (10)
  • 2011年 03月 (8)
  • 2011年 02月 (11)
  • 2011年 01月 (14)
  • 2010年 12月 (14)
  • 2010年 11月 (17)
  • 2010年 10月 (17)
  • 2010年 09月 (19)
  • 2010年 08月 (22)
  • 2010年 07月 (18)
  • 2010年 06月 (16)
  • 2010年 05月 (19)
  • 2010年 04月 (15)
  • 2010年 03月 (22)
  • 2010年 02月 (18)
  • 2010年 01月 (18)
  • 2009年 06月 (2)
  • 2009年 04月 (1)
  • 2007年 12月 (10)
  • 2007年 11月 (7)
  • 2007年 10月 (9)
  • 2007年 09月 (4)
  • 2007年 07月 (5)
  • 2007年 06月 (11)
  • 2007年 05月 (6)
  • 2007年 04月 (4)
  • + ブックマーク
    + 最近のコメント
    + アクセスカウンター
    全体(since 2010.02.03.)
    今日… 昨日…