zoukankan      html  css  js  c++  java
  • 52张牌随意发

    uses
      SysUtils,Classes;

    type
      CardType=array[0..3] of string;
      const CardNums=12;
    type
      RCardrecord=record
        CardInfo: string;
      end;
      PCard=^RCardrecord;

    var
      slist: TList;
      i,j: Integer;
      iSub,iSpare: Integer;
      sCardType,sCardNum: string;
      aCard: PCard;
      iRandom,iCount: Integer;
      tCardInfo: string;
      aCardType: CardType;
    begin
      try
        { TODO -oUser -cConsole Main : Insert code here }
        aCardType[0]:='S';
        aCardType[1]:='H';
        aCardType[2]:='D';
        aCardType[3]:='C';

        slist := TList.Create;
        for i := 1 to 52 do
        begin
          iSub:=i div 14;
          iSpare:=i mod 14;
          sCardType := aCardType[iSub];
          sCardNum := IntToHex(iSpare,1);
          New(aCard);
          aCard.CardInfo := sCardType+sCardNum;
          slist.Add(aCard);
        end;

        Randomize;
        for j := 0 to 3 do
        begin
          tCardInfo := '';
          for i := 1 to CardNums do
          begin
            iRandom:=Random(slist.Count);
            aCard:=slist.Items[iRandom];
            tCardInfo := tCardInfo + ' ' + aCard^.CardInfo;

            slist.Delete(iRandom);
            Dispose(aCard);
          end;
          Writeln(tCardInfo);
        end;

        iCount:=slist.Count;
        for i := iCount-1 downto 0 do
        begin
          aCard:=slist.Items[i];
          slist.Delete(i);
          Dispose(aCard);
        end;
        slist.Free;
        Readln(i);
      except
        on E:Exception do
          Writeln(E.Classname, ': ', E.Message);
      end;
    end.

  • 相关阅读:
    中断与异常
    轻松搞定C语言中复杂的声明
    C/C++中数组转换成指针的情况
    Linux下C程序的内存布局
    Java并发和多线程(二)Executor框架
    Java并发和多线程(一)基础知识
    java项目的划分方式:模块优先还是层优先?
    站在面试官角度看面试
    windows环境搭建禅道项目管理工具
    Linux环境搭建禅道项目管理工具
  • 原文地址:https://www.cnblogs.com/batman425/p/3257747.html
Copyright © 2011-2022 走看看