98 lines
2.1 KiB
Typst

#import "@local/handout:0.1.0": *
#import "@preview/cetz:0.3.1"
#show: doc => handout(
doc,
quarter: link(
"https://betalupi.com/handouts",
"betalupi.com/handouts",
),
title: [Warm-Up: Big-Tac-Toe],
by: "Mark",
)
#let extra_boards = false;
#let ttt(s, p) = {
// s: scale,
// p: position
let x = p.at(0) * s
let y = p.at(1) * s
cetz.draw.line((-1 * s + x, 3 * s + y), (-1 * s + x, -3 * s + y))
cetz.draw.line((1 * s + x, 3 * s + y), (1 * s + x, -3 * s + y))
cetz.draw.line((3 * s + x, -1 * s + y), (-3 * s + x, -1 * s + y))
cetz.draw.line((3 * s + x, 1 * s + y), (-3 * s + x, 1 * s + y))
}
#let btt(s) = cetz.canvas({
import cetz.draw: *
set-style(stroke: (thickness: 0.5mm * s))
ttt(s, (-7, -7))
ttt(s, (-7, 0))
ttt(s, (-7, 7))
ttt(s, (0, -7))
ttt(s, (0, 0))
ttt(s, (0, 7))
ttt(s, (7, -7))
ttt(s, (7, 0))
ttt(s, (7, 7))
set-style(stroke: (thickness: 2mm * s))
ttt(s * 3.5, (0, 0))
})
#problem()
Consider a large tic-tac-toe grid, each cell of which contains another.
On each turn, one player puts their glyph into a cell of a small grid. When the next player goes,
they must make their move in the small grid in the same position as the previous player's move.
- The first player to move may pick any small grid to start in.
- If a player is directed to a grid that is _full_, that player may go anywhere. \
A sub-grid that is "won" but not full may still be played in.
#v(2mm)
The first player to complete a line of three "won" subgrids wins the game.
#v(2mm)
#problem()
Play a few rounds of this game with someone nearby. \
Can either player force a win?
#table(
stroke: none,
align: center,
columns: (1fr, 1fr),
btt(0.35), btt(0.35),
);
#problem()
Modify the rules of this game to disallow play in won subgrids. \
How does your strategy change? \
#if extra_boards { note([Additional boards are available on the next page.]) }
#v(1fr)
#if extra_boards {
pagebreak()
align(
center,
grid(
stroke: none,
align: center,
columns: (1fr, 1fr),
rows: (1fr, 1fr, 1fr),
btt(0.35), btt(0.35),
btt(0.35), btt(0.35),
btt(0.35), btt(0.35),
),
)
}