Python 9-3

こんにちは!

ドライブでリフレッシュ。

ブロックを落下させるアルゴリズム

ブロック落下の処理を組み込みます。

list0905_1.py
Image from Gyazo
Image from Gyazo

Image from Gyazo

drop_neko()関数で落下処理を行っています。
yの値を下から処理を行わなければ、ネコが一気に下まで落下してしまいます。

次回からは今までの内容をまとめていきます。

ではでは。

Python 9-1

こんにちは!!

東北勢初、おめでとう!!

ゲームの仕様を考える

落ちモノゲームを考えていきます。
まずアルゴリズムとは、コンピュータなどで問題を解く手順を具現化したものです。
今回は「ブロックを落下させるアルゴリズム」と「ブロックが揃ったことを判定するアルゴリズム」が必要です。

マウス入力を組み込む

マウス入力もbind()命令を使用します。

list0902_1.py
Image from Gyazo
Image from Gyazo

Image from Gyazo

7~18行目でマウスポインタの動きを表した関数です。
mouse_cのようにクリックした時に値を1に、離した時に値を0に、このような変数の使い方をフラグといいます。
また、22行目のformat()命令は文字列の波括弧を変数の値に書き換えるものです。

ゲーム用のカーソルの表示

次に座標を用いてフィールドとカーソルを作成します。

list0903_1.py
Image from Gyazo
Image from Gyazo

Image from Gyazo

16,17行目でマウスポインタの座標値からカーソルのマス目上の位置を計算しています。
余白の24ドットを引き算し計算しています。
19行目の計算は、1マスのサイズが72ドットであることを考慮して計算しています。
60ドットの足し算は、余白の24ドットと72ドットの半分の36ドットからきています。

ひとまず、フィールドとカーソルの設定は完成です。

ではでは。

Ruby 7-1-1

こんにちは!

鎌倉殿、毎週面白い。

正規表現

正規表現とは、「あいまいな文字列パターンを表現するための記法」です。
基本的な例をまず2つ確認します。

  • [0-9]{3}-[0-9]{4}
    一般的な郵便番号を表します。
    「0~9の数値3桁」+「-」+「0~9の数値4桁」です。

  • http(s)?://([\w-]+.)+[\w-]+(/[\w ./?%&=-])?
    URLを表す正規表現パターンです。
    「(s)?」は「s」が0~1回登場することを意味します。
    「([\w-]+.)+[\w-]+」は、英数字やアンダースコア、ハイフンで構成され途中にピリオドを含みます。
    そして「(/[\w ./?%&=-]
    )?」で後続の文字列が英数字などに加えその他の記号を含む文字列で構成されることを表しています。

正規表現のパターンはたくさんありますので、しっかり確認しておく必要があります。

ではでは。

Python おまけ2

こんにちは!

ガンバで心が荒み、アーセナルに心洗われる、そんな土曜日。

デジタルフォトフレームを作る

番外編、デジタルフォトフレームです。

omake_2.py
Image from Gyazo

Image from Gyazo

リアルタイム処理を用いて、デジタルフォトフレームを作成しました。
9行目のlen()命令は要素の数を知るために必要です。

ではでは。

Ruby 6-4

こんにちは!

しばらくガチャ禁。

Enumerator

Enumerableモジュールの話です。
「列挙のための機能を個々のクラスでていぎしなくてもよい」
「同一の機能を同名のメソッドで提供できる」などのメリットがあります。

enum_basic.rb
Image from Gyazo

Image from Gyazo

文字列msgの各行をチェックしています。

ensum_lazy.rb
Image from Gyazo

Image from Gyazo

lazyメソッドは遅延評価とと言われています。
1行目では処理されず、forceメソッドが呼び出されたところで処理が実行されます。

enum_iterator.rb
Image from Gyazo

Image from Gyazo

eachメソッドのように、ブロックの指示に従って処理を繰り返すものを内部イテレータと言います。
対して、Enumeratorは外部イテレータと言います。
配列から要素を2個取り出すなど、内部イテレーターでは表現しにくい場合に使用します。

少しややこしいですが、使いながら慣れていく必要がありますね。

ではでは。

Python おまけ1

こんにちは!

近畿勢は残り1校!

キャンバスに図形を表示する

今回はおまけとしてキャンバスに図形を壁画する方法を確認します。

omake_1.py
Image from Gyazo

Image from Gyazo

7行目はテキストの入力です。
8,9行目は線を引いています。x1,y1,x2,y2,..のように座標を指定しています。smooth=Trueで曲線になります。
10,11行目は矩形です。最初のx1,y1で左上の点の座標、次のx2,y2で右下の点の座標を指定しています。
12,13行目は楕円です。楕円に外接する矩形の左上と右下の座標を指定しています。400-50などとして中心までの距離をわかりやすくしています。
14行目は多角形です。複数の点を指定可能です。
15~17行目は円弧です。startで始まりの角度、extentで終わりの角度を指定しています。styleを指定して弧のみを表したり、弧と弦の間を表したりできます。

ざっとまとめてみました。
色々と数字を変えてみると楽しそうですね。

ではでは。