Oppure

Loading
28/04/09 13:42
alexxandro84
grazie mille, davvero sto facendo la corsa contro il tempo...mia madre è stata operata e ora mi trovo a far tutto in poco tempo, ecco perchè ho chiesto se me lo facevi tu
aaa
28/04/09 15:03
gio97
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define CASELLE 8

int main() {

	char damiera[CASELLE][CASELLE] = {
			{'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '},
			{' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'},
			{'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '},
			{' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'},
			{'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '},
			{' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'},
			{'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '},
			{' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'},
			};
	int i;
	int iOr;
	int iVe;
	int oriz;
	int vert;
	char orizLet;
	char orizLet2;

	srand( time( NULL ) );
	i = 0;

	while( i < 5 ) {
		vert = rand() % CASELLE;
		oriz = rand() % CASELLE;

	switch( oriz ) {

		case 0:
			orizLet = 'A';
			break;

		case 1:
			orizLet = 'B';
			break;

		case 2:
			orizLet = 'C';
			break;

		case 3:
			orizLet = 'D';
			break;

		case 4:
			orizLet = 'E';
			break;

		case 5:
			orizLet = 'F';
			break;

		case 6:
			orizLet = 'G';
			break;

		case 7:
			orizLet = 'H';
			break;
	}

		if( damiera[vert][oriz] == 'X' ) {
			i++;
			damiera[vert][oriz] = 'N';				
				}

		while( iOr < 8 || iOr > 1 || iVe < 8 || iVe > 1 ) {
			iOr++;
			iVe++;
		
			switch( iOr ) {

				case 0:
					orizLet2 = 'A';
					break;
		
				case 1:
					orizLet2 = 'B';
					break;

				case 2:
					orizLet2 = 'C';
					break;

				case 3:
					orizLet2 = 'D';
					break;

				case 4:
					orizLet2 = 'E';
					break;

				case 5:
					orizLet2 = 'F';
					break;

				case 6:
					orizLet2 = 'G';
					break;

				case 7:
					orizLet2 = 'H';
					break;
		
			if( damiera[iVe][iOr] == 'N' ) {
				printf("%c%d può mangiare %c%d\n", orizLet, vert, orizLet2, iVe);
		}	

	}

	i = 0;

	while( i < 5 ) {
		vert = rand() % CASELLE;
		oriz = rand() % CASELLE;

	switch( oriz ) {

		case 0:
			orizLet = 'A';
			break;

		case 1:
			orizLet = 'B';
			break;

		case 2:
			orizLet = 'C';
			break;

		case 3:
			orizLet = 'D';
			break;

		case 4:
			orizLet = 'E';
			break;

		case 5:
			orizLet = 'F';
			break;

		case 6:
			orizLet = 'G';
			break;

		case 7:
			orizLet = 'H';
			break;
		
	}

		if( damiera[vert][oriz] == 'X' ) {
			i++;
			damiera[vert][oriz] = 'B';				
				}

		while( iOr < 8 || iOr > 1 || iVe < 8 || iVe > 1 ) {
			iOr++;
			iVe++;
		
			switch( iOr ) {

				case 0:
					orizLet2 = 'A';
					break;
		
				case 1:
					orizLet2 = 'B';
					break;

				case 2:
					orizLet2 = 'C';
					break;

				case 3:
					orizLet2 = 'D';
					break;

				case 4:
					orizLet2 = 'E';
					break;

				case 5:
					orizLet2 = 'F';
					break;
				case 6:
					orizLet2 = 'G';
					break;

				case 7:
					orizLet2 = 'H';
					break;
		
			if( damiera[iVe][iOr] == 'N' ) {
				printf("%c%d può mangiare %c%d\n", orizLet, vert, orizLet2, iVe);
		}	
	}
}
}
}
}
}


prova questo codice, ho compilato e non ho nemmeno eseguito, fai te adesso che hai la base.
aaa
28/04/09 15:12
alexxandro84
grazie mille davvero!

cmq ho copiato il codice, ho fatto COMPILE e...nessun errore!!!!

ho fatto BUILD e...nessun errore!!!

ho fatto EXECUTE PROGRAM e....mi esce la finestra nera e basta. Ho anche notato che quando premo sulla x per chiudere la finestra per attimo riesco a vedere che esce la scritta "premi un tasto per continuare"


e un'altra cosa, questo:
int main() { 

    char damiera[CASELLE][CASELLE] = { 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            };

non indica che c'è la casella bianca in basso a sinistra, mentre il testo dell'esercizio dice il contrario, cioè casella nera in basso a sinistra...quindi le pedine si muovono sulle caselle nere, cioè quelle con la X
Ultima modifica effettuata da alexxandro84 28/04/09 15:26
aaa
28/04/09 16:30
gio97
sai, forse quell'errore è perchè deve elaborare un po' di roba il programma, comunque se non fosse quello io adesso non ho tempo per trovare eventuali errori, guarda un po' te se trovi qualcosa di sbagliato. se le caselle sono sbagliate cambiale te, io ho fatto a caso le X
Ultima modifica effettuata da gio97 28/04/09 16:32
aaa
28/04/09 16:36
alexxandro84
quindi riguardo alle x nella tabella, mi basta scambiare solo le caselle qui?

da così:
int main() { 

    char damiera[CASELLE][CASELLE] = { 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            };


a così:
int main() { 

    char damiera[CASELLE][CASELLE] = { 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            {' ', 'X', ' ', 'X', ' ', 'X', ' ', 'X'}, 
            {'X', ' ', 'X', ' ', 'X', ' ', 'X', ' '}, 
            };
Ultima modifica effettuata da alexxandro84 28/04/09 16:40
aaa
28/04/09 16:39
gio97
sisi, perché il programma è del tutto indifferente a come è fatta la matrice.
aaa
28/04/09 16:42
alexxandro84
ok allora vedo se riesco a risolvere l'altro problema....se avesse avuto errori segalati dal programma, avrei saputo dove mettere le mani...così è più complicato, non da errori ma quando lo eseguo da schermo nero


ora vedo un pò
aaa
29/04/09 11:00
alexxandro84
non riesco a capire dove sia il problema.....il fatto è che quando compilo, non da nessun errore, allora è ancora più difficile capire cosa provoca questo problema: quando eseguo esce la schermata nera e non fa niente...ho anche atteso un bel pò, forse perchè come dicevi tu ci voleva del tempo a caricare, ma niente, sempre schermata nera
aaa