コード例 #1
0
void
PairsView::_GenerateCardPos()
{
	_ReadRandomIcons();

	srand((unsigned)time(0));

	int* positions = new int[fNumOfCards];
	for (int i = 0; i < fNumOfCards; i++)
		positions[i] = i;

	for (int i = fNumOfCards; i >= 1; i--) {
		int index = rand() % i;

		fRandPos[fNumOfCards - i] = positions[index];

		for (int j = index; j < i - 1; j++)
			positions[j] = positions[j + 1];
	}

	for (int i = 0; i < fNumOfCards; i++) {
		fPosX[i] = (fRandPos[i]) % fWidth * (kBitmapSize + kSpaceSize)
			+ kSpaceSize;
		fPosY[i] = (fRandPos[i]) / fHeight * (kBitmapSize + kSpaceSize)
			+ kSpaceSize;
	}

	delete [] positions;
}
コード例 #2
0
ファイル: PairsView.cpp プロジェクト: AmirAbrams/haiku
void
PairsView::_GenerateCardPositions()
{
	// seed the random number generator based on the current timestamp
	srand((unsigned)time(0));

	_ReadRandomIcons();

	int32* positions = new int32[fButtonsCount];
	for (int32 i = 0; i < fButtonsCount; i++)
		positions[i] = i;

	for (int32 i = fButtonsCount; i > 0; i--) {
		int32 index = rand() % i;
		fRandomPosition[fButtonsCount - i] = positions[index];
		for (int32 j = index; j < i - 1; j++)
			positions[j] = positions[j + 1];
	}
	delete[] positions;

	_SetPositions();
}