home *** CD-ROM | disk | FTP | other *** search
/ Chip Hitware 7 / Chip_Hitware_Vol_07.iso / chiphit7 / spiele / bgpro / generic.c_ / generic.c
Encoding:
C/C++ Source or Header  |  1996-01-26  |  3.3 KB  |  79 lines

  1. /***************************************************************************/
  2. /* GENERIC.C                                                               */
  3. /* Externer Zufallsgenerator fⁿr Backgammon Pro                            */
  4. /* Programmiersprache: Borland-C, Autor: Michael Schellong                 */
  5. /*                                                                         */
  6. /* Dieses Beispielprogramm soll Ihnen demonstrieren, wie Sie in C externe  */
  7. /* Zufallsgeneratoren fⁿr Backgammon Pro schreiben k÷nnen.                 */
  8. /* Bei einem externen Zufallsgenerator handelt es sich um eine Windows-DLL,*/
  9. /* die von Backgammon Pro zur Ermittlung der Wⁿrfelaugen aufgerufen wird.  */
  10. /* Die DLL mu▀ dabei mindestens folgende Funktionen enthalten:             */
  11. /*    LibMain:   Standard-Einsprungsprozedur der DLL. Sie wird hier zur    */
  12. /*               Initialisierung des Zufallsgenerators verwendet.          */
  13. /*    WEP:       Standard-Beendigunsprozedur der DLL. Sie kann gegebenen-  */
  14. /*               falls zur Freigabe von zuvor angefordertem Speicher ver-  */
  15. /*               wendet werden.                                            */
  16. /*    GetRandom: Funktion zur Ermittlung einer ganzzahligen Zufallszahl    */
  17. /*               zwischen 0 und N-1. N wird von Backgammon Pro als Para-   */
  18. /*               meter ⁿbergebenen Parameter und hat grundsΣtzlich den Wert*/
  19. /*               6.                                                        */
  20. /*               Zu der von der Funktion zurⁿckgegeben Zufallszahl wird    */
  21. /*               von Backgammon Pro noch eine eins hinzuaddiert.           */
  22. /*                                                                         */
  23. /* Fⁿr die Compiler Borland C++ 4.5 und Visual C++ sind die Projekt-       */
  24. /* dateien GENERIC.IDE bzw. GENERIC.MAK mitgeliefert. Vor der Compilierung */
  25. /* mⁿssen Sie ggf. die INCLUDE- und LIBRARY-Verzeichnisse anpassen.        */
  26. /*                                                                         */
  27. /***************************************************************************/
  28.  
  29. #include "windows.h"
  30. #include "stdlib.h"
  31. #include "stdio.h"
  32. #include "time.h"
  33.  
  34. #include "generic.h"
  35.  
  36. #ifndef __BORLANDC__
  37. /* Die Makros randomize und random sind nur in Borland-C++ definiert */
  38. #define randomize() srand((unsigned) time(NULL))  /* Funktion zur Initialisierung */
  39. #define random(N) (rand()%N)                      /* Ermittlung einer Zufallszahl */
  40. #endif
  41.  
  42. /* Initialisierung des Zufallsgenerators */
  43. static void Randomize(void)
  44. {   
  45.     randomize();
  46. }
  47.  
  48. /* Diese Funktion wird von Backgammon Pro zur Ermittlung von Zufallszahlen
  49.    zwischen 0 und N-1 aufgerufen 
  50.    Die Funktion wird von BGPRO grundsΣtzlich mit dem Parameter N=6 aufgerufen.
  51.    Zu dem Rⁿckgabewert wird jeweils automatisch eine eins hinzuaddiert.*/
  52.     
  53. unsigned short _export __far __pascal GetRandom(unsigned short N)
  54. {
  55.     /* Aufruf der BC-Bibliotheksroutine */
  56.     return random(N);
  57. }
  58.  
  59. int FAR PASCAL LibMain( HINSTANCE hInstance, WORD wDataSegment,
  60.                                    WORD wHeapSize, LPSTR lpszCmdLine )
  61. {
  62.     if ( wHeapSize != 0 )
  63.         UnlockData( 0 );
  64.  
  65.     /* hier k÷nnen weitere Initialisierungsanweisungen
  66.        fⁿr den Zufallsgenerator stehen
  67.        .
  68.        .
  69.        .
  70.        */
  71.     Randomize();
  72.     return 1;
  73. }
  74.  
  75. int FAR PASCAL WEP ( int bSystemExit )
  76. {
  77.     return 1;
  78. }
  79.