「Diary」カテゴリーアーカイブ

基礎を押さえていないと深みにハマる

先日、クッキークリッカーというゲームをやっていたら、昔やっていたとあるCGIゲームを思い出し、プログラムで自動化できないものかユーザースクリプトを組んでみた。

CookieClicker

一定時間後にフォームに情報を入力してsubmitしていくだけの単純なゲームだが、javascriptを勉強していないので「DOMって何?」状態から手探りで長時間かけて組んだ。

まずハマったのがsetTimeoutの使い方。文法は、setTimeout(関数名,時間)で関数名にはクォーテーションで囲むんだそう。ブラウザのコンソールでプログラムを動かしてみると問題なく動くのだが、ユーザースクリプトを読み込ませて組んでみるとエラーが・・・クォーテーションをつけないで読み込ませてみるとなぜかあっさり動いた。なぜ?いまだにわからない。とりあえず動いたので結果オーライで次に進んだ

そして、次にハマったのが、空欄のテキストボックスに文字を入力して送信する方法。ただvalueに情報を入れればいいのだとgetElementsByTagNameでテキストボックスを取得しvalueに情報を代入した。しかし、valueに情報は入るもテキストボックスに値が表示されていない。とりあえずマウスの動作を真似しようとマウスを動かして考えてみた。気づいたのは、まずテキストボックスを選択しているということ。そこで、selectでテキストボックスを選択状態にしてからvalueに値を代入すると見事に表示された。仕組みはよくわからないが、value値が空欄の時はまず選択してからでないとダメなよう・・・ちなみに、あらかじめvalueに値があれば選択状態にしなくても代入できた。

基礎を抑えていないと簡単なことに何時間もハマってしまうんだなぁと痛感。しかも、ユーザースクリプトについての情報はググっても中々辿りづらい。当然だが、サイト制作者側の観点に立った情報がほとんどだ。だからなおさら基礎を抑えていないとどんどん深みにハマってく。

例えるとRPGで正規ルートから外れて強敵ばっかりいるところに行ってしまった感じ。しかも簡単に戻れない・・・ダークソウルだといきなり巨人墓場に行ってしまった感じ・・・

しかし今回の経験である程度DOMについての概観がわかった。formの操作も若干ではあるができるようになって、「javascript面白い!」と思えるようになった。今はPHPとMySQLの勉強をしているので、一段落ついてからjavascriptを勉強する予定。基礎を抑えないとハマるけど、少し弄ってから基礎を勉強した方が理解も早いかもしれない。

とりあえず今回初めてスクリプトを書いてみたけど、そのきっかけとなったクッキークリッカーに感謝したい。

ありがとうグランドマ!!

PHPとMySQLを勉強中

今は「よくわかるPHPの教科書」という本でPHPとMySQLを勉強中。
全くのプログラム初心者なので、とりあえず「PHPとMySQLでどんなことができるのか」考えながら読んでいる。
ただ、実際にコードを書きながら読んでるわけではないので、覚えは悪い・・・

PHPとMySQLの部分は読み終えて、これから「実用的なプログラムの制作」という部分を読みながら実際にコードを書いていく予定。
とりあえず一人で掲示板を一から制作できるようになりたい。