コード例 #1
0
void checkalnum(void)
{
	j=0;
	if(isdigit(token.charvalue[j])){
		checknumber();
	}
	else
	{
		checkkeyword();
	}
}
コード例 #2
0
static int CvBGPixelStat_nPbcc(lua_State *L)
{
  const char f_msg[]=CVBGPIXELSTAT_NAME".Pbcc=num";
  checkCvBGPixelStat(L,1)->Pbcc=(float)checknumber(L,3);
return 0;
}
コード例 #3
0
/* hier wird der Rundenablauf gesteuert */
int runde(int sd) 
{
	int rc, err;
	int erg[3];
	int rundenende;
	char buffer[MAXLEN];

	rundenende = 0;
	printf("Errate die Geheimzahl von %s!\n", opponentplayer);
	printf("Gib deinen Versuch ein (4 unterschiedliche Ziffern): ");
	while(1) {

		fd_set bereit;

		FD_ZERO(&bereit);
		FD_SET( 0, &bereit);
		FD_SET(sd, &bereit);

		/* Eingabe vom Nutzer oder Nachricht vom Server abwarten */
		rc = select(MAX( 0, sd) + 1 , &bereit, NULL, NULL, NULL);
		if (rc < 0) {
			if (errno == EINTR) 
				continue;
			perror("select");
			ende(SIGTERM);
		}

		if (rc == 0)
			continue;

		/* Es kommt eine Nachricht vom Server */
		if (FD_ISSET(sd, &bereit)) {

			if (empfangen( sd, buffer, MAXLEN) <= 0) {
				/* Server ist nicht mehr erreichbar - Ende der Kommunikation */
				perror("empfangen");
				ende(-1);
			}

			/* es kommt quit */
			if (strcasecmp(buffer, "quit\n") == 0) {
				perror("Der Server ist nicht mehr erreichbar!");
				ende(SIGTERM);
			}

			/* überprüfen ob Gewonnen/Verloren/Remis */
			if (strcasecmp(buffer, "gewonnen\n") == 0) { 
				printf("\n\nYuppieh - Du hast gewonnen!\n");
				printf("===========\n");
				ok(sd);
			}
			if (strcasecmp(buffer, "verloren\n") == 0) {   
				printf("\n\nSchade - Du hast verloren...\n");
				printf("===========\n");
				ok(sd);
			}
			if (strcasecmp(buffer, "remis\n") == 0) {
				printf("\n\nUnentschieden - Beide haben es gleichzeitig geschafft!\n");
				printf("===========\n");
				ok(sd);
			}
			if (strncasecmp(buffer, "versuch:", 8) == 0) {
				//printf("vom Server: \"%s\"\n",buffer);
				rc = sscanf(buffer, "%*s %d", &erg[0]);
				if(rc != 1) {
					perror("versuch empfangen");
					ende(-1);
				}
				printf("\t%s hat geraten: %04d ", opponentplayer, erg[0]); 
				printf("(Deine Geheimzahl lautet: %s)\n", secret);

				/* mit "OK" bestaetigen */
				ok(sd);
			}
			if (strncasecmp(buffer, "ergebnis:", 9) == 0) {
				//printf("vom Server: \"%s\"\n",buffer);
				rc = sscanf(buffer, "%*s %d %d %d", &erg[0], &erg[1], &erg[2]);
				if(rc != 3) {
					perror("ergebnis");
					ende(-1);
				}
				printf("\tDein Versuch %04d ergab (richtig: Anzahl / Stelle): %d / %d\n", erg[0], erg[1], erg[2]);  
				/* mit "OK" bestaetigen */
				ok(sd);
				printf("\nGib deinen neuen Versuch ein (4 unterschiedliche Ziffern): ");
			}
			if (strcasecmp(buffer, "noch einmal?\n") == 0) {
				printf("Willst du noch einmal spielen (j/n)? ");
				rundenende = 1;
				/* mit "OK" bestaetigen */
				ok(sd);
			}
			continue;		
		}
		if (FD_ISSET(0, &bereit)) {

			rc = readline(0, buffer, MAXLEN);
			if (rc < 0) { /* Fehler -> Ausgabe */
				perror("readline");
				ende(-1);
			}
			if (rc > 5){
				printf("Gib deinen Versuch ein (4 unterschiedliche Ziffern): ");
				continue;
			}

			*(buffer+rc) = '\0';

			if(rundenende) {
				if (strncasecmp(buffer, "j\n", 2) == 0) {
					/* String senden */
					if(senden(sd, "bereit\n") < 0) {
						perror("senden");	
						ende(-1);
					}
					waitforserverreply(sd,1,buffer);
	/* gebe 1 zurück um eine weitere Runde zu starten */
					return 1;
				}

				if (strncasecmp(buffer, "n\n", 2) == 0) {
	/* gebe 0 zurück um keine weitere Runde zu starten */
					return 0;
				}
				else {
					printf("Falsche Eingabe, erwarte (j/n)\n");
					continue;
				}
			}

			err = checknumber(buffer);				
			if(err == 1) {
				printf("Gib deinen Versuch ein (4 unterschiedliche Ziffern): ");
				err = 0;
				continue;
			}
			else {

				/* Geheimzahl senden */
				str_senden(sd, "ZAHL: ", buffer, 5);

				waitforserverreply(sd,1, buffer);
				if (strcasecmp(buffer, "ok\n") != 0) {
					perror("client: not ok");	
					ende(-1);

				}
			}
		}
	}
}
コード例 #4
0
/*------------------------------------------------------------------------------------*/
void mastermind(int sd) /* Die Spiel-Funktion */
{
	int rc;
	int err;
	int gamerounds;
	char buffer[MAXLEN];
	/*char tmp[MAXLEN];*/

	/* stdout ungepuffert, damit write(1,..) und printf() genutzt werden können */
	setbuf(stdout, NULL);

	/* Warten auf den Start der Kommunikation */
	waitforserverreply(sd,0, buffer);
	/* Auf Fehler überprüfen */
	if (strcasecmp(buffer, "HALLO\n") != 0) {
		perror("No Hallo");	
		ende(-1);
	}

	/* Hallo mit ok bestätigen */
	ok(sd);

	printf("Gib deinen Spielernamen ein!\n");
	printf("Dein Spielername: ");

	while(1) {
		fd_set bereit;

		FD_ZERO(&bereit);
		FD_SET( 0, &bereit);
		FD_SET(sd, &bereit);

		rc = select(MAX( 0, sd) + 1 , &bereit, NULL, NULL, NULL);
		if (rc < 0) {
			if (errno == EINTR) 
				continue;
			perror("select");
			ende(SIGTERM);
		}

		if (rc == 0)
			continue;

		/* Es kam eine Nachricht vom Server */
		if (FD_ISSET(sd, &bereit)) {
			/* Erst einmal empfangen (kann auch EOF sein!) */
			if (empfangen( sd, buffer, MAXLEN) <= 0) {
				/* Server ist nicht mehr erreichbar - Ende der Kommunikation */
				perror("empfangen");
				ende(-1);
			}
			continue;		
		}

		/* Der Spieler hat etwas eingegeben und mit '\n' bestätigt */
		if (FD_ISSET(0, &bereit)) {
			/* von Eingabe lesen */
			rc = readline(0, buffer, MAXLEN-1);
			/* Fehler -> Ausgabe */
			if (rc < 0) {
				perror("readline");
				ende(-1);
			}
			/* String erstellen */
			*(buffer+rc) = (char) 0;

			/* Prüfen ob gültiger Name eingegeben wurde */
			/* Prüfen auf Länge */
			if (strlen(buffer) == 1) {
				printf("Bitte einen gültigen Spielernamen angeben: ");
				continue;
			}

			/* Spielernamen sichern */
			strcpy(playername, buffer);
			/* Namen senden */
			str_senden(sd, "NAME: ", playername, rc);
			/* die Einleseschleife beenden */
			break;
		}
	}/*-----Ende Spielernamen-Einlese-Schleife-----*/	

	/* Warten auf "OK" vom Server */
	waitforserverreply(sd,0, buffer);
	/* Überprüfen ob wirklich "OK" empfangen wurde */
	if (strcasecmp(buffer, "ok\n") != 0) {
		perror("not OK");	
		ende(-1);
	}

	/* Warten auf Gegenspielername */
	waitforserverreply(sd,0, buffer);
	/* Auf Fehler überprüfen */
	if (strncasecmp(buffer, "name:", 5) != 0) {
		perror("not name");	
		ende(-1);
	}

	/* mit "OK" bestätigen */
	ok(sd);

	/* Sichern des Gegenspielernamens */
	strcpy(opponentplayer, &buffer[6]);
	opponentplayer[strlen(opponentplayer) - 1] = '\0';

	/* Namen des Gegenspielers ausgeben */	
	printf("Dein Gegenspieler nennt sich: %s.", opponentplayer);	

	/* Warten auf Anzahl der Runden */
	waitforserverreply(sd,0, buffer);
	/* Auf Fehler überprüfen */
	if (strncasecmp(buffer, "runden:", 5) != 0) {
		perror("not rounds");	
		ende(-1);
	}

	/* mit "OK" bestaetigen */
	ok(sd);

	/* Speichern der Rundenzahl */
	if( sscanf(buffer, "%*s %d", &gamerounds) < 1) {
		perror("not rounds");
		ende(-1);
	}
	/* dem Spieler die Rundenanzahl mitteilen */
	printf("Es sind maximal %d Runden vereinbart.\n\n", gamerounds);	

	/* Geheimzahl einlesen */
	while(1) {
		printf("Gib deine Geheimzahl ein (4 unterschiedliche Ziffern): ");	
		while(1) {
			/* Variable um einen Fehler zu behandeln */

			fd_set bereit;

			FD_ZERO(&bereit);
			FD_SET( 0, &bereit);
			FD_SET(sd, &bereit);

			rc = select(MAX( 0, sd) + 1 , &bereit, NULL, NULL, NULL);
			if (rc < 0) {
				if (errno == EINTR) 
					continue;
				perror("select");
				ende(SIGTERM);
			}

			if (rc == 0)
				continue;

			if (FD_ISSET(sd, &bereit)) {
				/* Erst einmal empfangen (kann auch EOF sein!) */
				if (empfangen( sd, buffer, MAXLEN) <= 0) {
					/* Server ist nicht mehr erreichbar - Ende der Kommunikation */
					perror("empfangen");
					ende(-1);
				}
				continue;		
			}

			if (FD_ISSET(0, &bereit)) {

				rc = readline(0, secret, MAXLEN);
				if (rc < 0) { /* Fehler -> Ausgabe */
					perror("readline");
					ende(SIGTERM);
				}
				*(secret+rc) = (char) 0; /* String erstellen */

				err = checknumber(secret);				
				if(err == 1) {
					printf("Gib deine Geheimzahl ein (4 unterschiedliche Ziffern): ");	
					err = 0;
					continue;
				}

				if (strcasecmp(secret, "exit\n") == 0) 
					continue;
				if (strcasecmp(secret, "quit\n") == 0) 
					continue;
				if (strcasecmp(secret, "ok\n") == 0) 
					continue;
				if (strcasecmp(secret, "\n") == 0) 
					continue;
				if (strcasecmp(secret, "\0") == 0) 
					continue;

				/* Geheimzahl senden */
				str_senden(sd, "GEHEIMZAHL: ", secret, rc);
				break;
			}
		}

		waitforserverreply(sd,1, buffer);
		if (strcasecmp(buffer, "ok\n") != 0) {
			perror("not ok");	
			ende(-1);
		}

		waitforserverreply(sd,0,buffer);
		if (strcasecmp(buffer, "start\n") != 0) {
			perror("not start");	
			ende(-1);
		}
		/* mit "OK" bestaetigen */
		ok(sd);

		printf("Es kann los gehen!\n");
		printf("==================\n\n");

		if(!runde(sd))
			break;
	}
	return;
}
コード例 #5
0
/* hier wird der Rundenablauf gesteuert */
int runde(int sd) 
{
	int rc, err;	/* Returncodes/Fehler */
	int erg[3];	/* Ergebnis des Ratens, z.B.: {1234,3,1} */
	int rundenende;	/* Wenn 1 wird Abfrage für neue Runde aufgerufen */
	char buffer[MAXLEN];

	rundenende = 0;
	printf("Errate die Geheimzahl von %s!\n", opponentplayer);
	printf("Gib deinen Versuch ein (4 unterschiedliche Ziffern): ");
	while(1) {

		fd_set bereit;

		FD_ZERO(&bereit);
		FD_SET(0, &bereit);
		FD_SET(sd, &bereit);

		/* Eingabe vom Nutzer oder Nachricht vom Server abwarten */
		rc = select(MAX(0, sd) + 1, &bereit, NULL, NULL, NULL);
		if (rc < 0) {
			if (errno == EINTR) 
				continue;
			perror("select");
			ende(SIGTERM);
		}

		if (rc == 0)
			continue;

		if (FD_ISSET(sd, &bereit)) {
			if (empfangen(sd, buffer, MAXLEN) <= 0) {
				perror("empfangen");
				ende(-1);
			}

			/* es kommt quit */
			if (strcasecmp(buffer, "quit\n") == 0) {
				perror("Der Server ist nicht mehr erreichbar!");
				ende(-1);
			}

			/* überprüfen ob Gewonnen/Verloren/Remis */
			if (strcasecmp(buffer, "gewonnen\n") == 0) { 
				printf("\n\nYuppieh - Du hast gewonnen!\n");
				printf("=========== \n");
				/* mit OK bestätigen */
				ok(sd);
			}
			if (strcasecmp(buffer, "verloren\n") == 0) {   
				printf("\n\nSchade - Du hast verloren...\n");
				printf("=========== \n");
				/* mit OK bestätigen */
				ok(sd);
			}
			if (strcasecmp(buffer, "remis\n") == 0) {
				printf("\n\nUnentschieden - Beide haben es gleichzeitig geschafft!\n");
				printf("=========== \n");
				/* mit OK bestätigen */
				ok(sd);
			}
			/* Gegenspielerversuch empfangen -> Ausgabe */
			if (strncasecmp(buffer, "versuch:", 8) == 0) {
				/* Gegenspielerversuch auslesen */
				rc = sscanf(buffer, "%*s %d", &erg[0]);
				if (rc != 1) {
					perror("versuch empfangen");
					ende(-1);
				}
			/* Ausgabe des Versuchs */
				printf("\t%s hat geraten: %04d ", opponentplayer, erg[0]); 
				printf("(Deine Geheimzahl lautet: %s)\n", secret);

				/* mit "OK" bestaetigen */
				ok(sd);
			}
			/* Das Ergebnis des eigenen Versuchs empfangen */
			if (strncasecmp(buffer, "ergebnis:", 9) == 0) {
				/* Zahlen auslesen */
				rc = sscanf(buffer, "%*s %d %d %d", &erg[0], &erg[1], &erg[2]);
				if (rc !=  3) {
					perror("ergebnis");
					ende(-1);
				}
				/* Ausgabe des Ergebnis vom Server */
				printf("\tDein Versuch %04d ergab (richtig: Anzahl / Stelle): %d / %d\n", erg[0], erg[1], erg[2]);  
				/* mit "OK" bestaetigen */
				ok(sd);

				printf("\nGib deinen neuen Versuch ein (4 unterschiedliche Ziffern): ");
			}
			/* Abfrage für neue Runde empfangen */
			if (strcasecmp(buffer, "noch einmal?\n") == 0) {
				printf("Willst du noch einmal spielen (j/n)? ");
				/* eine Runde hat ein Ergebnis */
				rundenende = 1;
				/* mit "OK" bestaetigen */
				ok(sd);
			}
			continue;		
		}
		
		/* stdin ist bereit */
		if (FD_ISSET(0, &bereit)) {
			rc = readline(0, buffer, MAXLEN);
			if (rc < 0) {
				perror("readline");
				ende(-1);
			}

			if (rc > 5){
				printf("Gib deinen Versuch ein (4 unterschiedliche Ziffern): ");
				continue;
			}
			*(buffer+rc) = '\0';
			
			/* bei Rundenende wird (j/n) als Eingabe erwartet */
			if (rundenende) {
				if (strncasecmp(buffer, "j\n", 2) == 0) {
					/* String senden */
					if (senden(sd, "bereit\n") < 0) {
						perror("senden");	
						ende(-1);
					}
					/* Auf anderen Spieler warten */
					waitforserverreply(sd, 1, buffer);
					printf("\n======> Eine neue Runde beginnt <======\n\n");
					/* gebe 1 zurück um eine weitere Runde zu starten */
					return 1;
				}

				if (strncasecmp(buffer, "n\n", 2) == 0) {
					/* gebe 0 zurück um keine weitere Runde zu starten */
					return 0;
				}
				else {
					printf("Falsche Eingabe, erwarte (j/n)\n");
					continue;
				}
			}
			
			/* eingelesene Zahl auf Richtigkeit */
			err = checknumber(buffer);				
			if (err == 1) {
				/* Bei Fehler neu einlesen */
				printf("Gib deinen Versuch ein (4 unterschiedliche Ziffern): ");
				err = 0;
				continue;
			}
			/* Bei korrekter Zahl -> an den Server senden */
			else {

				/* Geheimzahl senden */
				str_senden(sd, "ZAHL: ", buffer, 5);
				/* Antwort abwarten */
				waitforserverreply(sd, 1, buffer);
				if (strcasecmp(buffer, "ok\n") !=  0) {
					perror("ok");	
					ende(-1);

				}
			}
		}
	} /* Zahl-einlesen-Schleife */
} /* Raterunde - Ende */
コード例 #6
0
void mastermind(int sd) /* Die Spiel-Funktion */
{
	int rc;
	int err;
	int gamerounds;
	char buffer[MAXLEN];
	/*char tmp[MAXLEN];*/

	/* stdout ungepuffert, damit write(1, ..) und printf() genutzt werden können */
	setbuf(stdout, NULL);

	/* Warten auf den Start der Kommunikation */
	waitforserverreply(sd, 0, buffer);
	
	/* Auf Fehler überprüfen */
	if (strcasecmp(buffer, "HALLO\n") !=  0) {
		perror("Hallo");	
		ende(-1);
	}

	/* Hallo mit ok bestätigen */
	ok(sd);

	/* Spielernamen einlesen beginnt: */
	printf("Gib deinen Spielernamen ein!\n");
	printf("Dein Spielername: ");

	while(1) {
		fd_set bereit;

		FD_ZERO(&bereit);
		FD_SET(0, &bereit);
		FD_SET(sd, &bereit);

		/* Prüfen ob Socket oder stdin bereit sind */
		rc = select(MAX(0, sd) + 1, &bereit, NULL, NULL, NULL);
		/* Auf Fehler überprüfen */
		if (rc < 0) {
			if (errno == EINTR) 
				continue;
			perror("select");
			ende(-1);
		}

		/* While-Schleife fortsetzen falls nicht bereit war */
		if (rc == 0)
			continue;

		/* Es kam eine Nachricht vom Server (Socket) */
		if (FD_ISSET(sd, &bereit)) {
			/* empfangen (kann auch EOF sein!) */
			if (empfangen(sd, buffer, MAXLEN) <= 0) {
				/* Server ist nicht mehr erreichbar - Ende */
				perror("empfangen");
				ende(-1);
			}
			continue;		
		}

		/* Der Spieler hat etwas eingegeben und mit '\n' bestätigt */
		if (FD_ISSET(0, &bereit)) {
			/* von Eingabe lesen */
			rc = readline(0, buffer, MAXLEN-1);
			/* Fehler -> Ende */
			if (rc < 0) {
				perror("readline");
				ende(-1);
			}
			/* String erstellen */
			*(buffer+rc) = '\0';

			/* Prüfen ob gültiger Name eingegeben wurde */
			/* Prüfen auf Länge */
			if (strlen(buffer) == 1) {
				printf("Bitte einen gültigen Spielernamen angeben: ");
				/* Nochmal einlesen */
				continue;
			}

			/* Spielernamen sichern */
			strcpy(playername, buffer);

			/* Namen senden */
			str_senden(sd, "NAME: ", playername, rc);

			/* die Einleseschleife beenden */
			break;
		}
	}/*-----Ende Spielernamen-Einlese-Schleife-----*/	

	/* Warten auf "OK" vom Server */
	waitforserverreply(sd, 0, buffer);

	/* Überprüfen ob wirklich "OK" empfangen wurde */
	if (strcasecmp(buffer, "ok\n") !=  0) {
		perror("OK");	
		ende(-1);
	}

	/* Warten auf Gegenspielername */
	waitforserverreply(sd, 0, buffer);

	/* Auf Fehler überprüfen */
	if (strncasecmp(buffer, "name: ", 6) !=  0) {
		perror("name");	
		ende(-1);
	}

	/* mit "OK" bestätigen */
	ok(sd);

	/* Sichern des Gegenspielernamens */
	strcpy(opponentplayer, &buffer[6]);

	/* Newline vom Namen entfernen */
	opponentplayer[strlen(opponentplayer) - 1] = '\0';

	/* Namen des Gegenspielers ausgeben */	
	printf("Dein Gegenspieler nennt sich: %s.", opponentplayer);	

	/* Warten auf Anzahl der Runden */
	waitforserverreply(sd, 0, buffer);

	/* Auf Fehler überprüfen */
	if (strncasecmp(buffer, "runden: ", 6) !=  0) {
		perror("Runden");	
		ende(-1);
	}

	/* mit "OK" bestaetigen */
	ok(sd);

	/* Speichern der Rundenzahl */
	if (sscanf(buffer, "%*s %d", &gamerounds) < 1) {
		perror("not rounds");
		ende(-1);
	}

	/* dem Spieler die Rundenanzahl mitteilen */
	printf("Es sind maximal %d Runden vereinbart.\n\n", gamerounds);	

	/* Runden beginnt */
	while(1) {
		/* Geheimzahl einlesen */
		printf("Gib deine Geheimzahl ein (4 unterschiedliche Ziffern): ");	
		while(1) {

			fd_set bereit;

			FD_ZERO(&bereit);
			FD_SET(0, &bereit);
			FD_SET(sd, &bereit);

			rc = select(MAX(0, sd) + 1, &bereit, NULL, NULL, NULL);
			if (rc < 0) {
				if (errno == EINTR) 
					continue;
				perror("select");
				ende(-1);
			}

			if (rc == 0)
				continue;

			if (FD_ISSET(sd, &bereit)) {
				if (empfangen(sd, buffer, MAXLEN) <= 0) {
					perror("empfangen");
					ende(-1);
				}
				continue;		
			}

			if (FD_ISSET(0, &bereit)) {
				rc = readline(0, secret, MAXLEN);
				if (rc < 0) {
					perror("readline");
					ende(-1);
				}
				*(secret+rc) = '\0';
				
				/* Eingelesenen String auf korrekte Zahl prüfem */
				err = checknumber(secret);				
				if (err == 1) {
					printf("Gib deine Geheimzahl ein (4 unterschiedliche Ziffern): ");	
					err = 0;
					/* Bei Fehler neu einlesen */
					continue;
				}
				
				/* Geheimzahl senden */
				str_senden(sd, "GEHEIMZAHL: ", secret, rc);

				/* Einles Schleife beenden */
				break;
			}
		} /* Geheimzahl-Einlesen-Schleife Ende */

		waitforserverreply(sd, 1, buffer);
		if (strcasecmp(buffer, "ok\n") !=  0) {
			perror("ok");	
			ende(-1);
		}
		
		/* Warte auf Nachricht um Raterunde zu starten */
		waitforserverreply(sd, 0, buffer);
		if (strcasecmp(buffer, "start\n") !=  0) {
			perror("start");	
			ende(-1);
		}

		/* "Start" mit "OK" bestaetigen */
		ok(sd);

		printf("Es kann los gehen!\n");
		printf("==================\n\n");

		/* Raterunde beginnt */
		if (!runde(sd))
			break;
	} /* Spiel wird beendet wenn runde nicht 1 zurückgibt */

	/* Mastermindfunktion Ende -> zurück zur Main-Funktion -> Programmende */
	return;
}
コード例 #7
0
static int CvPoint3D64f_nz(lua_State *L)
{
  const char f_msg[]=CVPOINT3D64F_NAME".z=num";
  checkCvPoint3D64f(L,1)->z=(float)checknumber(L,3);
return 0;
}
コード例 #8
0
int main(){
	int i;
	int play;
	int anser[4];
	char input[6];
	int hit = 0, blow = 0;

	do{
		srand ((unsigned) time (NULL));

		printf("\n------------- Hit and Blow -------------\n\n");

		make4number(&anser[0]);

		for(play = 0 ; play < 10 ; ++play){
			int Flag = 0;

			printf("%d", play + 1);
			switch(play){
				case 0:
					printf("st "); break;
				case 1:
				case 2:
					printf("nd "); break;
				default:
					printf("th ");
			}
			printf("try.\n");

			do{
				printf("Number:");
				input_str(&input[0], sizeof(input));
				if(0 == checknumber(input)){
					Flag = 1;
				}else if (1 == checknumber(input)){
					printf("Error : number of digits is not correct.\n");
				}else if(2 == checknumber(input)){
					printf("Error: contains non-numeric.\n");
				}else if (3 == checknumber(input)){
					printf("Error: contains the same number.\n");
				}
			}while (Flag == 0);
			judgeHB(anser, input, &hit, &blow);
			if(4 == hit){
				printf("congratulations!\nIt is a success in the %d", play);
				switch(play){
					case 1:
						printf("st."); break;
					case 2:
					case 3:
						printf("nd."); break;
					default:
						printf("th.");
				}
				break;
			}else{
				printHB(hit, blow);
			}
			hit = 0;
			blow = 0;
		}
		if (play == 10){
			printf("That's too bad.\n");
		for(i = 0 ; i < 4 ; ++i){
			printf("%d", anser[i]);
		}
		}
		puts ("");
	}while(0 ==Retry());
	return 0;
}
コード例 #9
0
static int CvMoments_nm30(lua_State *L)
{
  const char f_msg[]=CVMOMENTS_NAME".m30=num";
  checkCvMoments(L,1)->m30=checknumber(L,3);
return 0;
}
コード例 #10
0
static int CvMoments_ninv_sqrt_m00(lua_State *L)
{
  const char f_msg[]=CVMOMENTS_NAME".inv_sqrt_m00=num";
  checkCvMoments(L,1)->inv_sqrt_m00=checknumber(L,3);
return 0;
}
コード例 #11
0
static int CvSURFPoint_nhessian(lua_State *L)
{
  const char f_msg[]=CVSURFPOINT_NAME".hessian=num";
  checkCvSURFPoint(L,1)->hessian=(float)checknumber(L,3);
return 0;
}
コード例 #12
0
static int CvSURFPoint_ndir(lua_State *L)
{
  const char f_msg[]=CVSURFPOINT_NAME".dir=num";
  checkCvSURFPoint(L,1)->dir=(float)checknumber(L,3);
return 0;
}