有80张牌。三个玩家。。
当某个标志来的时候。。开始洗牌。。
之后。。发牌。给每人19张牌
不用数据库。。用定义记录的方法

解决方案 »

  1.   

    参考
    http://expert.csdn.net/Expert/topic/2905/2905646.xml?temp=.8627436
      

  2.   

    var
      A1, A2: TStrtingList;
      I, iPos: Integer;
      a,b,c:string;
    begin
      A1 := TStringList.Create(self);
      A2 := TStringList.Create(self);
      for I := 1 to 80 do  
      begin
        A1.Add(IntToStr(mod(I,14));
      end;
      Ramdomize;
      for I := 1 to 80 do  
      begin
        iPos := Ramdomize(A1.Count);
        A2.Add(A1[iPos]);
        A1.Delete(iPos);
      end;
      for I:=1 to 80 do
      begin  
     case mod(I,3)
     case 0: 
    begin
    a:=a+inttostr(A2[I]);
    A2.Delete(I);
    end;
     case 1:
     begin
     b:=b+inttostr(A2[I]);
    A2.Delete(I);
     end;
     case 2:
     begin
     c:=c+inttostr(A2[I]);
    A2.Delete(I);
     end;
    end;
    end;
     a,b,c中装的就是三个玩家的牌,前面的MOD函数,我想应该是,请楼主试一下,也许函数写错了,因为牌只有十三种样式!除14取余就行了!