Skip to content

Instantly share code, notes, and snippets.

@maksverver
maksverver / test-1-competition-transcripts.csv
Last active October 12, 2025 21:28
CodeCup test competition games
Game Round IsSwiss User1 Score1 Status1 User2 Score2 Status2 Moves
313589 1 swiss Jelle van der Drift 0 ILLEGAL Marc Oldenhof 21 WIN WADADAADDAFNAFAA addaaffadadaanwa a2c4 g4e2 c4e2 h8f6
313590 1 swiss Marc Oldenhof 21 WIN Jelle van der Drift 1 LOSE AWNAADADAFFAADDA adaanaafwdaafdad b6d6 g5f3 b5d3 h3f5 a8c8 f5d3 c8a8 ad1 a7c5 d1b3 b2c1 fe2 b1d3 e2d3 Af8 h8f8 a3b1 ae3 c5a3 e3c1 a6c6 af4 d6d4 f3d4 b1d2 f4d2 b8d6 nd8 d6f8 fb1 a2b2 d8b7 Df1 b7c5 f1h1
313591 1 swiss Test Player A 11 DRAW Kirk Brown 11 DRAW AAAFDDDAADAANWAF afanaaddaafdadaw a2c4 g3e5 b3d5 h4f4 a3c1 h6h4 d5f7 g5e7 b1d3 g2f3 b2d2 e5c3 b6c6 c3e1 f7h5 g4h6 a5a3 f4d4 Ae2 f3e2 d2d4 ab2 c6c7 g6e4 c1e3 e2d1 b5d6 e7c5 Df2 e1g3 d3b1 e4c6 a1c3 d1e2 d4f4 g3e5 c7c8 g8e8 f4d4 e2d1 d4d2 h6g8 c3a1 h7f5 a7c7 g8e7 d2b2 h2f4 Ae2 e8e6 c7c5 h3g4 Ag8 e5c3 d6f7 h1f3 f7e5 c3e5 b4d6 nb3 b8a7 f3h1 f2h2 h8h7 d6b4 e7g6 c4a2 g6h8 e3g1 c6a4 a2c4 fg6 Ae8 g6h5 a8c6 ae1 h2f2 g7g5 e2g4 b3a1 Fh2 ac3 c8d8 h7g7 a7b6 g5g3 b4d2 h5g6 g8e6 d1e2 Dh7 f5h7 e6g8 g6f7 g8e6 h4h6 c6a8 f4h2 b6c7
@maksverver
maksverver / many-files.py
Last active April 20, 2025 16:47
Python script to generate zip files which make the zip bomb detection logic in unzip run in quadratic time
#!/usr/bin/env python3
# Generates zip files that trigger quadratic runtime in unzip with zip bomb
# detection enabled.
import zlib
from random import shuffle, randrange
from struct import pack
def MakeBytes(data):
@maksverver
maksverver / pow2-fast.cc
Created March 20, 2025 18:09
Verify A068994 up to 2^(10^10)
#include <iostream>
#include <cstdint>
#include <vector>
constexpr int64_t min_k = 12; // 2^12 = 4096
constexpr int64_t max_k = 1e10; // 2^(10^10)
static int64_t FindCounterexample(size_t digit_count) {
std::vector<char> digits(digit_count);
digits[0] = 1;
@maksverver
maksverver / generator.c
Created December 29, 2024 18:50
CodeCup 2025 Box tile generator
#include <assert.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
static uint8_t random_data[240];
static size_t random_size = 0;
uint8_t GetRandomByte() {
@maksverver
maksverver / loopy-numbers-1.txt
Created December 11, 2024 08:30
Challenge data for Advent of Code 2024 day 11
494106250
494112500
494281250
494287500
494456250
494631250
494806250
494975000
494981250
495150000
# Almost-correct solution
from functools import cmp_to_key
import sys
order = dict()
sort_key = cmp_to_key(lambda p, q: order.get((p, q), 0))
for line in sys.stdin:
@maksverver
maksverver / player-template.js
Created November 14, 2024 23:46
Codecup Box Javascript player for Caia (compatible with Node.js and d8)
#!/usr/bin/d8 --single-threaded
// d8 defines print() and printErr() which write to stdout and stderr.
// In Node.js, we can use console.log() and console.error() for this.
const print = globalThis.print || console.log;
const printErr = globalThis.printErr || console.error;
// Global player initialization
let myColor = undefined;
let firstMove = undefined;
@maksverver
maksverver / speler.js
Last active November 12, 2024 22:31
Voorbeeld CodeCup speler Box/Square in Javascript
#!/usr/bin/d8 --single-threaded
// Voor Caia:
// 'D' voor een deterministische speler
// 'R' voor een nondeterministische speler
printErr('D', 'voorbeeldspeler');
const mijnKleur = Number(readline());
printErr('Mijn kleur:', mijnKleur);
@maksverver
maksverver / MinimaxCPU.js
Created October 20, 2024 20:06
StackAndCoquer new AI players
/**
* \file MinimaxCPU.js
*
* \section LICENSE
*
* Copyright (C) 2024 Maks Verver
*
* This file is part of StackAndConquer.
*
* StackAndConquer is free software: you can redistribute it and/or modify
#!/usr/bin/env python3
import io
import libxml2
import xml.sax.xmlreader
from drv_libxml2 import LibXml2Reader
def parse_binary():
source = xml.sax.xmlreader.InputSource()
source.setByteStream(io.BytesIO(b'<?xml version="1.0" encoding="UTF-8"?>\n<root />\n'))