Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

insult generator

Name: Anonymous 2012-10-12 4:00


/*
 * File: prog-utils/insult-gen.c
 *
 * Purpose: Aid the generation of text insults
 *
 * Contributors:
 *  Anonymous-san
 *
*/

/*
prog-utils/insult-gen
Copyright (C) 2012  Anonymous-san

This program 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.

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 General Public License for more details.

     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>;.
*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>
#include <assert.h>

#define ASIZE(x) sizeof(x)/sizeof(x[0])

static const char * Modifiers[] =
{
  "homo",
  "sperg",
  "piss",
  "shit",
  "toilet",
  "dick",
  "cum",
  "urethra",
  "unemployed",
  "butt",
  "sick",
  "ass",
  "massive"
};

static const char * AdjectiveIdentifiers[] =
{
  "-mongling",
  "-bonering",
  "-flipping",
  "-nigging",
  "-aspergerian",
  "-talmudic",
  "anal",
  "-freudian"
};

static const char * NounIdentifiers[] =
{
  "anus",
  "faggot",
  "fag",
  "nigger",
  "sniffer",
  "lover",
  "kike",
  "penis",
  "cunt",
  "pig",
  "lord",
  "master",
  "scrubber",
  "midget",
  "jigaboo",
  "freetard",
  "culver",
  "pedo",
  "jew",
  "muslim",
  "stallmanite",
  "lisper"
};

static const char * VerbIdentifiers[] =
//not really verbs, but go back to your hugbox, aspie
{
  "sniffer",
  "licker",
  "wiper",
  "scratcher",
  "fucker",
  "flipper",
  "smoker"
};

//Program Options
static uint32_t ProgramOptions = 0;
static const uint32_t iNoRepeats = 0x01;

static uint32_t iAmountToGenerate = 5;

//end Program Options

void random_gen(char *, uint32_t n);

int main(int argc, char ** argv)
{
  char ** pArgv = argv;
  srand(time(0));

  while(*pArgv != NULL)
  {
    if(!strcmp(*pArgv, "--help")
      || !strcmp(*pArgv, "-h"))
    {
      puts("Options:\n"
      "--specify-amount #  How many insults you want to generate"
      " where # is an integer\n"
      "--feeling-lucky  Are you?\n"
      "--no-repeats  Will make sure output is not repeated\n"
      "\ninsult-gen is free software (i.e., abandonware)\n"
      "insult-gen is part of prog-utils\n");
     
      return 0;
    }
    else if(!strcmp(*pArgv, "--feeling-lucky"))
    {
      if(rand() % 2)
        goto win;
      while(1)
lose:
        puts("faggot!");
win:
      ;
    }
    else if(!strcmp(*pArgv, "--specify-amount"))
    {
      assert(*++pArgv);
      iAmountToGenerate = atoi(*pArgv);
    }
    else if(!strcmp(*pArgv, "--no-repeats"))
    {
      //Warning: quadratic complexity
      ProgramOptions |= iNoRepeats;

      //you know what, fuck this
      //just pipe to "uniq"
    }
    ++pArgv;
  }

  char * str = malloc(100);
  for(uint32_t k = 0; k < iAmountToGenerate; ++k)
  {
    random_gen(str, 100);
    puts(str);
  }
  free(str);

  return 0;
}

void random_gen
(
  char * dest,
  uint32_t n
)
{
  uint16_t l = 0;
  const char * szFirstComponent = Modifiers[rand() % (ASIZE(Modifiers))];
  const char * szMiddleComponent = (rand() % 7) > 5 ?
    AdjectiveIdentifiers[rand() % ASIZE(AdjectiveIdentifiers)]
    : NULL;
  const char * szSecondComponent = (rand() % 7) <= 5 ?
    NounIdentifiers[rand() % ASIZE(NounIdentifiers)]
    : VerbIdentifiers[rand() % ASIZE(VerbIdentifiers)];
 
  if(szMiddleComponent != NULL)
    goto middle_component_present;

middle_component_absent:
  assert(strlen(szFirstComponent) + strlen(szSecondComponent)
    < n);

  memcpy(dest, szFirstComponent, l = strlen(szFirstComponent));
  memcpy(dest + l, szSecondComponent, l += strlen(szSecondComponent));
  *(dest + l) = 0;
  goto end;
middle_component_present:
  assert(strlen(szFirstComponent) + strlen(szSecondComponent)
    + strlen(szMiddleComponent) < n);

  memcpy(dest, szFirstComponent, l = strlen(szFirstComponent));
  memcpy(dest + l, szMiddleComponent, l += strlen(szMiddleComponent));
  *(dest + l++) = '-';
  memcpy(dest + l, szSecondComponent, l+= strlen(szSecondComponent));
  *(dest + l) = 0;
end:
  ;
}

Name: Anonymous 2012-10-12 8:15

>>17

SYMTA> ($eval "dup 100 q (ass dick pussy titty cock anus)
          (sucking licking slapping)
          (fuck shit fag nigger kike)
          (lord head face storm)
    | m:X m pick X | e “$?”,say")
titty licking fuck lord
dick licking shit head
titty licking kike lord
cock licking nigger lord
ass licking kike lord
anus slapping fag lord
anus slapping kike storm
dick slapping kike lord
dick slapping kike storm
titty sucking nigger face
ass sucking kike head
dick licking fag head
pussy licking kike head
titty slapping kike storm
dick licking kike storm
pussy licking kike head
dick slapping fag storm
pussy slapping nigger storm
pussy licking nigger storm
pussy sucking kike head
dick slapping fuck head
pussy licking kike head
anus licking kike storm
anus slapping fag head
pussy slapping fag face
dick licking kike lord
anus licking kike lord
anus slapping nigger lord
titty licking fuck lord
dick slapping fag face
ass sucking nigger storm
pussy licking shit lord
cock licking fag lord
pussy sucking fuck storm
titty slapping nigger head
pussy licking kike head
cock slapping shit storm
cock licking shit lord
anus slapping shit storm
ass sucking shit head
cock licking kike storm
pussy licking kike storm
ass slapping kike storm
titty sucking nigger storm
cock licking nigger head
cock sucking fuck storm
ass slapping kike storm
cock slapping shit head
titty sucking fag lord
titty sucking shit storm
ass slapping kike lord
pussy licking fag storm
pussy sucking kike head
ass slapping kike storm
anus sucking fag head
ass slapping kike lord
pussy slapping kike face
dick licking shit storm
dick sucking shit face
pussy licking fag lord
pussy licking shit face
dick sucking shit lord
dick slapping shit face
ass sucking fag lord
ass licking shit lord
dick licking kike head
cock sucking kike face
titty licking fag storm
pussy slapping fag lord
anus slapping fuck head
ass sucking kike face
cock licking nigger head
titty sucking shit lord
ass slapping fuck storm
pussy licking kike lord
ass slapping nigger lord
cock slapping fuck storm
pussy licking nigger face
pussy slapping fag head
cock sucking fuck lord
titty licking nigger face
cock slapping fag head
ass licking kike head
pussy sucking fuck head
titty slapping kike lord
dick licking nigger face
dick licking fag face
cock slapping kike head
pussy licking fuck face
dick sucking nigger lord
anus slapping fuck head
ass slapping shit head
cock licking kike storm
anus licking fag head
ass slapping nigger lord
dick sucking shit storm
cock licking shit lord
anus sucking fag lord
dick slapping kike lord
ass sucking kike face
ø
NIL
SYMTA>

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List