読者です 読者をやめる 読者になる 読者になる

うまか日記(仮)

とりあえずプログラミングを勉強しながら、その他のことにも随時書き込んでいこうと思うのである。

椅子が来た

先日ポチったボディメイクシートがやってきた。
早速、我が家の背もたれが折れた、おんぼろOAチェアに据えてみる。
本当なら、ここで写真を撮って掲載したりするのが、いいんだろうが、このOAチェアの背もたれがボキンと折れた姿というか、ほちけて糸がたれた姿というか、いかにもみずぼらしい、貧乏くさい、という感じで恥ずかしいのでやめておく。ことさら、そんな見苦しい椅子に、ボディメイクシートが乗っかっている間抜けな写真など、わざわざ見たい人などいないだろう。
 

f:id:unkumk7284:20170228222548p:image

この赤色のかわいらしい写真のタイプのものを買った。
OAチェアはみすぼらしいが、その上の座椅子はかわいらしいのである。
 
座り心地は、LOFTで現物を見たので、知っている。
座ってみるとやはり、オッ、という具合に腰を押されて姿勢が伸びる。いいではないか。
早速、これに座り、PCで作業を始めてみる。
 
しかし、問題がひとつ起きた。
試乗品(?)に座ったときには気づかなかったのだが、長時間座っていると、おしりがしびれるのである。
僕は体がかなり細いほうなのだが、それでもこの座椅子は、おしりの周りがかなりキュッと細めにできていて、ここにおしりを収めると、なかなか窮屈である。
加えて、クッション性はあまりない。おしり、腰が常にグイと押されるような感じになる。
あと、足を組んだり、正しくない姿勢で座っていると、変なところが押されてそれもよくないようだ。
 
余談だが、届いた際に母が(勝手に)座ったのだが、あまり姿勢が正される感じはなかったらしい。
母はかなり太った体系だ。したがって、体が太めな人というのは、この椅子はあまり効果が薄いのかもしれない。
プレミアム、というものは、クッション性もよくご高齢の方などによいらしいが、座ったことはないのでよく知らない。
 
ウーン、という感じだが、まあいいか。
姿勢は確かによくなるので、腰が痛くなることはないし、その点ではなかなかいい感じである。
PCをあまり長時間触るというのも、目とかにあまりよくないだろうし、おしりが痺れたら、ちょっと休憩をして、コーヒーでも飲みながら尻をもめばいいのである。
 
ということをブツブツといいながら、今回は尻が痺れたので終わり。

 

この椅子いいっすね~

ということで、腰が痛くならないように、いいっすね~な椅子を探すことにした。
 
椅子と言ってもいわゆるPCチェアと言われて、想像するような、どっかりしたものはあまりよくない。
あまり大きいと、部屋が狭いので邪魔になるし、腰が深々と沈んでしまうと、立ち上がるのも大変だ。
さっと座ってさっと立てる、動かしやすいものが良い。
 
 

 

アーロンチェア ポスチャーフィットフル装備 グラファイト/クラシック Bサイズ AE113AWBPJG1BBBK3D01

アーロンチェア ポスチャーフィットフル装備 グラファイト/クラシック Bサイズ AE113AWBPJG1BBBK3D01

 

 

 
こういうものは、すわり心地がきっといいのだろうが、大きいし、なにより高い。
あと、今賃貸のアパートに住んでいるのだが、こういった足のところのゴロゴロがついているPCチェアは、ごろごろした時にフローリングを傷つけてしまいそうな気がする。
 
こういう手合がいいような気がしたが、よく考えたら、これも腰をいたくしそうな気もする。
 
うーむどうしようかな。
ピーン、ひらめいた。
 
 
こういうものがある。
以前LOFTに行った折に見かけたのだ。
姿勢を正す、というような触れ込みだったので、健康・美容系のケッタイな流行り物かよ、ケッ!と思いはしたのだが、試しに座ってみると、オッ!という具合に背筋が強制的に伸びるのである。
は~どっこらしょ、とこいつにケツをのせると、背もたれの部分がグイ!と背中を押してきて、無理やり正しい姿勢にされ、思わずオッ!と言ってしまうのである。
これはなかなか、おもしろい。
 
値段は8000円ほどと少し高めではあるが、まあいいだろう。
こいつを今使っている
背もたれが折れた椅子の上に据え付けて、その上に座ってしまえばよい。
もっと言えば、持ち運んでほかの部屋で使うこともできるぞ。
うん、それがいいそれがいい。
 
ということで、このボディメイクシートなるものを購入することにした。
商品が届くまで、プログラミングは休憩とするのである。
 
書いていたらまた腰が痛くなって疲れたので終わり。

インベーダーゲーム その2

前回に続き、インベーダーゲームを作っていく。
 
 
前回終了時には敵の動きにバグが残っていたのだ。
1.一度だけ右に動いてから左に移動し始める
2.敵が右端まで移動しないで途中で左に反転する
 
1についてはいつの間にか直っていた。←
なぜでしょうね?不思議だけれども現象が再発しないので解明のしようがありません。
ので、これはよいこととする。
 
2についてだが、これは敵のスクリプトをクローンを作る処理をすることで処理しているところに原因がある。
 
敵は縦横に50匹いるが、これはそれぞれ、オリジナルになるスプライトを50回クローンすることで、
1つの命令で一気に動きを作れるように工夫がされている。
このとき、オリジナルにあたるスプライトは「隠す」という処理により、見かけでは消えているように見えるが、
透過されているだけで、プログラム中に存在しているのだ。
 
 

f:id:unkumk7284:20170204232210p:image

 
隠しているオリジナルのスプライトを表示させると、上図のようになる。
右にぽつんと1匹だけ離れているのが、オリジナルである。
こいつが、右端に到達した点で、反転指示がかかってしまうというわけですね。
なるほど。
 
変数を新たに作成し、初期数値を0、クローンされたタイミングで1にかえる。
こうした変数を利用することで、オリジナルとクローンを区別することで解決。
 
 
インベーダーとは侵略者、自機に向かって進行してくるものである。
ということで、反転のタイミングで自機に対して1マ進む処理を入れる。
 

f:id:unkumk7284:20170204232213p:image

 
 
すでに頭から湯気が出ているが、何とか意味が理解できた。
というわけで、今回は以下のところまで進んだ。
 
 
 
敵が下に向かってちょっと進むようになっただけじゃねーか!と思われるだろうが、そのとおりである。
 
しかし理由がある。
腰がいたいのである。
現在作業しているPCチェアには背もたれがない。
古くなって背もたれがボキンと折れてしまったチェアをケチッてそのまま使っているのである。
背もたれがないので猫背になってしまうのだが、長時間PCに向かっていると腰が痛くなってかなわない。
 
というような言い訳じみたことをぶつぶつ言いながら、
次回はPCチェアを探すところからはじめたいと思う。
 
毎回疲れたので終わりにしているが、今回も疲れたのでおわり。
 
 

インベーダーゲーム その1

正月が明けてから、仕事が始まりどたばた、としている間にすっかり時間が経ってしまった。
こんな調子ではいつまでたっても身に付きやしないぞ。いかんいかん。
といいつつ、今回も教本(↓)に従いながら、インベーダーゲームの再現を行う。
 
 
・左右のキーで自機を移動
・スペースキーでビームを発射
・発射したビームと敵が接触するとその敵が消滅
・敵は時間とともに自機に向かって進行
・敵に進行が進み、自機に接触するとゲームオーバー
 
ざっくり以上のような仕様になる。
 
先ずは、左右キーの入力で自機を操作できるようにするところから。
これは割とすんなりできた。
自機のy軸は固定にしながら、左右のキーの入力があった場合に、x軸を10ずつ変える。
これをずっと繰り返す。
いいぞいいぞ。
やればできるじゃないか、勉強した成果がでているぞ、と悦に入っていたのだが、
その次に、敵の動きを作るところが非常にムズカシイ!
以下に、製作途中のものを貼っておく
 
 
 
緑の旗をクリックするとゲームが始まる。
開始と同時に敵キャラクターがずらずらずらりと縦横に順番に出現したのち、
水平方向に移動を開始、端まで来たら反転して逆方向に移動するのだが、
これは中身としては下記のような命令になっている。
 

f:id:unkumk7284:20170129233247p:image

 
 
敵のキャラクターを50回繰り返しで表示させる。
その際、表示させる座標は、等間隔で順番に表示させるため、
Y座標は敵の数から1を引いて10で割り、小数点以下を切り下げにした数値に37を掛け、そこから30を引いた位置に、
X座標は敵の数から1を引いて10で割った余りの数に、30を掛け、そこから155を引いた位置にする処理がされている。
何を言っているのか自分でも意味不明なのだが、要するに、こうすることで、よこは37、たては30の間隔をあけて敵を並べ、1列が10匹になったら、次の列、、、という動きで50匹の敵を並べることができるらしい。
 
敵を表示させるだけで非常に苦労したのだが、さらにこれを左右に移動させるには反転指示・進行方向という変数を用いて、
0・1のフラグによってその方向を管理している。
これについては気力がなくなったので説明は割愛する。
 
見ているとわかるが、バグがあるようで挙動不審だ。
右の反転位置がおかしいのと、開始直後になぜか1度だけ右方向に動く。
なぜでしょうね。
うーむ。
 
というわけで次回はバグとりをするところから始める、、、
 
疲れたのでおわり。
 
 
 

メテオ蟹

そもそもScratchなんてコードを書いていくわけじゃないから、プログラミングとは言えないよ、ということを言われてしまうかもしれないがよいのである。
ある程度、これでプログラミングの仕方みたいなものに慣れてきたら、実際になにか言語をひとつ決めて、コードを書いていけるようにしたい。
 
 
前回に引き続き、下記を教本としてミニゲームを作っていく。
 
今回は「メテオパニック」
自機を操作して、次々と振ってくる隕石をかわす、というゲーム。
隕石と自機がぶつかるとゲームオーバーとなり、避け続けた時間がスコアになるという内容。
ルールは簡単だが、実際に作っていくと細かい部分がなかなか難しい。
 
とりあえず、出来上がったものを先に貼り付けておく
 
 
かにさんが、隕石をよけまくるゲームとなっている。
 
 
隕石が振ってくるたび、隕石の進む角度をランダムに変えるような処理をしているのだが、
これは、隕石ごとに、X軸を5ずつ変えながら進む、という命令になっている。
なるほど、これはちょっと教本を見なければわからなかっただろう。
 
ところで、ゲーム中、かにさんがはさみをかちかちと、開閉させるようなギミックを搭載したかったのだが、
「ハサミをあけた絵→0.5秒待つ→ハサミを閉じた絵」をずっと繰り返す
という命令を入れたところ、
左右の操作も0.5秒とまってしまうのだ。
これでは隕石をよけられない。
 
しばらくいろいろといじっていい感じにできないかと試行錯誤したのだが、うーん、よくわからない。
ので、ハサミの開閉に待ち時間をつくらないようにしました。
怒涛の勢いでハサミをかちかちさせてしまっている。
 
なにか正しいやり方を思いついたら、そのうち直そう(適当)
 
疲れたのでおわり。

プログラミングをはじめます。

プログラミングが勉強したいと漠然と思い立ったので、プログラミングを勉強することにした(適当)
 
 

 

みるみるプログラミングがわかる本 第4版
 

 

 
↑を読みつつ、プログラミングというものについての理解を深める。
 
なるほど、Scratchというものが、子供向けのプログラミング教育用に用意されているらしい。
早速Scratchの勉強を始める。
 
参考にしたURLはこちら。
 
ということで出来上がったものを以下に張り付ける。
 
 
 
これだけでもずいぶんと頭を使う・・・
プログラミングとは考えながらやらないとできないものらしい。
疲れたので今日はここまで。