Integer Diamond Drawer

Draws the classic ASCII diamond shape, a size-by-size grid that widens by two cells per row down to the middle row and then narrows symmetrically back down, filled with consecutive integers (0, 1, 2, ...) in row-major order instead of a fixed character, with blank cells centered and space-padded so every row aligns. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-27

Overview

Introduction

This tool draws the classic ASCII diamond shape, familiar from beginner programming exercises, but filled with a consecutive counting sequence of integers instead of a fixed character like '*'.

Pick an odd size from 3 to 25, and it builds a symmetric diamond that widens to the full width at the middle row and narrows back down, numbering the filled cells as it goes.

What Is Integer Diamond Drawer?

An ASCII-art generator for the standard diamond shape: a size-by-size grid whose row widths follow 1, 3, 5, ..., size, ..., 5, 3, 1, centered with blank padding on each side.

Instead of printing a fixed character in every filled cell, this tool numbers them consecutively (0, 1, 2, ...) in row-major order, so the diamond doubles as a small counting exercise.

How Integer Diamond Drawer Works

For a given odd size, the middle row index is (size - 1) / 2, and each row's fill count follows the standard widen-then-narrow formula: 2 times the row's distance from the middle, subtracted from the size.

Each row is centered by adding equal blank padding on both sides, so every row, filled and blank cells combined, is exactly `size` cells wide.

The grid is scanned row by row, and every filled cell in that scan order receives the next consecutive integer; every cell (filled or blank) is padded to the width of the largest index used, so columns stay aligned.

When To Use Integer Diamond Drawer

Use it for decorative ASCII art or a fun numbered variation on the classic diamond-printing exercise.

It's also a clear illustration of how a widen-then-narrow row formula builds a symmetric shape, useful for teaching basic nested-loop ASCII art concepts.

Features

Advantages

  • Deterministic: the same size always produces the exact same numbered diamond.
  • Always perfectly symmetric, both left-to-right and top-to-bottom, since the fill-count formula guarantees it.
  • Consistent column alignment regardless of how many digits the diamond's largest number needs.

Limitations

  • Only accepts odd sizes from 3 to 25; even sizes are rejected since a diamond needs a single centered middle row.
  • Purely decorative ASCII art; the numbering is just a row-major counting sequence, not a mathematically meaningful labeling.
  • Requires a monospace font/context to display the grid's columns aligned correctly.

Examples

A size-7 numbered diamond

Input

7

Output

 .  .  .  0  .  .  .
 .  .  1  2  3  .  .
 .  4  5  6  7  8  .
 9 10 11 12 13 14 15
 . 16 17 18 19 20  .
 .  . 21 22 23  .  .
 .  .  . 24  .  .  .

The diamond widens from 1 filled cell at the top to a full 7 at the middle row (24 total filled cells, numbered 0-24), then narrows back to 1.

An even size is rejected

Input

4

Output

Enter an odd whole number between 3 and 25.

A diamond needs a single symmetric middle row, which only an odd size provides, so size 4 returns an error instead of a grid.

Best Practices & Notes

Best Practices

  • Stick to odd sizes only; the tool will reject an even size with a clear error rather than silently rounding it.
  • View the output in a monospace font/context so the grid's columns stay visually aligned.

Developer Notes

Each row's fill count is computed with a single formula, `size - 2 * distanceFromMiddleRow`, which widens by 2 cells per row down to the middle and narrows back symmetrically by construction; blank cells use a right-aligned '.' padded to the same digit width as the highest filled index, so the whole grid's columns line up regardless of row.

Integer Diamond Drawer Use Cases

  • Decorative ASCII art for a text file, README, or comment block
  • A numbered twist on the classic diamond-printing beginner exercise
  • Teaching how a widen-then-narrow row formula builds a symmetric shape

Common Mistakes

  • Trying an even size and getting an error; only odd sizes from 3 to 25 are accepted.
  • Viewing the output in a proportional font, where the grid's columns won't visually align.
  • Assuming the numbering follows the diamond's outline; it follows plain row-major scan order instead.

Tips

  • Try the default size of 7 first to see a clearly readable diamond before scaling up to larger sizes.
  • Compare a small size (3) against a larger one (15 or 25) to see how quickly the total filled-cell count grows.

References

Frequently Asked Questions