www.pudn.com > Russian_Diamond(step2).zip > s60testdocument.cpp


#include "S60TestAppUi.h" 
#include "S60TestDocument.h" 
 
// Standard Symbian OS construction sequence 
CS60TestDocument *CS60TestDocument::NewL(CEikApplication& aApp) 
{ 
  CS60TestDocument *self=NewLC(aApp); 
  CleanupStack::Pop(self); 
  return self; 
} 
 
CS60TestDocument *CS60TestDocument::NewLC(CEikApplication& aApp) 
{ 
  CS60TestDocument *self=new(ELeave) CS60TestDocument(aApp); 
  CleanupStack::PushL(self); 
  self->ConstructL(); 
  return self; 
} 
 
void CS60TestDocument::ConstructL() 
{ 
  TTime time; 
  time.HomeTime(); 
  seed=time.Int64(); 
  Reset(); 
} 
 
CS60TestDocument::CS60TestDocument(CEikApplication& aApp) 
:CAknDocument(aApp), 
 iGrid(), 
 iCurrBlock(), 
 iBlockPos(3, -4) 
{ 
} 
 
CS60TestDocument::~CS60TestDocument() 
{ 
} 
 
void CS60TestDocument::Reset() 
{ 
  iGrid.Clear(); 
  iBlockPos=TPoint(3, -4); 
  iCurrBlock=TBlock::RandomBlock(seed); 
} 
 
void CS60TestDocument::NewBlock() 
{ 
  iCurrBlock=TBlock::RandomBlock(seed); 
  iBlockPos=TPoint(3, -4); 
} 
 
bool CS60TestDocument::FixBlock() 
{ 
  int i; 
  // check if it is outside the board 
  for (i=0; i<-iBlockPos.iY; i++) 
    if (iCurrBlock.RowMask(i)) 
      return false; 
 
  iGrid.PutBlock(iCurrBlock, iBlockPos); 
  return true; 
} 
 
bool CS60TestDocument::IsBlock(const TPoint &p) const 
{ 
  if (p.iX>=iBlockPos.iX && p.iX=iBlockPos.iY && p.iY0; 
  return false; 
} 
 
void CS60TestDocument::GetRowContent(int nr, TFixedArray &row) const 
{ 
  int i; 
  for (i=0; i