46 lines
1.4 KiB
Zig
46 lines
1.4 KiB
Zig
const std = @import("std");
|
|
const Io = std.Io;
|
|
|
|
const grome = @import("grome");
|
|
|
|
pub fn main(init: std.process.Init) !void {
|
|
// This is appropriate for anything that lives as long as the process.
|
|
const arena: std.mem.Allocator = init.arena.allocator();
|
|
|
|
// Initialize the stdout writer
|
|
var stdout_buffer: [1024]u8 = undefined;
|
|
var stdout_file_writer: Io.File.Writer = .init(.stdout(), init.io, &stdout_buffer);
|
|
const stdout_writer = &stdout_file_writer.interface;
|
|
|
|
// alright lets play with the matrix
|
|
const width = 50;
|
|
const height = 50;
|
|
var matrix = try grome.Matrix(u8, width, height).init(arena, ' ');
|
|
var iter = matrix.row_iterator();
|
|
|
|
const density = (width * height) / 100;
|
|
for (0..density) |_| {
|
|
var buf: [3]u8 = undefined;
|
|
init.io.random(&buf);
|
|
matrix.set(@intCast(buf[0] % width), @intCast(buf[1] % height), @intCast((buf[2] % 50) + 93));
|
|
}
|
|
|
|
_ = try stdout_writer.write(" ┌─");
|
|
for (0..width) |_| {
|
|
_ = try stdout_writer.write("─");
|
|
}
|
|
_ = try stdout_writer.write("─┐ \n");
|
|
|
|
while (iter.next()) |row| {
|
|
_ = try stdout_writer.print(" │ {s} │ \n", .{row});
|
|
}
|
|
|
|
_ = try stdout_writer.write(" └─");
|
|
for (0..width) |_| {
|
|
_ = try stdout_writer.write("─");
|
|
}
|
|
_ = try stdout_writer.write("─┘ \n");
|
|
|
|
try stdout_writer.flush();
|
|
}
|