home *** CD-ROM | disk | FTP | other *** search
/ Inside Multimedia 1995 August / IMM0895.ISO01.iso / share / os2 / connect4 / connect4.hlp (.txt) < prev    next >
OS/2 Help File  |  1994-04-23  |  17KB  |  463 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. How to Play Connect Four ΓòÉΓòÉΓòÉ
  3.  
  4. Connect Four is a two-player-game. On his turn, each player inserts a coin of 
  5. his colour in one of the columns. When a column is full, no more insertions are 
  6. allowed. The player who first manages to get four coins of his colour in one 
  7. line (either diagonal, horizontal or vertical) is the winner. In this game 
  8. either none, one or both of the players can be simulated by the computer. 
  9. The last option (both players are played by the computer) may not be too 
  10. thrilling for you, but during the development of the program it was a good 
  11. method to compare different valuation functions. We decided to leave this 
  12. option in the game, maybe in a future release you will be able to select 
  13. different valuation functions. If you had the source code, you could do this 
  14. already :-) For now, you can use it to check how two computer players play at 
  15. different levels. If you want to get more information about how the computer 
  16. plays, see How the Computer Finds a Move. 
  17.  
  18. Note:  This program is freely distributed under the usual terms and conditions 
  19. for use and distribution of free software. If you are uncertain what this means 
  20. refer to Conditions for Using Connect Four. 
  21.  
  22. Related topics: 
  23.  
  24.  About the Authors 
  25.  Conditions for Using Connect Four 
  26.  Getting the Sources 
  27. The Connect Four Contest 
  28.  
  29.  
  30. ΓòÉΓòÉΓòÉ 2. Game Options ΓòÉΓòÉΓòÉ
  31.  
  32. You can select the identity (either Human or Computer) of both of the players, 
  33. and you can choose the player who is to begin. Any combination is possible. The 
  34. slider settings determine the level that the computer plays at. If the player 
  35. is human, the slider indicates the level at which the computer will calculate 
  36. hint moves for this player. 
  37. The higher the level, the better (and slower) the computer plays. As you will 
  38. find out quickly, it's no task to win against the computer when it plays on a 
  39. level below four. And it's no fun to play when the level is above seven 
  40. (because the computer decision takes too long - and you will not be able to 
  41. win!). 
  42. If you want to know more about the way the computer calculates his moves, 
  43. please refer to How the Computer Finds a Move. 
  44.  
  45. Related topics: 
  46.  
  47.  Program Options 
  48.  How the Computer Finds a Move 
  49.  
  50.  
  51. ΓòÉΓòÉΓòÉ 3. Program Options ΓòÉΓòÉΓòÉ
  52.  
  53. Here you can select some options concerning the whole program: 
  54.  
  55. Enable Sound 
  56.    To select this option, you need MMPM/2. 
  57.  
  58. Animate 
  59.    Determines whether or not the coins drop visually. When sound is enabled but 
  60.    animation is not, there will be no sound when you insert a coin or start a 
  61.    new game. 
  62.  
  63. Change Pointer 
  64.    If selected, the mouse pointer will appear in different shapes according to 
  65.    its position and to the state of the game. 
  66.  
  67. Save Settings on Exit 
  68.    If you select this option, all settings, including the window position and 
  69.    size, will be saved automatically when the program ends. All settings will 
  70.    be saved in the file connect4.ini in the current directory. 
  71.  
  72. Related topics: 
  73.  
  74.  Game Options 
  75.  
  76.  
  77. ΓòÉΓòÉΓòÉ 4. Product Information ΓòÉΓòÉΓòÉ
  78.  
  79. This dialog gives you some (boring) information about the authors of this 
  80. program. Simply press OK to leave it. 
  81.  
  82. Related topics: 
  83.  
  84.  How to Play Connect Four 
  85.  About the Authors 
  86.  Conditions for Using Connect Four 
  87.  Getting the Sources 
  88.  
  89.  
  90. ΓòÉΓòÉΓòÉ 5. Help for the Menu Entries ΓòÉΓòÉΓòÉ
  91.  
  92. To get help for the menu entries, you can either choose one of the topics 
  93. listed below, or simply press F1 after selecting the menu entry you want to get 
  94. information about. 
  95.  
  96. Menu entries: 
  97.  
  98.  Help for File 
  99.  Help for Game 
  100.  Help for Options 
  101.  Help for Help 
  102.  
  103.  
  104. ΓòÉΓòÉΓòÉ 6. Help for File ΓòÉΓòÉΓòÉ
  105.  
  106. The following menu items exist: 
  107.  
  108. Load 
  109.    Restore a previously saved game. The game options (player levels, starting 
  110.    player etc.) are not stored so that the current options will be taken. 
  111.  
  112. Save 
  113.    Saves the current game in connect4.ini. You can restore it later and 
  114.    continue playing ... 
  115.  
  116. Exit 
  117.    You may guess what happens if you select this menu item. 
  118.  
  119.  
  120. ΓòÉΓòÉΓòÉ 7. Help for Game ΓòÉΓòÉΓòÉ
  121.  
  122. The following menu items exist: 
  123.  
  124. Start 
  125.    This menu item is only available at the beginning of a game and only if the 
  126.    computer has to make the first move. After selecting this menu item the 
  127.    computer will start its calculation to find a good choice for the first 
  128.    column to insert a coin. 
  129.  
  130. Undo 
  131.    Gives you the possibility to rethink your last decision. 
  132.  
  133. Hint 
  134.    The computer tells you which move it would select if it were in your place. 
  135.  
  136. New 
  137.    Choosing this point will abort the current game. The game board will be 
  138.    cleared. If the player who is going to start (see Game Options) is the 
  139.    computer you have to choose Start afterwards to begin the game. If the 
  140.    starting player is human you can drop the first coin immediately after the 
  141.    board is cleared. 
  142.  
  143.  
  144. ΓòÉΓòÉΓòÉ 8. Help for Options ΓòÉΓòÉΓòÉ
  145.  
  146. The following menu items exist: 
  147.  
  148. Game 
  149.    Here you can select options concerning the computer level and related 
  150.    things. See also Game Options. 
  151.  
  152. Program 
  153.    The dialog that appears if you select this menu item allows you to enable or 
  154.    disable some options concerning the appearance of the program. See also 
  155.    Program Options. 
  156.  
  157. Save 
  158.    Here you can save the current options to the file connect4.ini. You also 
  159.    have the opportunity to save the options every time you quit the program. 
  160.    For this see Program Options. 
  161.  
  162.  
  163. ΓòÉΓòÉΓòÉ 9. Help for Help ΓòÉΓòÉΓòÉ
  164.  
  165. The following menu items exist: 
  166.  
  167. Help Index 
  168.    This brings up a list with more or less interesting information about the 
  169.    program Connect Four. 
  170.  
  171. General help 
  172.    This help screen will explain how to play Connect Four. 
  173.  
  174. Product Information 
  175.    This displays a short information about the program and its authors. If your 
  176.    curiosity is not satisfied concerning this item, you can also refer to the 
  177.    Product Information, and, if even this does not satisfy you, furthermore to 
  178.    About the Authors. This should do. 
  179.  
  180.  
  181. ΓòÉΓòÉΓòÉ 10. How the Computer Finds a Move ΓòÉΓòÉΓòÉ
  182.  
  183. Here you will find information about the algorithm that calculates the 
  184. computer's choice if it is its turn to insert the next coin. This is only a 
  185. brief description. For more information look for books dealing with "Game 
  186. Theory", a subsection of Artificial Intelligence. Especially if you speak 
  187. German I strongly recommend you to read an article in the German magazine 
  188. "c't", August 1989, page 114, called "Dame spielen". Although the game 
  189. described there is not Connect Four, the explanation of the methods for this 
  190. kind of AI was totally enough to develop this program. This should hold for any 
  191. other game that is similar to Connect Four, that is any game where the computer 
  192. has a variable but finite number of possibilities to make his next move. 
  193.  
  194. The current game status is saved in two identical board structures, one to 
  195. display the board and the other for the computer's calculations. In this second 
  196. board it can insert coins to test the results of its imaginary moves. (It was 
  197. necessary to have two boards because when the window is updated during the 
  198. calculation, it should still display the "real" situation on the game board and 
  199. not the state of the computer's calculations.) When the computer is going to 
  200. move, it inserts a coin in a column of "his" board and checks if it has won 
  201. (inserting one coin is called a "half move"). When it has won, it decides this 
  202. move to be a good one and therefore will also execute it in the "real" board. 
  203. Normally, this does not occur too often, so it has to check what will happen 
  204. after this move. It simulates an opponent's move, checks if the opponent has 
  205. won, and so on. After the computer has reached the recursion limit, it will 
  206. validate the situation displayed on the game board. These values are returned 
  207. recursively, and after having checked all game situations, it will select the 
  208. column with the best valuation and execute this move in the real game board. 
  209. The level selected for the computer is directly related to the calculation 
  210. depth, i. e. after how many of these "half moves" it will stop to recursively 
  211. insert coins. This limit is necessary because when one of the players inserts a 
  212. coin, the other player normally has seven possibilities to answer this move, 
  213. and thus the computer will take seven times longer to calculate when the level 
  214. is increased only one step. There are methods how to reduce this (they will be 
  215. explained in game theory books or articles), but experience shows that even 
  216. with these methods the computing time will be three to four times longer when 
  217. the level is increased one step. 
  218.  
  219. Note:  When you have enabled the sound option and when you play at a level 
  220. above four, you will sometimes hear a laughter. This indicates that the 
  221. computer knows that he will win no matter what you do afterwards (you can give 
  222. up then!). Just a nastiness towards you:-). 
  223.  
  224. Related topics: 
  225.  
  226. How to Play Connect Four 
  227. About the Authors 
  228. Conditions for Using Connect Four 
  229. Getting the Sources 
  230. The Connect Four Contest 
  231.  
  232.  
  233. ΓòÉΓòÉΓòÉ 11. About the Authors ΓòÉΓòÉΓòÉ
  234.  
  235. The program was written by Nicole Greiber and Ralf Seidel. Both are currently 
  236. students of mathematics at the BUGH Wuppertal (Bergische Universit╨öt 
  237. Gesamthochschule Wuppertal). Wuppertal is a small town in Germany near Cologne. 
  238.  
  239. You can reach us via eMail (InterNet): 
  240.  
  241.     greiber@wrcs3.urz.uni-wuppertal.de 
  242.  
  243.     seidel3@wrcs3.urz.uni-wuppertal.de 
  244.  
  245.  or via Snail Mail: 
  246.  
  247.         Ralf Seidel               Nicole Greiber
  248.         W╨ælfrather Str. 45        Br╨æningstr. 6
  249.         42105 Wuppertal           42119 Wuppertal
  250.      Germany                   Germany
  251.  
  252.  Any kind of mail is welcome, may it be hints, comments, wishes for future 
  253.  releases, bug reports, corrections concerning our English or (less welcome) 
  254.  complaints. In one word: Drop us a note, and we'll be happy! 
  255.  
  256.  Credits 
  257.  
  258.  o Katharina             for her patience, help and understanding. 
  259.  
  260.  o Olaf                  for his continuous complaints concerning the game's 
  261.                          outward appearance. He also let himself down to record 
  262.                          the "Insert" and "Game New" sounds with his "holy" 
  263.                          Mac. 
  264.  
  265.  o Eberhard Mattes       for developing EMX, a great tool. He also helped us 
  266.                          with a problem regarding the .INI file. 
  267.  
  268.  o Marc van Woerkom      for developing the "Multimedia for EMX" libraries. 
  269.  
  270.  o Larry Salomon jr.     for publishing the Electronic Developer's Magazine. It 
  271.                          gave us lots of background information about OS/2 
  272.                          programming. 
  273.  
  274.  o IBM                   one could say, without their fine operating system 
  275.                          this program would have been impossible to write. 
  276.  
  277.   Related topics: 
  278.  
  279.  How to Play Connect Four 
  280.  Conditions for Using Connect Four 
  281.  Getting the Sources 
  282.  
  283.  
  284. ΓòÉΓòÉΓòÉ 12. Getting the Sources ΓòÉΓòÉΓòÉ
  285.  
  286. If you want to obtain the source codes for this program, we would like you to 
  287. send us DM 40,- (or US-$ 25,- likewise). PLEASE do NOT send foreign cheques, 
  288. because the German banks charge about DM 10,- to change such a cheque, and we 
  289. guess that once you have decided to pay something, you would like to pay us and 
  290. not the bank. 
  291.  
  292. Once you have got the source code, you will not get rid of us that quick. This 
  293. means that we will drop you a note when we have developed a new version of 
  294. Connect Four so that you can get the new sources if you like (a whole life 
  295. long!). Obviously, this includes that we store your address. If you do NOT want 
  296. this, please tell us, and we will not store it. 
  297.  
  298. To compile the source codes, we have used EMX 0.8h (as you might have guessed 
  299. when you found the EMX DLL's). We did not try to use any other compiler, but we 
  300. do not think that it will work very well with the Borland C++ Compiler, because 
  301. some functions are defined and used in a different way. It should be easier to 
  302. use the IBM compiler, but there might also occur some minor problems. If you 
  303. want to compile the source code, the easiest way for you would be to get and 
  304. install the EMX compiler on your machine (if you haven't done this already). It 
  305. is FREE!, and it's available on various FTP sites, as for example ftp.cdrom.com 
  306. or in Germany at ftp.uni-stuttgart.de. If you want to compile the sound 
  307. features, you also need a multimedia package (but you don't need this if you 
  308. want to compile without sound). You can either use the mm4emx package written 
  309. by Marc van Woerkom (what we did), which is also available via FTP, or the 
  310. package included with the Developer's Toolkit Ver. 2.1. 
  311.  
  312. Related topics: 
  313.  
  314.  How to Play Connect Four 
  315.  Conditions for Using Connect Four 
  316.  About the Authors 
  317.  The Connect Four Contest 
  318.  
  319.  
  320. ΓòÉΓòÉΓòÉ 13. Conditions for Using Connect Four ΓòÉΓòÉΓòÉ
  321.  
  322. Copyright (C) 1994 by Nicole Greiber and Ralf Seidel 
  323.  
  324. This program is distributed in the hope that it will be useful, but WITHOUT ANY 
  325. WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
  326. PARTICULAR PURPOSE. 
  327.  
  328. This program is free software; you can redistribute it if you make sure that 
  329. anybody who obtained a copy has the same rights as you have. 
  330.  
  331.   1. You may copy this program like anything. 
  332.  
  333.   2. It's not allowed to take money for this program itself. (A fee charged for 
  334.      handling etc. is allowed.) 
  335.  
  336.   3. You may modify this program if any modification is well documented and 
  337.      this documentation is added to any copy you distribute. You may not change 
  338.      this part of the documentation. 
  339.  
  340.  The source code of Connect Four is not free. Although this program is meant 
  341.  mainly as a programming example we think that some money given as an 
  342.  acknowledgement for our work is fair. If you have received the source code 
  343.  from us you are responsible that not more than three persons have access to 
  344.  these documents. (This means you are allowed to share the source code with two 
  345.  other persons of your choice.) Under no circumstances you are allowed to 
  346.  resell or distribute the source code. (Of course you may use small parts of it 
  347.  for your own programs and distribute them. In this context "small parts" means 
  348.  that some functions written by us may appear somewhere in your program.) If 
  349.  you want to know more about this, please refer to  Getting the Sources. 
  350.  
  351.  If you have any questions about your rights please send us mail. 
  352.  
  353.  Note:  We don't like all this talking about terms, conditions etc. so this 
  354.  page is surely not complete. Our main "message" is: Everything is allowed as 
  355.  long as the rights of anybody else are not affected and as long as you don't 
  356.  reduce our chances to earn some money by selling the sources. 
  357.  
  358.  Any of the above restrictions can't be verified by us. At least we have more 
  359.  interesting things to do so we appeal to your fairness and to your conscience. 
  360.  
  361.  Related topics: 
  362.  
  363.  How to Play Connect Four 
  364.  Getting the Sources 
  365.  About the Authors 
  366.  
  367.  
  368. ΓòÉΓòÉΓòÉ 14. Plans for Future Versions ΓòÉΓòÉΓòÉ
  369.  
  370. We are planning to add or modify the following topics: 
  371.  
  372.  o We want to add the possibility of selecting the board size and the number of 
  373.    coins that lead to victory. 
  374.  
  375.  o We want to add the choice between several valuation functions. 
  376.  
  377.  o We want to set the loudness of the sound to the value given by the MMPM/2 
  378.    volume button. 
  379.  
  380.  
  381. ΓòÉΓòÉΓòÉ 15. The Connect Four Contest ΓòÉΓòÉΓòÉ
  382.  
  383. When you have already read some parts of this online help, you might have 
  384. noticed that one of the difficulties in programming this game was to develop 
  385. the valuation function. This function is needed when the computer has 
  386. calculated a certain number of moves and did not find a winning or loosing 
  387. situation. A very simple method to validate a game situation is to give it the 
  388. value "0" when it did not lead to victory or loss. But when the game is played 
  389. at lower levels, its first phase will be quite boring. In some games a good 
  390. valuation function is very important and difficult (for example Chess), in 
  391. others it is trivial (for example when you only have to count a score). In 
  392. Connect Four you have to look at a given game situation and say whether it is 
  393. "good" or "bad". 
  394. If you want to know more about the theory behind this game, please read How the 
  395. Computer Finds a Move. 
  396.  
  397. So, it's up to you! Send us YOUR valuation function, and it will take part in 
  398. the contest! 
  399.  
  400. What the function should do: 
  401.  
  402.  o It should return a number which is the valuation for a given game situation. 
  403.    You can limit this function to work only with the board size 7 columns and 6 
  404.    rows, but you can also use a variable board size. 
  405.  
  406.  o It must not modify the game board. This means that it is not allowed to 
  407.    perform any moves and look what the situation is like two moves later. 
  408.  
  409.  o It should be of reasonable speed. This means it should not take longer than 
  410.    one minute to calculate a move at level eight (when it's embedded into our 
  411.    Connect Four). 
  412.  
  413.  o It should be written in EMX-C and should be as bug-free as possible. You 
  414.    should of course use all the naming conventions for the variables used in 
  415.    the program. 
  416.  
  417.  We will make our judgement in regard to several factors: First of all, a very 
  418.  important fact is how good a function plays, so we'll let them play against 
  419.  one another on the levels 4, 5 and 6, as starting and as second player. But 
  420.  speed will also be regarded, and how interesting a game is (this is naturally 
  421.  a quite subjective topic). 
  422.  
  423.  If you are interested in taking part in this contest, please have a look at 
  424.  the files in contest.zip. There you will find the Object files you need for 
  425.  compiling a little text-only version of Connect Four which you can use for 
  426.  testing purposes, and some sample valuation functions. If you have any 
  427.  questions, please contact us. Our addresses are listed in About the Authors. 
  428.  
  429.  The most interesting thing: The prize! 
  430.  Well, we are no commercial software company, and writing programs is only our 
  431.  hobby. So please don't expect any expensive prizes. We only do this because we 
  432.  are curious to see good valuation functions, and because we want to know how 
  433.  good a computer can be in playing Connect Four. The one thing we can offer as 
  434.  a prize is a free version of Connect Four's source code. When you already got 
  435.  the source code from us, we will refund your payment. It is highly recommended 
  436.  to get the source code when you want to take part in this contest because for 
  437.  you it will be much easier to test and improve your function (and you can have 
  438.  a look at how we solved this problem). On information how to do this please 
  439.  refer to Getting the Sources. If the functions' author(s) don't refuse, we 
  440.  will release a version of Connect Four with the best functions. 
  441.  
  442.  Date of expiry: 
  443.  This is a difficult topic. On the one hand, many people don't check the FTP 
  444.  servers too frequently, so it might take some time until a recent number of 
  445.  persons has got this program. Then, they might want to get the source code and 
  446.  get familiar with it. At last, they have to develop an idea for a nice 
  447.  function and program it. All these things take time. 
  448.  On the other hand, nobody wants to take part in a contest that will expire in, 
  449.  say, five years. And we don't want to wait for five years to check the 
  450.  results. So we think that a good expiry date will be the 31.12.1994. If 
  451.  anybody wants to send us a valuation function after this date, he is welcome 
  452.  to do so, but he will not take part any more. Of course we will inform all 
  453.  competitors about the results. 
  454.  
  455.  We wish you much fun in developing and programming a good function! 
  456.  
  457.  Related Topics: 
  458.  
  459.  How the Computer Finds a Move 
  460.  How to Play Connect Four 
  461.  Getting the Sources 
  462.  About the Authors 
  463.