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