From 0beb06af2fff60fef8139f2ecc4f20f3c8b8a0da Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 23 Jan 2025 20:17:06 -0800 Subject: [PATCH] Convert "Big-Tac-Toe" to typst --- src/Warm-Ups/Big-Tac-Toe/main.tex | 187 ------------------------------ src/Warm-Ups/Big-Tac-Toe/main.typ | 97 ++++++++++++++++ 2 files changed, 97 insertions(+), 187 deletions(-) delete mode 100755 src/Warm-Ups/Big-Tac-Toe/main.tex create mode 100644 src/Warm-Ups/Big-Tac-Toe/main.typ diff --git a/src/Warm-Ups/Big-Tac-Toe/main.tex b/src/Warm-Ups/Big-Tac-Toe/main.tex deleted file mode 100755 index 8f735f5..0000000 --- a/src/Warm-Ups/Big-Tac-Toe/main.tex +++ /dev/null @@ -1,187 +0,0 @@ -\documentclass[ - solutions, - hidewarning, - singlenumbering, - nopagenumber -]{../../../lib/tex/ormc_handout} -\usepackage{../../../lib/tex/macros} - -% x,y,scale,style -\def\ttt#1#2#3#4{ - \draw[#4] (#1, #2+#3) -- (#1+#3+#3+#3, #2+#3); - \draw[#4] (#1, #2+#3+#3) -- (#1+#3+#3+#3, #2+#3+#3); - \draw[#4] (#1+#3, #2) -- (#1+#3, #2+#3+#3+#3); - \draw[#4] (#1+#3+#3, #2) -- (#1+#3+#3, #2+#3+#3+#3); -} - - -\geometry{ - paper = letterpaper, - top = 25mm, - bottom = 30mm, - left = 20mm, - right = 20mm, - headheight = 75mm, - footskip = 15mm -} - - -% misere ttt - -% Numerical Tic Tac Toe is a variation invented by the mathematician Ronald Graham. -% The numbers 1 to 9 are used in this game. The first player plays with the odd numbers, -% the second player plays with the even numbers. All numbers can be used only once. -% The player who puts down 15 points in a line wins (sum of 3 numbers). -% This game can be generalized to a n × n board. - - -% In Treblecross, both players play with the same symbol. -% The game is played on a 1-by-n board with k equal to 3. -% The player who makes a three in a row of Xs (or black chips) wins the game - -\title{Warm-Up: Big-Tac-Toe} -\uptitler{\smallurl{}} -\subtitle{Prepared by Mark on \today.} - -\begin{document} - - \maketitle - - - - We have 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. - \begin{itemize} - \item The first player to move may pick any small grid to start in. - \item If a player is directed to a grid that is \textit{full}, that player may go anywhere. \par - A sub-grid that is \say{won} but not full may still be played in. - \end{itemize} - - \vspace{2mm} - - The first player to complete a line of three \say{won} subgrids wins the game. - - \vfill\null\hfill - \begin{minipage}{0.48\textwidth} - \begin{center} - \begin{tikzpicture}[scale=0.65] - \ttt{0}{0}{4}{line width=0.5mm} - \ttt{0.5}{0.5}{1}{line width=0.25mm} - \ttt{0.5}{4.5}{1}{line width=0.25mm} - \ttt{0.5}{8.5}{1}{line width=0.25mm} - \ttt{4.5}{0.5}{1}{line width=0.25mm} - \ttt{4.5}{4.5}{1}{line width=0.25mm} - \ttt{4.5}{8.5}{1}{line width=0.25mm} - \ttt{8.5}{0.5}{1}{line width=0.25mm} - \ttt{8.5}{4.5}{1}{line width=0.25mm} - \ttt{8.5}{8.5}{1}{line width=0.25mm} - \end{tikzpicture} - \end{center} - \end{minipage} - \hfill - \begin{minipage}{0.48\textwidth} - \begin{center} - \begin{tikzpicture}[scale=0.65] - \ttt{0}{0}{4}{line width=0.5mm} - \ttt{0.5}{0.5}{1}{line width=0.25mm} - \ttt{0.5}{4.5}{1}{line width=0.25mm} - \ttt{0.5}{8.5}{1}{line width=0.25mm} - \ttt{4.5}{0.5}{1}{line width=0.25mm} - \ttt{4.5}{4.5}{1}{line width=0.25mm} - \ttt{4.5}{8.5}{1}{line width=0.25mm} - \ttt{8.5}{0.5}{1}{line width=0.25mm} - \ttt{8.5}{4.5}{1}{line width=0.25mm} - \ttt{8.5}{8.5}{1}{line width=0.25mm} - \end{tikzpicture} - \end{center} - \end{minipage} - \hfill\null\vfill - - \problem{} - Play a few rounds of this game with someone nearby. \par - Can either player force a win? - - \vfill - - \problem{} - Modify the rules of this game to disallow play in won subgrids. \par - How does your strategy change? - - \vfill - \pagebreak - - - \null\vfill\null\hfill - \begin{minipage}{0.48\textwidth} - \begin{center} - \begin{tikzpicture}[scale=0.65] - \ttt{0}{0}{4}{line width=0.5mm} - \ttt{0.5}{0.5}{1}{line width=0.25mm} - \ttt{0.5}{4.5}{1}{line width=0.25mm} - \ttt{0.5}{8.5}{1}{line width=0.25mm} - \ttt{4.5}{0.5}{1}{line width=0.25mm} - \ttt{4.5}{4.5}{1}{line width=0.25mm} - \ttt{4.5}{8.5}{1}{line width=0.25mm} - \ttt{8.5}{0.5}{1}{line width=0.25mm} - \ttt{8.5}{4.5}{1}{line width=0.25mm} - \ttt{8.5}{8.5}{1}{line width=0.25mm} - \end{tikzpicture} - \end{center} - \end{minipage} - \hfill - \begin{minipage}{0.48\textwidth} - \begin{center} - \begin{tikzpicture}[scale=0.65] - \ttt{0}{0}{4}{line width=0.5mm} - \ttt{0.5}{0.5}{1}{line width=0.25mm} - \ttt{0.5}{4.5}{1}{line width=0.25mm} - \ttt{0.5}{8.5}{1}{line width=0.25mm} - \ttt{4.5}{0.5}{1}{line width=0.25mm} - \ttt{4.5}{4.5}{1}{line width=0.25mm} - \ttt{4.5}{8.5}{1}{line width=0.25mm} - \ttt{8.5}{0.5}{1}{line width=0.25mm} - \ttt{8.5}{4.5}{1}{line width=0.25mm} - \ttt{8.5}{8.5}{1}{line width=0.25mm} - \end{tikzpicture} - \end{center} - \end{minipage} - \hfill\null\vfill - - \vfill\null\hfill - \begin{minipage}{0.48\textwidth} - \begin{center} - \begin{tikzpicture}[scale=0.65] - \ttt{0}{0}{4}{line width=0.5mm} - \ttt{0.5}{0.5}{1}{line width=0.25mm} - \ttt{0.5}{4.5}{1}{line width=0.25mm} - \ttt{0.5}{8.5}{1}{line width=0.25mm} - \ttt{4.5}{0.5}{1}{line width=0.25mm} - \ttt{4.5}{4.5}{1}{line width=0.25mm} - \ttt{4.5}{8.5}{1}{line width=0.25mm} - \ttt{8.5}{0.5}{1}{line width=0.25mm} - \ttt{8.5}{4.5}{1}{line width=0.25mm} - \ttt{8.5}{8.5}{1}{line width=0.25mm} - \end{tikzpicture} - \end{center} - \end{minipage} - \hfill - \begin{minipage}{0.48\textwidth} - \begin{center} - \begin{tikzpicture}[scale=0.65] - \ttt{0}{0}{4}{line width=0.5mm} - \ttt{0.5}{0.5}{1}{line width=0.25mm} - \ttt{0.5}{4.5}{1}{line width=0.25mm} - \ttt{0.5}{8.5}{1}{line width=0.25mm} - \ttt{4.5}{0.5}{1}{line width=0.25mm} - \ttt{4.5}{4.5}{1}{line width=0.25mm} - \ttt{4.5}{8.5}{1}{line width=0.25mm} - \ttt{8.5}{0.5}{1}{line width=0.25mm} - \ttt{8.5}{4.5}{1}{line width=0.25mm} - \ttt{8.5}{8.5}{1}{line width=0.25mm} - \end{tikzpicture} - \end{center} - \end{minipage} - \hfill\null\vfill - -\end{document} \ No newline at end of file diff --git a/src/Warm-Ups/Big-Tac-Toe/main.typ b/src/Warm-Ups/Big-Tac-Toe/main.typ new file mode 100644 index 0000000..3199cc6 --- /dev/null +++ b/src/Warm-Ups/Big-Tac-Toe/main.typ @@ -0,0 +1,97 @@ +#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), + ), + ) +}