/* * Copyright (C) 2022 Camden Dixie O'Brien * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public * License along with this program. If not, see * . */ #include "sud.h" #include #include #include static uint32_t getseed(void) { FILE *urandom = fopen("/dev/urandom", "rb"); if (urandom == NULL) fprintf(stderr, "Failed to open /dev/urandom\n"); uint32_t seed = 0; for (unsigned i = 0; i < 4; ++i) seed = seed << 8 | fgetc(urandom); fclose(urandom); return seed; } int main(void) { uint32_t seed = getseed(); printf("Seed: %u\n\n", seed); srand(seed); struct sudoku sud; gen(&sud); print(&sud); return 0; }