# -*- coding: utf-8 -*- # # Copyright © 2024 Simon Forman # # This file is part of game # # game is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # game 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with game. If not see . # from random import randint, expovariate, seed from poisson import poisson seed(23) MINIMUM_DISTANCE_BETWEEN_STARS = 160 WIDTH, HEIGHT = 10240, 7680 TABLES = [ 'create table stars (x INTEGER, y INTEGER, radius INTEGER)', ] def generate_stars(width, height, minimum_distance_between_stars): for x, y in poisson(width, height, minimum_distance_between_stars): yield x, y, round(1 + expovariate(1)) def init_db(conn): print('Generating star data.') c = conn.cursor() for values in generate_stars(WIDTH, HEIGHT, MINIMUM_DISTANCE_BETWEEN_STARS): c.execute('insert into stars values (?, ?, ?)', values) c.close() conn.commit() def iter_stars(conn): c = conn.cursor() c.execute('select x, y, radius from stars') yield from c.fetchall() c.close()