From a9c30f6236af36f6c428b0b10dd4d48a21c70733 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Sun, 14 Aug 2022 15:36:59 +0200 Subject: Implement left and right movements --- src/game.zig | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/game.zig') diff --git a/src/game.zig b/src/game.zig index fc64001..97c2c80 100644 --- a/src/game.zig +++ b/src/game.zig @@ -6,17 +6,28 @@ const playfield = @import("playfield.zig"); pub const Game = struct { brothers: [2]brothers.Brother = undefined, - character: ?brothers.Side = undefined, + side: brothers.Side = undefined, pub fn draw(self: Game, rc: *spoon.Term.RenderContext) !void { try playfield.draw(rc); try self.brothers[0].draw(rc); try self.brothers[1].draw(rc); } - pub fn reset(self: *Game) void { + pub fn moveLeft(self: *Game) void { + self.brothers[@enumToInt(self.side)].moveLeft(); + } + pub fn moveRight(self: *Game) void { + self.brothers[@enumToInt(self.side)].moveRight(); + } + pub fn reset(self: *Game, side: brothers.Side) void { + self.side = side; self.resetRound(); } pub fn resetRound(self: *Game) void { self.brothers[0].reset(brothers.Side.left); self.brothers[1].reset(brothers.Side.right); } + pub fn step(self: *Game) void { + self.brothers[0].step(); + self.brothers[1].step(); + } }; -- cgit v1.2.3