home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************/
- /* GENERIC.C */
- /* Externer Zufallsgenerator fⁿr Backgammon Pro */
- /* Programmiersprache: Borland-C, Autor: Michael Schellong */
- /* */
- /* Dieses Beispielprogramm soll Ihnen demonstrieren, wie Sie in C externe */
- /* Zufallsgeneratoren fⁿr Backgammon Pro schreiben k÷nnen. */
- /* Bei einem externen Zufallsgenerator handelt es sich um eine Windows-DLL,*/
- /* die von Backgammon Pro zur Ermittlung der Wⁿrfelaugen aufgerufen wird. */
- /* Die DLL mu▀ dabei mindestens folgende Funktionen enthalten: */
- /* LibMain: Standard-Einsprungsprozedur der DLL. Sie wird hier zur */
- /* Initialisierung des Zufallsgenerators verwendet. */
- /* WEP: Standard-Beendigunsprozedur der DLL. Sie kann gegebenen- */
- /* falls zur Freigabe von zuvor angefordertem Speicher ver- */
- /* wendet werden. */
- /* GetRandom: Funktion zur Ermittlung einer ganzzahligen Zufallszahl */
- /* zwischen 0 und N-1. N wird von Backgammon Pro als Para- */
- /* meter ⁿbergebenen Parameter und hat grundsΣtzlich den Wert*/
- /* 6. */
- /* Zu der von der Funktion zurⁿckgegeben Zufallszahl wird */
- /* von Backgammon Pro noch eine eins hinzuaddiert. */
- /* */
- /* Fⁿr die Compiler Borland C++ 4.5 und Visual C++ sind die Projekt- */
- /* dateien GENERIC.IDE bzw. GENERIC.MAK mitgeliefert. Vor der Compilierung */
- /* mⁿssen Sie ggf. die INCLUDE- und LIBRARY-Verzeichnisse anpassen. */
- /* */
- /***************************************************************************/
-
- #include "windows.h"
- #include "stdlib.h"
- #include "stdio.h"
- #include "time.h"
-
- #include "generic.h"
-
- #ifndef __BORLANDC__
- /* Die Makros randomize und random sind nur in Borland-C++ definiert */
- #define randomize() srand((unsigned) time(NULL)) /* Funktion zur Initialisierung */
- #define random(N) (rand()%N) /* Ermittlung einer Zufallszahl */
- #endif
-
- /* Initialisierung des Zufallsgenerators */
- static void Randomize(void)
- {
- randomize();
- }
-
- /* Diese Funktion wird von Backgammon Pro zur Ermittlung von Zufallszahlen
- zwischen 0 und N-1 aufgerufen
- Die Funktion wird von BGPRO grundsΣtzlich mit dem Parameter N=6 aufgerufen.
- Zu dem Rⁿckgabewert wird jeweils automatisch eine eins hinzuaddiert.*/
-
- unsigned short _export __far __pascal GetRandom(unsigned short N)
- {
- /* Aufruf der BC-Bibliotheksroutine */
- return random(N);
- }
-
- int FAR PASCAL LibMain( HINSTANCE hInstance, WORD wDataSegment,
- WORD wHeapSize, LPSTR lpszCmdLine )
- {
- if ( wHeapSize != 0 )
- UnlockData( 0 );
-
- /* hier k÷nnen weitere Initialisierungsanweisungen
- fⁿr den Zufallsgenerator stehen
- .
- .
- .
- */
- Randomize();
- return 1;
- }
-
- int FAR PASCAL WEP ( int bSystemExit )
- {
- return 1;
- }
-