home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / prog_oth / monopoly.lzh / monopoly_source.LZH / f13.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-06  |  5.6 KB  |  192 lines

  1. /* f13.c contains these functions for monopoly:
  2.          canbuild(),  cansell(),  canmorg(),  canlift()   */
  3.  
  4. #include "mono:defines"
  5. #include "mono:xvariables"
  6.  
  7. BOOL canmorg(who)
  8. USHORT who;
  9. {
  10. USHORT iter;
  11.  
  12. for (iter=0; iter<40; iter++)
  13.    {
  14.    if ( (owner[iter] == who) && (numhouses[iter] == 0) )  return(TRUE);
  15.    }
  16. return(FALSE);
  17. }
  18.  
  19. BOOL canlift(who)
  20. USHORT who;
  21. {
  22. USHORT iter;
  23.  
  24. for (iter=0; iter<40; iter++)
  25.    {
  26.    if ( (owner[iter] == who) && (ismorg[iter]) )  return(TRUE);
  27.    }
  28. return(FALSE);
  29. }
  30.    
  31.  
  32. BOOL canbuild(who)
  33. USHORT who;
  34. {
  35.  
  36. if ( (owner[1] == who) && (ismono[1]) )
  37.    {
  38.    if ( (!ismorg[1]) && (numhouses[1] < 5) )  return(TRUE);
  39.    if ( (!ismorg[3]) && (numhouses[3] < 5) )  return(TRUE);
  40.    }
  41. if ( (owner[6] == who) && (ismono[6]) )
  42.    {
  43.    if ( (!ismorg[6]) && (numhouses[6] < 5) )  return(TRUE);
  44.    if ( (!ismorg[8]) && (numhouses[8] < 5) )  return(TRUE);
  45.    if ( (!ismorg[9]) && (numhouses[9] < 5) )  return(TRUE);
  46.    }
  47. if ( (owner[11] == who) && (ismono[11]) )
  48.    {
  49.    if ( (!ismorg[11]) && (numhouses[11] < 5) )  return(TRUE);
  50.    if ( (!ismorg[13]) && (numhouses[13] < 5) )  return(TRUE);
  51.    if ( (!ismorg[14]) && (numhouses[14] < 5) )  return(TRUE);
  52.    }
  53. if ( (owner[16] == who) && (ismono[16]) )
  54.    {
  55.    if ( (!ismorg[16]) && (numhouses[16] < 5) )  return(TRUE);
  56.    if ( (!ismorg[18]) && (numhouses[18] < 5) )  return(TRUE);
  57.    if ( (!ismorg[19]) && (numhouses[19] < 5) )  return(TRUE);
  58.    }
  59. if ( (owner[21] == who) && (ismono[21]) )
  60.    {
  61.    if ( (!ismorg[21]) && (numhouses[21] < 5) )  return(TRUE);
  62.    if ( (!ismorg[23]) && (numhouses[23] < 5) )  return(TRUE);
  63.    if ( (!ismorg[24]) && (numhouses[24] < 5) )  return(TRUE);
  64.    }
  65. if ( (owner[26] == who) && (ismono[26]) )
  66.    {
  67.    if ( (!ismorg[26]) && (numhouses[26] < 5) )  return(TRUE);
  68.    if ( (!ismorg[27]) && (numhouses[27] < 5) )  return(TRUE);
  69.    if ( (!ismorg[29]) && (numhouses[29] < 5) )  return(TRUE);
  70.    }
  71. if ( (owner[31] == who) && (ismono[31]) )
  72.    {
  73.    if ( (!ismorg[31]) && (numhouses[31] < 5) )  return(TRUE);
  74.    if ( (!ismorg[32]) && (numhouses[32] < 5) )  return(TRUE);
  75.    if ( (!ismorg[34]) && (numhouses[34] < 5) )  return(TRUE);
  76.    }
  77. if ( (owner[37] == who) && (ismono[37]) )
  78.    {
  79.    if ( (!ismorg[37]) && (numhouses[37] < 5) )  return(TRUE);
  80.    if ( (!ismorg[39]) && (numhouses[39] < 5) )  return(TRUE);
  81.    }
  82. return(FALSE);
  83. }
  84.  
  85. BOOL cansell(who)
  86. USHORT who;
  87. {
  88.  
  89. if ( (owner[1] == who) && (numhouses[1] > 0) )   return(TRUE);
  90. if ( (owner[3] == who) && (numhouses[3] > 0) )   return(TRUE);
  91. if ( (owner[6] == who) && (numhouses[6] > 0) )   return(TRUE);
  92. if ( (owner[8] == who) && (numhouses[8] > 0) )   return(TRUE); 
  93. if ( (owner[9] == who) && (numhouses[9] > 0) )   return(TRUE);
  94. if ( (owner[16] == who) && (numhouses[16] > 0) )   return(TRUE);
  95. if ( (owner[18] == who) && (numhouses[18] > 0) )   return(TRUE);
  96. if ( (owner[19] == who) && (numhouses[19] > 0) )   return(TRUE);
  97. if ( (owner[21] == who) && (numhouses[21] > 0) )   return(TRUE);
  98. if ( (owner[23] == who) && (numhouses[23] > 0) )   return(TRUE);
  99. if ( (owner[24] == who) && (numhouses[24] > 0) )   return(TRUE);
  100. if ( (owner[26] == who) && (numhouses[26] > 0) )   return(TRUE);
  101. if ( (owner[27] == who) && (numhouses[27] > 0) )   return(TRUE);
  102. if ( (owner[29] == who) && (numhouses[29] > 0) )   return(TRUE);
  103. if ( (owner[31] == who) && (numhouses[31] > 0) )   return(TRUE);
  104. if ( (owner[32] == who) && (numhouses[32] > 0) )   return(TRUE);
  105. if ( (owner[34] == who) && (numhouses[34] > 0) )   return(TRUE);
  106. if ( (owner[27] == who) && (numhouses[27] > 0) )   return(TRUE);
  107. if ( (owner[39] == who) && (numhouses[39] > 0) )   return(TRUE);
  108. return(FALSE);
  109. }
  110.  
  111. USHORT ahead()
  112. {
  113. int iter;
  114. USHORT biggest;
  115.  
  116. net_worth[0]=0L;
  117. net_worth[1]=0L;
  118. net_worth[2]=0L;
  119. net_worth[3]=0L;
  120.  
  121. net_worth[0]+=bankroll[0];
  122. net_worth[1]+=bankroll[1];
  123. net_worth[2]+=bankroll[2];
  124. net_worth[3]+=bankroll[3];
  125.  
  126. net_worth[0]+=(freecard[0] * 50);
  127. net_worth[1]+=(freecard[1] * 50);
  128. net_worth[2]+=(freecard[2] * 50);
  129. net_worth[3]+=(freecard[3] * 50);
  130.  
  131. for (iter=0; iter<40; iter++)
  132.    {
  133.    if (owner[iter] == 0)
  134.       {
  135.       net_worth[0]+=(numhouses[iter] * housecost[iter]);
  136.       if (ismorg[iter])   net_worth[0]+=(propcost[iter] /2);
  137.       else  net_worth[0]+=propcost[iter];
  138.       }
  139.    if (owner[iter] == 1)
  140.       {
  141.       net_worth[1]+=(numhouses[iter] * housecost[iter]);
  142.       if (ismorg[iter])   net_worth[1]+=(propcost[iter] /2);
  143.       else  net_worth[1]+=propcost[iter];
  144.       }
  145.    if (owner[iter] == 2)
  146.       {
  147.       net_worth[2]+=(numhouses[iter] * housecost[iter]);
  148.       if (ismorg[iter])   net_worth[2]+=(propcost[iter] /2);
  149.       else  net_worth[2]+=propcost[iter];
  150.       }
  151.    if (owner[iter] == 3)
  152.       {
  153.       net_worth[3]+=(numhouses[iter] * housecost[iter]);
  154.       if (ismorg[iter])   net_worth[3]+=(propcost[iter] /3);
  155.       else  net_worth[3]+=propcost[iter];
  156.       }
  157.    }
  158.  
  159. if (notplaying[0])  net_worth[0]=0;
  160. if (notplaying[1])  net_worth[1]=0;
  161. if (notplaying[2])  net_worth[2]=0;
  162. if (notplaying[3])  net_worth[3]=0;
  163.  
  164. if (net_worth[0] >= net_worth[1])  biggest=0;
  165. else biggest=1;
  166.  
  167. if (net_worth[biggest] <= net_worth[2])  biggest=2;
  168. if (net_worth[biggest] <= net_worth[3])  biggest=3;
  169.  
  170. if (biggest == 0) 
  171.    {
  172.    if ( (net_worth[0] == net_worth[1]) || (net_worth[0] == net_worth[2]) || (net_worth[0] == net_worth[3]) )
  173.       return(5);
  174.    }
  175. if (biggest == 1) 
  176.    {
  177.    if ( (net_worth[1] == net_worth[0]) || (net_worth[1] == net_worth[2]) || (net_worth[1] == net_worth[3]) )
  178.       return(5);
  179.    }
  180. if (biggest == 2) 
  181.    {
  182.    if ( (net_worth[2] == net_worth[0]) || (net_worth[2] == net_worth[1]) || (net_worth[2] == net_worth[3]) )
  183.       return(5);
  184.    }
  185. if (biggest == 3) 
  186.    {
  187.    if ( (net_worth[3] == net_worth[0]) || (net_worth[3] == net_worth[1]) || (net_worth[3] == net_worth[2]) )
  188.       return(5);
  189.    }
  190. return(biggest);
  191. }
  192.