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

Hello Holiday

ようこそ休日。プログラミング初心者の進捗報告ブログ。使用言語はJava, C, Pythonなど。ゲーム制作や機械学習に興味があります。

Javaの「テトリス」プログラムを理解する

java

素人がJavaテトリスに挑戦する

エルジェイリュージョン!(ぷよテト感)


おそらく超有名であろう、某javaテトリスを作るサイトを参考にします。

多分「javaゲーム」とかでググれば出るはず。


javaの基礎が一通り分かってる人なら
ほぼ理解できるレベルのプログラムで記述されているので、初心者にもおすすめ。


swingとか使いながら、初心者を名乗っていいのかどうかは知りません。

目標

・サンプルプログラムの理解
・コピペ禁止(手打ち)
・期間は2日間(18/19)

進捗状況

内容

題名の通りテトリスを作ります。

f:id:regurusu7777:20170319202633j:plain

下の床もしくはブロックに着地したブロックは、壁と同じ扱いになります。
というより、その位置を壁にしてます。
色が灰色に変色しているのはそのせいですね。

実際作ったやつは実際のテトリスサイズです。(これはサンプル)


実装している内容は、列の削除等、最低限のみで、ゲームオーバー処理はまだできてません。この状態からImageファイルを読み込んでカラフルなテトリスにしようとしたんですが、思いっきりバグリました。あうあうあー。


f:id:regurusu7777:20170319203334j:plain
あうあうあー


コマンドプロンプトがひたすらUnknownSourseを繰り返しているので、間違いなくImageファイルに関する何かが良くないのでしょう。ImageIconとか全然わかんないんだよお。


今回はもうタイムリミットですね。残念。
ブログの投稿予定日は出来るだけ守ろうと思います。

このエラーの解決と、テトリスプログラムの機能追加が次回の目標になりそうです。

↓drawImage()
https://docs.oracle.com/javase/jp/8/docs/api/java/awt/Graphics.html#drawImage-java.awt.Image-int-int-int-int-int-int-int-int-java.awt.image.ImageObserver-

評価

目標が甘かった。
足りない知識を考慮して、もう少し期間を延ばすべきだったかもしれません。

特に先ほどから言っているImageに関するプログラムは、登場するたびにGoogle先生に相談しつつ、API見つつを繰り返していたので、時間が取られました。敗因は知識不足といったところでしょうか。

達成度確認

・サンプルプログラムの理解 △
・コピペ禁止(手打ち) 〇
・期間は2日間(18/19) ✕

次回に向けて

ブログ投稿予定

気が向いたら

次回目標

・エラー解消
・Imageファイルを用いたテトリス
・ゲームオーバーの追加
・スコア機能追加
・その他微修正


微修正の内容は、ブロック着地時のスリープです。
ここまでのプログラムは落下と着地が同時のために、空いたスペースにはめ込む(何て言うんだろう)ことができなかったので、それを修正したいと思います。まあ、着地判定の時にスリープかけときゃいいんじゃない程度に考えてるだけですが。

雑談

こんな感じでブログやっていきますので、改めて宜しくお願いします。

ところで最近よくPCが固まります。まだ3年目なんですけど…。
特にタスクバーが動かなくなるので、再起動もかけられなくなります。

そんな時はコマンドプロンプト

shutdown -rと打ち込むだけでOK。
Windows

PCに慣れてない人はコマンドプロンプトを開いたことすら無いかもしれませんが、覚えておくと意外な場面で便利です。

息抜きはおわり。技術ブログやります。

f:id:regurusu7777:20170316010621j:plain

逃げちゃ駄目だ逃げちゃ駄目だ逃げちゃ駄…

技術ブログやります。やらなければなりません。自分のために。

ゲームブログを立ち上げたのは単なる息抜きです。3記事書いて楽しかったので満足しました。そろそろ本気出します。

 

技術ブログを最初から立ち上げてもいいのですが、スタイルとか書き直すのがめんどくさいのでここをそのまま流用します。過去記事はほぼ無いので近いうちに削除します。この記事も含め。

残しました。 

 

少ない記事でも読んでくださった方々、本当にありがとうございました。仮に記事の内容(文章、写真など)で必要なものがあれば、どうぞ削除前に保存してくださいまし。ご自由に。

削除済みです。

現在の記事の内容(文章、写真等)はすべて保存しないでください。(2017/03/29)

 

現在考えているブログは、2分割して進捗報告するブログ。

もっと詳しく言うと、一週間を平日と休日に分け、それぞれで行った技術に関することを報告するブログです。つまり週2投稿(金曜、日曜)ですね。本当は毎秒投稿したいところなんですが、最近腰の調子が良くないのでこの程度の更新頻度にします。中身の無いスカスカな記事を量産するのもアレですし。

毎回投稿予定日を決める方針にしました。

 

テーマは自由にしますか。どうせ4月になれば学ぶ必要のある範囲がぐっと広がりますし、「今週やった内容はブログのテーマと合わないよぉ(´;ω;`)」みたいなことも避けたいので。

 

内容は考え中ですが、おそらく

1.進捗報告

2.学んだことorわからないこと

この2つを書くことが主になるでしょう。入門記事とかはプログラミング素人の私には到底書けません(内容が無いよう)。

 

ま、そんな感じで。

 

これからもよろしくお願いします。

 

次の更新は3/19(日)で、今日から当日までの進捗報告になる予定です。

投稿しました。