Exemplo n.º 1
0
Arquivo: main.c Projeto: ez80/1010CE
void checkBuf() {
	if (!buffer1Active && !buffer2Active && !buffer3Active) {
		clearTile(&buffer1);
		clearTile(&buffer2);
		clearTile(&buffer3);
		setRandomTile(&buffer1);
		setRandomTile(&buffer2);
		setRandomTile(&buffer3);
		buffer1Active = true;
		buffer2Active = true;
		buffer3Active = true;
	}
		if (currentBufferInUse == 1 && !buffer1Active) {
			currentBufferInUse++; 
			checkBuf();
		}
		if (currentBufferInUse == 2 && !buffer2Active) {
			currentBufferInUse++;
			checkBuf();
		}
		if (currentBufferInUse == 3 && !buffer3Active) {
			currentBufferInUse=1;
			checkBuf();
		}
		fixBounds();
}
Exemplo n.º 2
0
/*
 * At the moment, the main() function is primarily used for testing and
 * debugging. 
 */
int main() {
    clearArray(moving);
    clearArray(fixed);

    srand(0);   /* Initialize random seed */
    

    /* Debugging info */
    int j;
    for (j = 0; j < 10; j++) {
        fixed[10][j] = 1;
    }

    printf("Initial board:\n");
    printArray(&fixed, 24, 10);
    printf("Checking array\n");
    checkBoard();
    printArray(&fixed, 24, 10);
    printf("Points: %d \n", points);
    
    
    /* More debugging info */
    printf("Printing moving board:\n");
    printArray(&moving, 24, 10);
    printf("Adding random tile:\n");

    int k;
    for (k = 0; k < 7; k++) {
        setRandomTile();
        printArray(&moving, 24, 10);
        printf("\n\n\n");
        clearArray(moving);
    }

	/*  trying to move left */
	setRandomTile();
	printArray(&moving,24,10);
	printf("\n\n\n");
	moveLeft();
	printArray(&moving,24,10);
	
	/*move right*/
	printf("\n\n\n");
	moveRight();
	printArray(&moving,24,10);
	

    getchar();
    return 0;
}
Exemplo n.º 3
0
Arquivo: main.c Projeto: ez80/1010CE
void startGame()
{
	gc_InitGraph();
	gc_DrawBuffer();
	gc_SetTextColor(0xFF00);
	gc_FillScrn(0xFF);
	gc_SwapDraw();
	srand(*(unsigned long*)0xF30044);
	clearTile(&buffer1);
	clearTile(&buffer2);
	clearTile(&buffer3);
	setRandomTile(&buffer1);
	setRandomTile(&buffer2);
	setRandomTile(&buffer3);
	buffer1Active = true;
	buffer2Active = true;
	buffer3Active = true;
	currentBufferInUse = 1;
	exitSection = false;
	movesRemaining = true;
	boardx = 3;
	boardy = 18;
	selectx = 0;
	selecty = 0;
	score = 0;
	drawBoardStart();
	canDrawTileBool = true;
	while (exitSection == false) {
		checkBuf();
		drawBoardRF();
		gc_SetTextXY(275, 5);
		gc_PrintInt(score, 5);
		if (currentBufferInUse == 1) {
			drawTileHover(buffer1, selectx, selecty);
		}
		if (currentBufferInUse == 2) {
			drawTileHover(buffer2, selectx, selecty);
		}
		if (currentBufferInUse == 3) {
			drawTileHover(buffer3, selectx, selecty);
		}
		/*if (canDrawTileBool == true) {
			gc_SetColorIndex(0x47);
			gc_NoClipRectangleOutline(selectx * 21 + boardx, selecty * 21 + boardy, 21, 21);
		}
		else {
			gc_SetColorIndex(0xE0);
			gc_NoClipRectangleOutline(selectx * 21 + boardx, selecty * 21 + boardy, 21, 21);
		}*/
		drawBuffers();
		gc_SwapDraw();
		if (!darkMode) {
			gc_SetColor(0xFF, gc_RGBTo1555(255, 255, 255));
		}
		else {
			gc_SetColor(0xFF, gc_RGBTo1555(26, 26, 26));
		}
		gc_FillScrn(0xFF);
		key = kb_ScanGroup(kb_group_7);
		if (key & kb_Down) {
			if (currentBufferInUse == 1) {
				inBounds(buffer1, selectx, selecty+1);
			}
			if (currentBufferInUse == 2) {
				inBounds(buffer2, selectx, selecty+1);
			}
			if (currentBufferInUse == 3) {
				inBounds(buffer3, selectx, selecty+1);
			}
			if (selecty < 9 && canDrawTileBool) {
				selecty++;
				if (currentBufferInUse == 1) {
					canDrawTile(buffer1, selectx, selecty);
				}
				if (currentBufferInUse == 2) {
					canDrawTile(buffer2, selectx, selecty);
				}
				if (currentBufferInUse == 3) {
					canDrawTile(buffer3, selectx, selecty);
				}
			}
		}
		if (key & kb_Up) {
			if (currentBufferInUse == 1) {
				inBounds(buffer1, selectx, selecty-1);
			}
			if (currentBufferInUse == 2) {
				inBounds(buffer2, selectx, selecty-1);
			}
			if (currentBufferInUse == 3) {
				inBounds(buffer3, selectx, selecty-1);
			}
			if (selecty > 0 && canDrawTileBool) {
				selecty--;
				if (currentBufferInUse == 1) {
					canDrawTile(buffer1, selectx, selecty);
				}
				if (currentBufferInUse == 2) {
					canDrawTile(buffer2, selectx, selecty);
				}
				if (currentBufferInUse == 3) {
					canDrawTile(buffer3, selectx, selecty);
				}
			}
		}
		if (key & kb_Left) {
			if (currentBufferInUse == 1) {
				inBounds(buffer1, selectx-1, selecty);
			}
			if (currentBufferInUse == 2) {
				inBounds(buffer2, selectx-1, selecty);
			}
			if (currentBufferInUse == 3) {
				inBounds(buffer3, selectx-1, selecty);
			}
			if (selectx > 0 && canDrawTileBool) {
				selectx--;
				if (currentBufferInUse == 1) {
					canDrawTile(buffer1, selectx, selecty);
				}
				if (currentBufferInUse == 2) {
					canDrawTile(buffer2, selectx, selecty);
				}
				if (currentBufferInUse == 3) {
					canDrawTile(buffer3, selectx, selecty);
				}
			}
		}
		if (key & kb_Right) {
			if (currentBufferInUse == 1) {
				inBounds(buffer1, selectx+1, selecty);
			}
			if (currentBufferInUse == 2) {
				inBounds(buffer2, selectx+1, selecty);
			}
			if (currentBufferInUse == 3) {
				inBounds(buffer3, selectx+1, selecty);
			}
			if (selectx < 9 && canDrawTileBool) {
				selectx++;
				if (currentBufferInUse == 1) {
					canDrawTile(buffer1, selectx, selecty);
				}
				if (currentBufferInUse == 2) {
					canDrawTile(buffer2, selectx, selecty);
				}
				if (currentBufferInUse == 3) {
					canDrawTile(buffer3, selectx, selecty);
				}
			}
		}
		if (selectx > 9 || selectx < 0)
		{
			selectx = 0;
		}
		if (selecty > 9 || selecty < 0)
		{
			selecty = 0;
		}
		key = kb_ScanGroup(kb_group_6);
		if (key & kb_Clear) {
			exitSection = true;
		}
		key = kb_ScanGroup(kb_group_1);
		if (key & kb_2nd) {
			if (currentBufferInUse == 1) {
				canDrawTile(buffer1, selectx, selecty);
			}
			if (currentBufferInUse == 2) {
				canDrawTile(buffer2, selectx, selecty);
			}
			if (currentBufferInUse == 3) {
				canDrawTile(buffer3, selectx, selecty);
			}
			if (canDrawTileBool) {
				if (currentBufferInUse == 1) {
					drawTile(buffer1, selectx, selecty);
				}
				if (currentBufferInUse == 2) {
					drawTile(buffer2, selectx, selecty);
				}
				if (currentBufferInUse == 3) {
					drawTile(buffer3, selectx, selecty);
				}

				if (currentBufferInUse == 1) {
					buffer1Active = false;
					clearTile(&buffer1);
				}
				if (currentBufferInUse == 2) {
					buffer2Active = false;
					clearTile(&buffer2);
				}
				if (currentBufferInUse == 3) {
					buffer3Active = false;
					clearTile(&buffer3);
				}
				currentBufferInUse++;
				if (currentBufferInUse == 4) {
					currentBufferInUse = 1;
				}
				checkBuf();
				checkForTileRows();
				if (currentBufferInUse == 1) {
					canDrawTile(buffer1, selectx, selecty);
				}
				if (currentBufferInUse == 2) {
					canDrawTile(buffer2, selectx, selecty);
				}
				if (currentBufferInUse == 3) {
					canDrawTile(buffer3, selectx, selecty);
				}
				anyMovesLeft();
				if (!movesRemaining) {
					exitSection = true;
				}
			}
		}
		if (key & kb_Mode) {
			darkMode = !darkMode;
			while (kb_AnyKey()) {

			}
		}
		key = kb_ScanGroup(kb_group_2);
		if (key & kb_Alpha) {
			currentBufferInUse++;
			if (currentBufferInUse == 4) {
				currentBufferInUse = 1;
			}
			checkBuf();
			dbg_printf(dbgout, "cbiu %d", currentBufferInUse);
			while (kb_AnyKey()) {

			}
		}
	}
		saveNewHS(score);
		dead();
}