blob: ddd0b626a3c754b4e3aca10ddfb691696a996edf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
const std = @import("std");
const spoon = @import("spoon");
const brothers = @import("brothers.zig");
const playfield = @import("playfield.zig");
pub const Game = struct {
brothers: [2]brothers.Brother = 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 moveJump(self: *Game) void {
self.brothers[@enumToInt(self.side)].moveJump();
}
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();
}
};
|