Exemple #1
0
char *random_string(char *str) {
    int i, length = 1 + sizeof *str;
    for(i = 0; i < length; ++i) {
        str[i] = random_letter();
    }
    str[i] = '\0';
    return str;
}
static void random_string(int length, char *str) {
    int i;
    int char_type;

    for (i = 0; i < length; i++) {
        char_type = (int) (3 * (rand() / (RAND_MAX + 1.0)));

        switch (char_type) {
            case 0:
                str[i] = random_letter(0);
                break;
            case 1:
                str[i] = random_letter(1);
                break;
            case 2:
                str[i] = random_number();
                break;
            default:
                str[i] = random_number();
                break;
        }
    }
}
void robot_name(struct mtwist_state *mt, char *buffer, int buflen)
{
	static char *robot_patterns[] = { "LNLN", "LNLL", "LNNL", "LLNL", "LLNN", "LNNN" };
	char *pattern = random_word(mt, robot_patterns, ARRAYSIZE(robot_patterns));
	int i;
	char name[20];

	memset(name, 0, sizeof(name));
	for (i = 0; pattern[i]; i++) {
		switch (pattern[i]) {
		case 'L':
			name[i] = random_letter(mt);
			break;
		case 'N':
			name[i] = random_digit(mt);
			break;
		}
	}
	strncpy(buffer, name, buflen);
}