# How Many Triangles Do You See?

In the last month I came across a few posts in facebook asking to count different triangles in a bigger triangle like this one.

After a few attempts counting on screen while pointing with my finger on the display or drawing the triangles on paper and trying to highlight the ones I’ve already counted I realised that it takes me way too long and is kind of boring. Thinking about it a bit I decided try and solve it with a small ruby programm.

## Idea

My basic idea was to model the triangle puzzle as a set of lines and intersection points. By detecting common intersection points for each set of three lines I then can see if they form a triangle or not.

### Architecture

There are **points** and **lines** and **puzzles**. Lines can have many points. A puzzle has multiple lines. The **Puzzle** class also handles all the calculations.

### Steps

- Divide the puzzle into line triples
- Check if line triple makes a trianlge
- Count total triangles

### Implementation

**Point** and **Line** classes describe the basic structures. The whole magic then happens in the **Puzzle** class.

## What’s next

For now I will concentrate on writing tests and making small refactorings to the code base.

I’m wondering how would you approach such problem…