I wonder how can I draw 256 hexagons inside a big hexagon? I want the 256 hexagons to have different colours, namely: 1 black, 8 red, 28 blue, 56 orange, 70 green, 56 yellow, 28 purple, 8 cyan, and 1 grey.
A hexagon cannot be broken into 256 smaller hexagons. It can be broken into 217 (if each edge has 9 small ones) or 271 (if each edge has 10 small ones).
Such plots are easy to make with the
IGLatticeMesh function of IGraph/M.
IGLatticeMesh["Hexagonal", Polygon@CirclePoints[9, 6]]
The result is a
MeshRegion. You can colour cells using the
MeshCellStyle option. It is unclear from your question how you want to colour them.