Ejemplo n.º 1
0
//
// Rafraîchit l'affichage pendant une partie.
// Affiche le plateau de jeu, ainsi qu'un résumé des informations sur la partie en cours.
//
void refreshGameDisplay(GameState *state) {
    if(state == NULL) return;
    
    clear();
    set_tabsize(4);             //taille des tabulations
    
    displayGameBoard(state);    //affichage du plateau de jeu
    displayGameStatus(state);   //affichage d'infos sur le déroulement du jeu
    displayScores(state);       //affichage des scores
    displayCommands();          //affichage d'une aide sur les commandes disponibles
    
    //si on est en solo : affichage des messages de capture
    if(state->playersCount == 1) displayRobotCaptureMessage(state->robots);
}
Ejemplo n.º 2
0
void robotPlace(int *recEmptiesArray, int recCurPos)
{
	int ChosenColIndex=0;
	//determines which columns are possible (not full) based on empites array
	int PossibleIndices[MAXCOL] = {0, 0, 0, 0, 0, 0, 0};
	int count = 0;
	
	ChosenColIndex = Strategy();
	
	if (ChosenColIndex == -1) 
	{
		for (int col = 0; col < MAXCOL; col ++)
		{
			if (recEmptiesArray[col] >= 0)
			{
				PossibleIndices[count] = col;
				count += 1;
			}
		}
		count -= 1; 
		/*corrects for count going one too far
		at this point, Possible indices contains the column indices of 
		non-full columns and count contains how many not full columns there are
		*/
		ChosenColIndex = PossibleIndices[random[count]];
		// random number between 0 and count
		displayString(4, "ChosenCol: %d", ChosenColIndex);
	}

	//now place piece in the selected column
	GameBoard[recEmptiesArray[ChosenColIndex]][ChosenColIndex] = 2;
	updateEmpties(recEmptiesArray);
	displayEmpties(recEmptiesArray);
	displayGameBoard();
	moveHor(recCurPos, ChosenColIndex);
	//wait to give robot a change to stabilize
	wait1Msec(stabilize);
	dropPiece();
}
Ejemplo n.º 3
0
int P_moveUpdate(int *emptiesToCheck)
{
	//Assumed home position is at 3,-2
	int curCol = -2;
	int curRow = 3;
	//moves to each column
	for(int i = 0; i < MAXCOL; i ++)
	{
		moveHor(curCol, i);
		curCol = i;
		wait1Msec(stabilize);

	//if it is necessary to check for a piece in this column
		if (emptiesToCheck[i] >= 0)
		{
				moveVert(curRow, emptiesToCheck[i]);
				curRow = emptiesToCheck[i];

			displayString(MAXROW+2, "check Row: %i ", curRow);
			displayString(MAXROW+3, "check Col: %i ", curCol);
		if (SensorRaw(S2) > redVal)
			{
				GameBoard[curRow][curCol] = 1; 
				//updates gameboard that a piece is there
				displayGameBoard();
				updateEmpties(emptiesToCheck);
				displayEmpties(emptiesToCheck);
				playSound(soundBeepBeep); 
				moveVert(curRow, 3); //resets light sensor to bottom
				return curCol;
			}
		}
	}
	moveVert(curRow, 3); //resets light sensor to bottom
	return curCol; //in theory, this will never be required, just for compiling
}
Ejemplo n.º 4
0
task main()
{
	int EmptiesArray[MAXCOL] = {3, 3, 3, 3, 3, 3, 3};
	SensorType[S1] = sensorI2CCustom9V;
	SensorType[S2] = sensorColorNxtRED;
	SensorType[S3] = sensorTouch; //used for recalibration
	SensorType[S4] = sensorSONAR;
	
	
	while(SensorValue(S4) == 255){}
	playSound(soundDownwardTones);
	time1[T1] = 0;

	int curPos = -2;

	motor[motorA] = 10;
	motor[motorB] = 10;
	while(SensorValue[S3] != 1)
	{}
	motor[motorA] = 0;
	motor[motorB] = 0;

	displayGameBoard();
	do
	{
		updateEmpties(EmptiesArray);
		robotPlace(EmptiesArray, curPos);
		if (!isFinish())
		{
			clearTimer(T1);
			while (time1[T1]<5000)
			{
				if (time1[T1]%1000==0)
				{
					playTone (650,50);
					wait1Msec(800);
					clearSounds();
				}	
			}
			playTone (850, 50);
			curPos = P_moveUpdate(EmptiesArray);
		}
	} while(!isFinish());

	playTone(695, 14); while(bSoundActive);
	playTone(695, 14); while(bSoundActive);
	playTone(695, 14); while(bSoundActive);
	playTone(929, 83); while(bSoundActive);
	playTone(1401, 83); while(bSoundActive);
	playTone(1251, 14); while(bSoundActive);
	playTone(1188, 14); while(bSoundActive);
	playTone(1054, 14); while(bSoundActive);
	playTone(1841, 83); while(bSoundActive);
	playTone(1401, 41); while(bSoundActive);
	playTone(1251, 14); while(bSoundActive);
	playTone(1188, 14); while(bSoundActive);
	playTone(1054, 14); while(bSoundActive);
	playTone(1841, 83); while(bSoundActive);
	playTone(1401, 41); while(bSoundActive);
	playTone(1251, 14); while(bSoundActive);
	playTone(1188, 14); while(bSoundActive);
	playTone(1251, 14); while(bSoundActive);
	playTone(1054, 55); while(bSoundActive);
	wait1Msec(280);
	playTone(695, 14); while(bSoundActive);
	playTone(695, 14); while(bSoundActive);
	playTone(695, 14); while(bSoundActive);
	playTone(929, 83); while(bSoundActive);
	playTone(1401, 83); while(bSoundActive);
	playTone(1251, 14); while(bSoundActive);
	playTone(1188, 14); while(bSoundActive);
	playTone(1054, 14); while(bSoundActive);
	playTone(1841, 83); while(bSoundActive);
	playTone(1401, 41); while(bSoundActive);
	playTone(1251, 14); while(bSoundActive);
	playTone(1188, 14); while(bSoundActive);
	playTone(1054, 14); while(bSoundActive);
	playTone(1841, 83); while(bSoundActive);
	playTone(1401, 41); while(bSoundActive);
	playTone(1251, 14); while(bSoundActive);
	playTone(1188, 14); while(bSoundActive);
	playTone(1251, 14); while(bSoundActive);
	playTone(1054, 55); while(bSoundActive);//[3]
	wait1Msec(280);

}