#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#define MAPSIZE 100

// 正規乱数
double normrand(void)
{
	double	ra, rb, nr;

	ra = (double)rand() / RAND_MAX;
	rb = (double)rand() / RAND_MAX;
	nr = sqrt(-2.0 * log(ra)) * cos(2.0 * M_PI * rb);
	return nr;
}

int main()
{
	char	map[MAPSIZE][MAPSIZE];
	double	x, y;
	int	i, row, col;

	srand(time(NULL));
	x = y = 0.0;
	memset(map, ' ', sizeof map);
	memset(map[MAPSIZE/2], '-', MAPSIZE);
	for (i = 0; i < MAPSIZE; i++) {
		map[i][MAPSIZE/2] = '|';
	}

	for (i = 0; i < 1000; i++) {
		x += normrand();
		y += normrand();
		printf("% 5.1f,% 5.1f%c", x, y, (i+1)%10?' ':'\n');
		col = MAPSIZE / 2 + x / 2.0;
		row = MAPSIZE / 2 - y / 2.0;
		if (0 <= row && row < MAPSIZE && 0 <= col && col < MAPSIZE) {
			map[row][col] = '*';
		}
	}
	for (i = 0; i < MAPSIZE; i++) {
		printf("%.*s\n", MAPSIZE, map[i]);
	}
	return 0;
}
