Files
vhdl/lib/CPUs/MIPS/bsp/examples/phrasen.c
T
jens 191af92d47 Initial version
Committed on the Free edition of March Hare Software CVSNT Server.
Upgrade to CVS Suite for more features and support:
http://march-hare.com/cvsnt/


git-svn-id: http://moon:8086/svn/vhdl/trunk@790 cc03376c-175c-47c8-b038-4cd826a8556b
2010-03-13 14:13:53 +00:00

299 lines
10 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include "libsys.h"
struct substantive
{
char *subst;
int sex;
};
struct verben
{
char *verb_k;
char *verb_gr;
int art;
};
struct adjektive
{
char *adj;
};
char *art[4]={"er","ie","as","en"};
char getch(void)
{
return _getchar();
}
void randomize(void)
{
srand(clock());
}
struct substantive namen[]=
{
{"Gerhard Schröder",1},{"Helmut Kohl",1},{"Rudolf Scharping",1},
{"Claudia Nolte",2}, {"Johannes Rau",1},{"Wolfgang Schäuble",1},
{"Joschka Fischer",1},{"Toni Blair",1},{"Kleopatra",2},
{"Claudia Schiffer",2},{"Hannelore Kohl",2},{"Konrad Adenauer",1},
{"Michael Jackson",1},{"Karl Marx",1}, {"Helmut Kohl",1},{"Heino",1},
{"Gerhard Schröder",1},{"Donald Duck",1},{"Madonna",2},{"Jesus",1},
{"Gott",1},{"Sheryl Crow",2},{"Verona Feldbusch",2},{"Pipi Langstrumpf",2},
{"Bill Gates",1},{"Bill Clinton",1},{"Cleopatra",2},{"Winnetou",1},
{"Käpt'n Blaubär",1},{"Rita Süssmuth",2},{"Boris Becker",1},
{"Lilo Wanders",2},{"Queen Elizabeth",2},{"Lady Di",2},{"Steffi Graf",2},
{"Frank Zappa",1},{"Dolly Buster",2},{"Mao Tse Tung",1},{"Ghandi",1},
{"Dalai Lama",1},{"Teufel",1},{"Lenin",1},{"Edmund Stoiber",1},
{"Ludwig van Beethoven",1},{"Wolfgang Amadeus Mozart",1},
{"Richard Wagner",1},{"Erich Honecker",1},{"Adam Riese",1},
{"Bill Clinton",1},{"Josef Stalin",1},{"Willy Brandt",1},
{"John F. Kennedy",1},{"E.T.",1},{"Donald Duck",1},{"Lothar Matthäus",1},
{"Hans Dietrich Genscher",1},{"Franz Josef Strauss",1},{"Sting",1},
{"Hermann Hesse",1},{"Albert Einstein",1},{"Max Planck",1},
{"Tom Jones",1},{"Heidi Kabel",2},{"Homer Simpson",1},{"Zeus",1},
{"Helmut Schmidt",1},{"Antje Vollmer",2},{"Politiker",1},{"Papst",1},
{"Bundeskanzler",1},{"Arzt",1},{"Friseuse",2},{"Teufel",1},
{"Sandmännchen",3},{"Mutter",2},{"Vater",1},{"Säufer",1},{"Student",1},
{"Bauer",1},{"Leiche",2},{"Polizist",1},{"Patientin",2},{"Bäcker",1},
{"Wirt",1}, {"Schlachter",1},{"Baby",3},{"Reporter",1},{"Politiker",1},
{"Beamtin",2},{"Oma",2},{"Putzfrau",2},{"Blinde",2},{"Wahnsinnige",2},
{"Mörder",1},{"Psychiater",1},{"Prinz Charles",1},{"Onkel",1},{"Tante",2}
};
struct substantive sachen[]=
{
{"Haus",3},{"Buch",3},{"Fahrrad",3},{"Schule",2},{"Auto",3},{"Nase",2},
{"Mund",1},{"Kopf",1},{"Kaffee",1},{"Telephon",3},{"Tasse",2},{"Katze",2},
{"Hund",1},{"Maus",2},{"Stuhl",1},{"Mann",1},{"Frau",2},{"Kind",3},
{"Idiotin",2},{"Lampe",2},{"Panzer",1},{"Klavier",3},{"Gitarre",2},
{"Straße",2},{"Wasser",3},{"Luft",2},{"Feuer",3},{"Erde",2},{"Mond",1},
{"Sonne",2},{"Bild",3},{"Stadt",2},{"Land",3},{"Fluss",1},
{"Bundeskanzler",1},{"Ball",1},{"Hut",1},{"Hose",2},{"Hemd",3},{"Tod",1},
{"Geld",3},{"Tisch",1},{"Hand",2},{"Baum",1},{"Bier",3},{"Ratte",2},
{"Esel",1},{"Musik",2},{"Blech",3},{"Dose",2},{"Zahn",1},{"Humor",1},
{"Unterhose",2},{"Gift",3},{"Gesicht",3},{"Fuß",1},{"Auge",3},{"Warze",2},
{"Ohr",3},{"Kanone",2},{"Milch",2},{"Messer",3},{"Papier",3},{"Haar",3},
{"Welt",2},{"Motor",1},{"Langeweile",2},{"Grab",3},{"Schnaps",1},
{"Vogel",1},{"Fisch",1},{"Meer",3},{"Banane",2},{"Brot",3},
{"Sitzung",2},{"Labor",3},{"Kurzschluß",1},{"Lüge",2},{"Axt",2},
{"Abstimmung",2},{"Toilette",2},{"Zigarette",2},{"Winter",1},
{"Torte",2},{"Bahnhof",1},{"Sarg",1},{"Imbiss",1},{"Mund",1},{"Seife",2},
{"Fernseher",1},{"Flasche",2},{"Eimer",1},{"Uhr",2},{"Irrenhaus",3},
{"Wüste",2},{"Klumpen",1},{"Glück",3},{"Schiff",3},{"Käse",1},{"Quark",1},
{"Sommer",1},{"Witz",1},{"Idee",2},{"Nacht",2},{"Dreck",1},{"Meer",3},
{"Blut",3},{"Herz",3},{"Apfel",1},{"Banane",2},{"Mist",1},{"Atom",3},
{"Note",2},{"Gehirn",3},{"Gefühl",3},{"Bombe",2},{"Vakuum",3},
{"Zahl",2},{"Wort",3},{"Programm",3},{"Computer",1},{"Orient",1},
{"Gabelstapler",1}
};
struct adjektive ad[]=
{
{"schön"},{"doof"},{"gut"},{"schlecht"},{"gelb"},{"grün"},{"rot"},
{"blau"},{"schnell"},{"lang"},{"kurz"},{"hell"},{"düster"},{"sanft"},
{"hart"},{"langsam"},{"bitter"},{"süß"},{"kaputt"},{"nett"},{"groß"},
{"klein"},{"leicht"},{"schwer"},{"dick"},{"dünn"},{"rund"},{"eckig"},
{"heiß"},{"kalt"},{"schlau"},{"elektrisch"},{"nass"},{"trocken"},{"ratlos"},
{"abartig"},{"genial"},{"bestechlich"},{"irr"},{"steif"},{"angespannt"},
{"laut"},{"leis"},{"warm"},{"wütend"},{"sauber"},{"schmutzig"},{"arm"},
{"ätzend"},{"langweilig"},{"interessant"},{"erfahren"},{"abgewählt"},
{"durchgeknallt"},{"angenehm"},{"widerwärtig"},{"willig"},{"mutig"},
{"schwach"},{"stark"},{"nervend"},{"spießig"},{"alt"},{"neu"},{"spitz"},
{"stumpf"},{"teuflisch"},{"scharf"},{"lecker"},{"übelriechend"},{"halb"},
{"ganz"},{"bleich"},{"peinlich"},{"taktlos"},{"gewieft"},{"windig"},
{"größenwahnsinnig"},{"verrückt"},{"uralt"},{"aalglatt"},{"korrekt"},
{"kompetent"},{"einfühlsam"},{"tot"},{"schleimig"},{"gestört"},{"hohl"},
{"beknackt"},{"nackt"},{"barfüßig"},{"schwitzend"},{"laufend"},{"knackig"},
{"unverschämt"},{"schläfrig"},{"wohlgeformt"},{"kugelförmig"},{"rauh"},
{"degeneriert"},{"ekelhaft"},{"brutal"},{"gemein"},{"aggressiv"},
{"aufdringlich"},{"betroffen"},{"geliebt"},{"gehasst"},{"beharrlich"},
{"unmenschlich"},{"verblödet"},{"wichtig"},{"gigantisch"},{"winzig"},
{"witzig"},{"komisch"},{"pervers"},{"fett"},{"stinkend"},{"lausig"},
{"wendig"},{"breit"},{"locker"},{"einzigartig"},{"sterbend"},{"munter"},
{"ungepflegt"},{"eisern"},{"echt"},{"besser"},{"wild"},{"ächzend"},
{"frohlockend"},{"unscheinbar"},{"nebulös"},{"skandalös"},{"obzön"},
{"beschränkt"},{"genervt"},{"hilflos"},{"unwürdig"},{"geleckt"},
{"betrunken"},{"unwürdig"},{"bissig"},{"verkalkt"},{"senil"},
{"jungfräulich"},{"ausgeleiert"},{"beleibt"},{"nachtragend"},{"errötend"},
{"kahl"},{"würgend"},{"abwesend"},{"ruhig"},{"albern"},{"trostlos"},
{"salzig"},{"lachend"},{"merkwürdig"},{"behaart"},{"leblos"},{"aufgeblasen"},
{"frech"},{"kopflos"},{"schmierig"}
};
struct verben verb[]=
{
{"geht","gehen",6},{"steht","stehen",2},{"sitzt","sitzen",2},
{"spielt","spielen",7},{"singt","singen",2},{"trinkt","trinken",3},
{"redet","reden",2}, {"liebt","lieben",7},{"schläft","schlafen",2},
{"ißt","essen",3},{"lacht","lachen",2},{"tötet","töten",7},
{"lügt","lügen",2},{"fliegt","fliegen",2},{"überfährt","überfahren",7},
{"sieht","sehen",3},{"hört","hören",3},{"spricht","sprechen",2},
{"berechnet","rechnen",3},{"schwimmt","schwimmen",2},
{"zerschneidet","zerschnitten werden",3},{"raucht","rauchen",3},
{"spaltet","spalten",3},{"verbrennt","verbrennen",2},{"ist","sein",2},
{"hat","haben",1},{"zerbricht","zerbrechen",3},{"muss","müssen",4},
{"kann","können",4},{"darf","dürfen",4},{"will","wollen",5},
{"klaut","klauen",1},{"soll","sollen",4},{"studiert","studieren",3},
{"reibt","reiben",3},{"liest","lesen",2},{"irrt","irren",2},
{"spendiert","spendieren",1},{"schlägt","schlagen",3},{"fragt","fragen",7},
{"zerstört","zerstören",1},{"erschießt","sich erschießen",1},
{"überlegt","überlegen",2},{"trifft","treffen",7},{"leckt","lecken",1},
{"wirft","werfen",1},{"vergiftet","vergiftet werden",1},
{"öffnet","öffnen",1},{"schreit","schreien",2},{"sprengt","explodieren",3},
{"erwürgt","würgen",7},{"arbeitet","arbeiten",2},{"erlegt","erlegen",1},
{"putzt","putzen",1},{"stirbt","sterben",2}, {"kauft","kaufen",1},
{"brüllt","brüllen",2},{"versteht","es verstehen",7},
{"zertritt","zertreten werden",1},{"verendet","verenden",2},
{"labert","labern",2},{"kratzt","kratzen",1},{"wird","nichts werden",2},
{"entkleidet","sich entkleiden",7},{"verbiegt","sich verbiegen",1},
{"verschenkt","es verschenken",7},{"vergisst","es vergessen",1},
{"ergreift","greifen",1},{"baut","bauen",1},{"betet","beten",},
{"rollt","rollen",3},{"bleibt","bleiben",2},{"wäscht","sich waschen",1},
{"heiratet","heiraten",7},{"hebt","heben",1},{"denkt","nachdenken",2}
};
void end_sach_aus(void);
void nam_aus(void);
void end_nam_aus(void);
void adj_aus(void);
int verb_aus_k(void);
int verb_aus_gr(void);
int zufall(int);
int main()
{
int vindx;
int rem=0;
char end;
setbuf(stdout, NULL);
randomize();
printf("\n\t\t************************");
printf("\n\t\t* DER ELEKTRISCHE POET *");
printf("\n\t\t************************\n");
printf("\n\tCopyright by J. Ahrensfeld & T. Burr");
printf("\n\n\tFür die Texte ist Ihr Computer verantwortlich :-)\n");
printf("\n\tZum beenden des Programmes 'x' eingeben!\n");
printf("\n\tWeiter mit beliebiger Taste!\n");
end = getch();
while(end != 'x')
{
if(rem >= 10)
{
printf("\n\n\tZum beenden des Programmes 'x' eingeben!\n");
rem = 0;
if(getch() == 'x')
break;
}
printf("\n\n");
nam_aus();
vindx=verb_aus_k();
switch (vindx)
{
case 1: end_sach_aus(); break;
case 2: adj_aus(); break;
case 3: end_sach_aus(); break;
case 4: verb_aus_gr(); break;
case 5: verb_aus_gr(); break;
case 6: adj_aus(); break;
case 7: end_nam_aus(); break;
}
printf(".");
end = getch();
rem++;
}
printf("\n\n\tDas ist das Ende!");
return 0;
}
int zufall(int max)
{
return (rand()%max);
}
void adj_aus(void)
{
printf("%s", ad[zufall((sizeof(ad)/sizeof(*ad)))].adj);
return;
}
void end_sach_aus(void)
{
int index;
index = zufall(sizeof(sachen)/sizeof(*sachen));
if (sachen[index].sex==1)
printf("d%s", art[3]);
else
printf("d%s", art[(sachen[index].sex)-1]);
printf(" ");
adj_aus();
if (sachen[index].sex==1)
printf("en %s", sachen[index].subst);
else
printf("e %s", sachen[index].subst);
return;
}
void nam_aus(void)
{
int index;
index = zufall(sizeof(namen)/sizeof(*namen));
printf("D%s", art[(namen[index].sex)-1]);
printf(" ");
adj_aus();
printf("e %s " ,namen[index].subst);
return;
}
void end_nam_aus(void)
{
int index;
index = zufall(sizeof(namen)/sizeof(*namen));
if (namen[index].sex==1)
printf("d%s", art[3]);
else
printf("d%s", art[(namen[index].sex)-1]);
printf(" ");
adj_aus();
if (namen[index].sex==1)
printf("en %s", namen[index].subst);
else
printf("e %s", namen[index].subst);
return;
}
int verb_aus_k(void)
{
int index;
index = zufall(sizeof(verb)/sizeof(*verb));
printf("%s ", verb[index].verb_k);
return (verb[index].art);
}
int verb_aus_gr(void)
{
int index;
index = zufall(sizeof(verb)/sizeof(*verb));
printf("%s", verb[index].verb_gr);
return index;
}