示例#1
0
int Game::collapse()
{
    int c = (int)clearBarPos;
    if (c == lastClearedRow)
        return 0;

    int numClearedThisPass = 0;
    for (int r = board_height_ + 2; r>= 0; --r)
    {
        if ((get(r, c) == XCLEARBLOCKCOL || get(r, c) == OCLEARBLOCKCOL ) && r != py_)
        {
            // Collapse
            ClearedBlock clr;
            clr.r = r;
            clr.c = c;
            clr.col = get(r, c);
            //viewer->addParticleBox(c, r, get(r,c));
            blocksJustCleared.push_back(clr);
            get(r, c) = -1;
            pullDown(r, c);
            lastClearedRow = c;
            numBlocksCleared++;
            score_ += (linesCleared_+10) / 10;
            linesCleared_++;
            numClearedThisPass++;
        }
    }
    // Pull pieces down
    return numClearedThisPass;
}
示例#2
0
文件: data.cpp 项目: HclX/MSP430
static void Write(uint8_t data)
{
	pullUp();
	DELAY_US(5);

	for (int i = 0; i < 8; i ++)
	{
		DELAY_US(10);
		pullDown();

		if (data & 0x01)
		{
			DELAY_US(5);
			pullUp();
			DELAY_US(55);
		}
		else
		{
			DELAY_US(60);
			pullUp();
		}

		data >>= 1;
	}
}
示例#3
0
文件: data.cpp 项目: HclX/MSP430
static uint8_t Read()
{
	uint8_t data = 0;
	uint8_t bit = 1;
	for (int i = 0; i < 8; i ++)
	{
		DELAY_US(10);

		pullDown();
		DELAY_US(1);

		pullUp();
		DELAY_US(5);

		if (isBusHigh())
		{
			data |= bit;
		}

		bit <<= 1;
		DELAY_US(60);
	}

	return data;
}
示例#4
0
文件: data.cpp 项目: HclX/MSP430
static bool Reset()
{
	pullUp();
	DELAY_US(10);

	pullDown();
	DELAY_US(480);

	pullUp();
	DELAY_US(60);

	if (isBusHigh())
	{
		return false;
	}

	DELAY_US(300);
	return isBusHigh();
}