凄い初歩的な質問なんですが

今勉強がてらブロック崩しを作成しています。
だいたいは問題なく出来たのですが、
「ブロックにあたったボールの反射」がどうも上手くいきません。

同じブロックに衝突しても何処にぶつかったか&衝突角度
で反射角度を変えたいのですが、、

・ブロックの何処にあたったかの判定
・反射角度の計算

の方法がよくわかりません。

ブロックはblock[x][y]のように配列でもっていて
角度は0〜15の360度を16分割した角度を使用しています