clone

fifteen puzzle games for the terminal, with daily puzzles, weekly ladders and xp, built on bubble tea

update takuzu+ print instructions

Dami committed f5c2359
commit
f5c235947f8b88072479f9bb70c6be53e9548077
parent
179aeca909190755f73c8c4feaa7e8077eecddfd
author
Dami <dami.etoile@gmail.com>
2 files changed, +35 -27
Mtakuzu/PrintAdapter.go54++++++++++++++++--------------
Mtakuzuplus/PrintAdapter.go8++++-
M takuzu/PrintAdapter.go +28 -26
@@ -10,6 +10,11 @@ import (
1010 1111 type printAdapter struct{}1212 13+var defaultTakuzuRules = []string{14+ "No three equal adjacent in any row or column.",15+ "Each row/column has equal 0 and 1 counts, and rows/columns are unique.",16+}17+1318 func (printAdapter) CanonicalGameType() string { return "Takuzu" }1419 func (printAdapter) Aliases() []string { return []string{"takuzu"} }1520
@@ -26,14 +31,21 @@ func (printAdapter) RenderPDFBody(pdf *fpdf.Fpdf, payload any) error {
2631 }2732 2833 func RenderTakuzuPDFBody(pdf *fpdf.Fpdf, data *pdfexport.TakuzuData) {34+ RenderTakuzuPDFBodyWithRules(pdf, data, defaultTakuzuRules)35+}36+37+func RenderTakuzuPDFBodyWithRules(pdf *fpdf.Fpdf, data *pdfexport.TakuzuData, rules []string) {2938 if data == nil || data.Size <= 0 {3039 return3140 }41+ if len(rules) == 0 {42+ rules = defaultTakuzuRules43+ }3244 3345 size := data.Size3446 pageW, pageH := pdf.GetPageSize()3547 pageNo := pdf.PageNo()36- area := pdfexport.PuzzleBoardRect(pageW, pageH, pageNo, 2)48+ area := pdfexport.PuzzleBoardRect(pageW, pageH, pageNo, len(rules))3749 cellSize := pdfexport.FitCompactCellSize(size, size, area)3850 if cellSize <= 0 {3951 return
@@ -86,32 +98,22 @@ func RenderTakuzuPDFBody(pdf *fpdf.Fpdf, data *pdfexport.TakuzuData) {
8698 pdf.SetLineWidth(pdfexport.OuterBorderLineMM)8799 pdf.Rect(startX, startY, blockW, blockH, "D")88100 89- ruleY := pdfexport.InstructionY(startY+blockH, pageH, 2)101+ ruleY := pdfexport.InstructionY(startY+blockH, pageH, len(rules))90102 pdfexport.SetInstructionStyle(pdf)91- pdf.SetXY(area.X, ruleY)92- pdf.CellFormat(93- area.W,94- pdfexport.InstructionLineHMM,95- "No three equal adjacent in any row or column.",96- "",97- 0,98- "C",99- false,100- 0,101- "",102- )103- pdf.SetXY(area.X, ruleY+pdfexport.InstructionLineHMM)104- pdf.CellFormat(105- area.W,106- pdfexport.InstructionLineHMM,107- "Each row/column has equal 0 and 1 counts, and rows/columns are unique.",108- "",109- 0,110- "C",111- false,112- 0,113- "",114- )103+ for i, rule := range rules {104+ pdf.SetXY(area.X, ruleY+float64(i)*pdfexport.InstructionLineHMM)105+ pdf.CellFormat(106+ area.W,107+ pdfexport.InstructionLineHMM,108+ rule,109+ "",110+ 0,111+ "C",112+ false,113+ 0,114+ "",115+ )116+ }115117 }116118 117119 func drawTakuzuRelations(pdf *fpdf.Fpdf, data *pdfexport.TakuzuData, startX, startY, cellSize float64) {
M takuzuplus/PrintAdapter.go +7 -1