home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 Mobile / Chip_Mobile_2001.iso / palm / spiele / hkmajong / hkmajong.exe / majong / src / Table.java < prev    next >
Text File  |  1999-03-01  |  3KB  |  136 lines

  1. import waba.fx.*;
  2. import waba.ui.*;
  3. import waba.sys.*;
  4.  
  5. class Table
  6. {
  7.   Graphics g;
  8.   // mj left
  9.   int intMJLeft=78;
  10.   // dice number
  11.   int intDice1=Var.DICENOTDEFINED, intDice2=Var.DICENOTDEFINED;
  12.   // game stage
  13.   int intPlayerOwn=5000, intComputerOwn=5000; // init money
  14.   int intLevel=0; // init level
  15.   int intWind;
  16.  
  17.   public Table(Graphics gWindow, int intL, int Wind, int intP, int intC)
  18.   {
  19.     g=gWindow;
  20.     intLevel=intL;
  21.     intPlayerOwn=intP;
  22.     intComputerOwn=intC;
  23.     intWind=Wind;
  24.   }
  25.  
  26.   public int Left()
  27.   {
  28.     return intMJLeft;
  29.   }
  30.  
  31.   public void Paint()
  32.   {
  33.     g.drawImage(CreateLeft(intMJLeft), Var.LEFTAREAX, Var.LEFTAREAY);
  34.     PaintMisc();
  35.   }
  36.  
  37.   void PaintMisc()
  38.   {
  39.     Image iMisc=new Image(Var.MISCAREAW, Var.MISCAREAH);
  40.     Graphics gMisc=new Graphics(iMisc);
  41.     Font f = new Font("Arial", Font.PLAIN, 12);
  42.  
  43.     gMisc.setColor(Var.WHITE, Var.WHITE, Var.WHITE);
  44.     gMisc.fillRect(0, 0, Var.MISCAREAW, Var.MISCAREAH);
  45.     
  46.     if(intDice1!=Var.DICENOTDEFINED) gMisc.drawImage(MJ.DiceBmp[intDice1-1], 0, 0);
  47.     if(intDice2!=Var.DICENOTDEFINED) gMisc.drawImage(MJ.DiceBmp[intDice2-1], Var.DICEW+1, 0);
  48.  
  49.     gMisc.setColor(Var.BLACK, Var.BLACK, Var.BLACK);
  50.     gMisc.setFont(f);
  51.     gMisc.drawText("Level:"+(intLevel+1)+" Wind:"+MJ.RealNum2Name(intWind), (Var.DICEW+1)*2+5 ,2);
  52.  
  53.     gMisc.drawImage(MJ.FourBmp, Var.MISCAREAW-((Var.BUTTONW+1)*2), 0);
  54.     gMisc.drawImage(MJ.DoneBmp, Var.MISCAREAW-Var.BUTTONW-1, 0);
  55.  
  56.     g.drawImage(iMisc, Var.MISCAREAX, Var.MISCAREAY);
  57.   }
  58.  
  59.   public void PaintDice()
  60.   {
  61.     int i=0;
  62.  
  63.     // show dice
  64.     for(i=0;i<3;i++)
  65.     {
  66.       intDice1=MJ.rand(6)+1;
  67.       intDice2=MJ.rand(6)+1;
  68.       PaintMisc();
  69.       if (Var.PLATFORM != 1) Vm.sleep(3*Var.DELAY);
  70.     }
  71.   }
  72.  
  73.   public int GetMJ()
  74.   {
  75.     int i,j=0;
  76.     int intNewFace=0;
  77.  
  78.     if(intMJLeft>0)
  79.     {
  80.       intMJLeft=intMJLeft-1;
  81.       intNewFace=MJ.rand(34);
  82.  
  83.       //check if 4 match got
  84.       for (i=0;i<34;i++)
  85.       {
  86.         j=i+intNewFace;
  87.         if(j>=34) j=j-34;
  88.         if(MJ.intFaceCount[j]<3)
  89.         {
  90.           MJ.intFaceCount[j]++;
  91.           return MJ.Real2FaceNum(j);
  92.         }
  93.       }
  94.     }
  95.     return Var.MJNOTDEFINED;
  96.   }
  97.  
  98.   Image CreateLeft(int intLeft)
  99.   {
  100.     int i,j;
  101.     Image iLeft=new Image(Var.LEFTAREAW, Var.LEFTAREAH);
  102.     Graphics gLeft=new Graphics(iLeft);
  103.     Image iMJ=MJ.CreateMaJong(MJ.Stage.CLOSE, MJ.M1);
  104.  
  105.     gLeft.setColor(Var.WHITE,Var.WHITE,Var.WHITE);
  106.     gLeft.fillRect(0, 0, Var.LEFTAREAW, Var.LEFTAREAH);
  107.  
  108.     if (intLeft%(Var.MAXMJPERROW*2)==0 && intLeft>0)
  109.     {
  110.       j=Var.MAXMJPERROW*2-1;
  111.     }
  112.     else
  113.     {
  114.       j=intLeft%(Var.MAXMJPERROW*2)-1;
  115.     }
  116.  
  117.     for(i=j;i>=0;i--)
  118.     {
  119.       if((i%2) == 0)
  120.       {
  121.         gLeft.drawImage(iMJ, (int) (Var.MAXMJPERROW-1-(i/2))*(Var.MJW+Var.MJSPACE), Var.MJCLOSEVSPACE);
  122.       }
  123.     }
  124.  
  125.     for(i=j;i>=0;i--)
  126.     {
  127.       if((i%2) == 1)
  128.       {
  129.         gLeft.drawImage(iMJ, (int) (Var.MAXMJPERROW-1-(i/2))*(Var.MJW+Var.MJSPACE), 0);
  130.       }
  131.     }
  132.  
  133.     return iLeft;
  134.   }
  135. }
  136.