mirror of
https://github.com/jetzig-framework/jetzig.git
synced 2025-05-14 22:16:08 +00:00
WIP
This commit is contained in:
parent
74bb659528
commit
e647b0057a
@ -1,3 +0,0 @@
|
|||||||
<div>
|
|
||||||
<span>Content goes here</span>
|
|
||||||
</div>
|
|
@ -11,13 +11,17 @@ pub fn index(request: *jetzig.Request) !jetzig.View {
|
|||||||
|
|
||||||
pub const Channel = struct {
|
pub const Channel = struct {
|
||||||
pub fn open(channel: jetzig.channels.Channel) !void {
|
pub fn open(channel: jetzig.channels.Channel) !void {
|
||||||
if (channel.get("cells") == null) try initGame(channel);
|
var state = try channel.connect("game");
|
||||||
|
if (state.get("cells") == null) try initGame(channel);
|
||||||
try channel.sync();
|
try channel.sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const Actions = struct {
|
pub const Actions = struct {
|
||||||
pub fn move(channel: jetzig.channels.Channel, cell: usize) !void {
|
pub fn move(channel: jetzig.channels.Channel, cell: usize) !void {
|
||||||
const cells = channel.getT(.array, "cells") orelse return;
|
var state = try channel.connect("game");
|
||||||
|
const cells = state.getT(.array, "cells") orelse {
|
||||||
|
return;
|
||||||
|
};
|
||||||
const grid = Game.gridFromValues(cells.items());
|
const grid = Game.gridFromValues(cells.items());
|
||||||
var game = Game{ .grid = grid };
|
var game = Game{ .grid = grid };
|
||||||
game.evaluate();
|
game.evaluate();
|
||||||
@ -38,13 +42,15 @@ pub const Channel = struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
fn resetGame(channel: jetzig.channels.Channel) !void {
|
fn resetGame(channel: jetzig.channels.Channel) !void {
|
||||||
try channel.put("victor", null);
|
var state = try channel.connect("game");
|
||||||
var cells = try channel.put("cells", .array);
|
try state.put("victor", null);
|
||||||
|
var cells = try state.put("cells", .array);
|
||||||
for (0..9) |_| try cells.append(null);
|
for (0..9) |_| try cells.append(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn initGame(channel: jetzig.channels.Channel) !void {
|
fn initGame(channel: jetzig.channels.Channel) !void {
|
||||||
var results = try channel.put("results", .object);
|
var state = try channel.connect("game");
|
||||||
|
var results = try state.put("results", .object);
|
||||||
try results.put("cpu", 0);
|
try results.put("cpu", 0);
|
||||||
try results.put("player", 0);
|
try results.put("player", 0);
|
||||||
try results.put("tie", 0);
|
try results.put("tie", 0);
|
||||||
@ -68,8 +74,9 @@ pub const Channel = struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn setVictor(channel: jetzig.channels.Channel, victor: Game.State) !void {
|
fn setVictor(channel: jetzig.channels.Channel, victor: Game.State) !void {
|
||||||
try channel.put("victor", @tagName(victor));
|
var state = try channel.connect("game");
|
||||||
var results = channel.getT(.object, "results") orelse return;
|
try state.put("victor", @tagName(victor));
|
||||||
|
var results = state.getT(.object, "results") orelse return;
|
||||||
const count = results.getT(.integer, @tagName(victor)) orelse return;
|
const count = results.getT(.integer, @tagName(victor)) orelse return;
|
||||||
try results.put(@tagName(victor), count + 1);
|
try results.put(@tagName(victor), count + 1);
|
||||||
try channel.invoke(.victor, .{ .type = @tagName(victor) });
|
try channel.invoke(.victor, .{ .type = @tagName(victor) });
|
||||||
|
Loading…
x
Reference in New Issue
Block a user