fouten bij programma

Status
Niet open voor verdere reacties.

angelke987

Gebruiker
Lid geworden
5 jan 2009
Berichten
6
hallo,

ik moet voor school het spelletje blackjack programmeren.
jammergenoeg zit ik eventjes vast.
Hopelijk kan iemand mij helpen.
ik zal het stukje code en de errors er even bij vermelden ;)

Compiling TEST.CPP:
Error TEST.CPP 114: Cannot convert 'int' to 'char *' in function speler()
Error TEST.CPP 114: Type mismatch in parameter '__dest' in call to 'strncpy(char *,const char *,unsigned int)' in function speler()
Error TEST.CPP 115: Cannot convert 'int' to 'char *' in function speler()
Error TEST.CPP 115: Type mismatch in parameter '__dest' in call to 'strncpy(char *,const char *,unsigned int)' in function speler()
Error TEST.CPP 136: Cannot convert 'char *' to 'char' in function speler()
Error TEST.CPP 136: Type mismatch in parameter 'k1' in call to 'splits(char,char)' in function speler()
Error TEST.CPP 136: Cannot convert 'char *' to 'char' in function speler()
Error TEST.CPP 136: Type mismatch in parameter 'k2' in call to 'splits(char,char)' in function speler()
PHP:
int speler(){
	char k1[15], k2[15];
	int teller = 0;
	char teken1, teken2;
	char waarde1[4], waarde2[4];

	tel = 0;
	spelsom = 0;

	clrscr();
	printf("\n===========================================\n");
	printf("\nUw kaarten: ");

	while(tel <= 1){
		srand( (unsigned)time( NULL ) );

		do{
			i = rand()%51;
		}	while(array[i] == 1);

		array[i]=1;


		kmax++;

		if(i >= 0 && i < 4)   waarde = 2;
		if(i >= 4 && i < 8)   waarde = 3;
		if(i >= 8 && i < 12)  waarde = 4;
		if(i >= 12 && i < 16) waarde = 5;
		if(i >= 16 && i < 20) waarde = 6;
		if(i >= 20 && i < 24) waarde = 7;
		if(i >= 24 && i < 28) waarde = 8;
		if(i >= 28 && i < 32) waarde = 9;
		if(i >= 32 && i < 48) waarde = 10;
		if(i >= 48 && i < 52)
			if (spelsom <= 10) waarde = 11;
			else waarde = 1;

		spelsom = spelsom + waarde;

		printf("\n%s", kaarten[i]);

		while(teller < 2){

			if(teller == 0)
				strcpy(k1, kaarten[i]);
			if(teller == 1)
				strcpy(k2, kaarten[i]);

			strncpy(teken1, k1, 1);
			strncpy(teken2, k2, 1);

			switch(teken1){
				case 'h': strcpy(waarde1, &k1[7]); break;
				case 'r': strcpy(waarde1, &k1[7]); break;
				case 's': strcpy(waarde1, &k1[9]); break;
				case 'k': strcpy(waarde1, &k1[9]); break;
			}

			switch(teken2){
				case 'h': strcpy(waarde2, &k2[7]); break;
				case 'r': strcpy(waarde2, &k2[7]); break;
				case 's': strcpy(waarde2, &k2[9]); break;
				case 'k': strcpy(waarde2, &k2[9]); break;
			}

			if(strcmp(waarde1, waarde2) == 0)
				printf("stapel splitsen? [j/n]");
				scanf("%c", &keuze);

				if(keuze == 'j' || keuze == 'J')
					splits(k1, k2);

		}

		teller++;
		tel++;

		if (spelsom >= 21){
			printf("\nUw punten : %i",spelsom);
			computer();
			winnaar();
		}
		else{
			if (tel == 2 && kmax <= 8){
				printf("\n\nUw punten : %i ",spelsom);
				printf("\n\n\nNog een kaart [j/n]: ");
				scanf("%s",&keuze);

				if(keuze == 'j' || keuze == 'J') tel = 1;
				if(keuze == 'n' || keuze == 'N') tel = 3;
			}
		}
	}
	if (spelsom < 21) {
		computer();
		winnaar();
		}
	return 0;
}
 
Laatst bewerkt door een moderator:
Code:
strncpy(teken1, k1, 1);
strncpy(teken2, k2, 1);
Strncpy werkt alleen met char arrays. teken1 en teken2 zijn "gewone" chars en kan je dus niet gebruiken in strncpy.

Code:
splits(k1, k2);
Ik weet niet wat deze functie doet, maar de foutmelding zegt dat de functie alleen werkt met twee chars als argumenten. Jij geeft het twee char arrays als argumenten.
 
dank je

ik heb een beetje veranderd, mijn programma draait nu zo goed als nu ;)

enkel het splitsen lukt nog niet :(

grtz
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan