game.zig
const io = @import("io.zig");
const Snake = @import("snake.zig");
const Fruit = @import("fruit.zig");
pub const init = io.init;
>>>>>>>var snake: Snake = undefined;
var fruit: Fruit = undefined;
<<<<<<<pub fn main() void {
>>>>>>> snake = Snake.init(.{ .pos = 0o40, .dir = 2 });
<<<<<<< fruit.seed(io.seed());
newfruit().?;
while (true) {
>>>>>>> io.print(snake.head.pos, "<^>V"[snake.head.dir]);
<<<<<<< io.sleep();
>>>>>>> const newdir = io.scandir(snake.head.dir);
io.print(snake.head.pos, " lqml kxqk jmxj"[4 * @as(u4, newdir) + snake.head.dir]);
<<<<<<<
>>>>>>> snake.pushdir(newdir);
snake.head.move() orelse break;
if (snake.head.pos != fruit.pos) {
snake.popdir();
<<<<<<<
//collision
>>>>>>> if (snake.collide())
<<<<<<< break;
//if (tail.index() != index(head))
>>>>>>> io.print(snake.tail.pos, ' ');
snake.tail.move() orelse unreachable;
<<<<<<< } else newfruit() orelse break;
}
}
fn newfruit() ?void {
>>>>>>> fruit.newfruit(snake.empty()) orelse return null;
<<<<<<< io.print(fruit.pos, '*');
}