Не пойму почему ругается си++.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Tofy, 19 Mar 2011.

  1. Tofy

    Tofy New Member

    Joined:
    21 Nov 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    Вот с книжки переписал код игры крестики нолики.
    вопрос что вижуалу не нравится в строке init_matrix();.и что она означает?

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    char matrix [3][3];
    char check(void);
    void intit_matrix(void);
    void get_player_move(void);
    void get_computer_move(void);
    void disp_matrix(void);
    
    int main(void)
    {
    	char done;
    	printf("Это - игра в крестики нолики./n");
    	printf("Вы будете играть с компьютером./n");
    
    	done =' ';
    	[COLOR=Yellow]init_matrix();[/COLOR]
    	do {
    		disp_matrix();
    	get_player_move ();
    	done = check ();
    	if(done!= ' ') break;
    	get_computer_move();
    	done=check();
    	}
    	while (done== ' ');
    	if (done=='X') printf("Вы победили!/n");
    	else printf("Я выйграл!!!/n");
    	disp_matrix();
    	return 0;
    }
    
    void init_matrix(void)
    {
    	int i,j;
    	for (i=0;i<3;i++)
    		for (j=0;j<3;j++) matrix[i][j]= ' ';
    }
    void get_player_move(void){
    	int x,y;
    	printf("Введите кординаты Х,У ");
    	scanf("%d%*c%d",&x,&y);
    	x--;y--;
    	if(matrix[x][y]!=' '){
    		printf("Неверный ход,попытайся еще.\n");
    		get_player_move();
    	}
    	else matrix[x][y]='X';}
    void get_computer_move(void){
    	int i,j;
    	for (i=0;i<3;i++){
    		for(j=0;j<3;j++){
    			if (matrix[i][j]==' ')break;
    			if(matrix[i][j]==' ')break;}
    	}
    	if (i*j==9) {
    		printf("Ничья\n");
    		exit(0);}
    	else matrix[i][j]='O';
    }
    void disp_matrix(void)
    {
    	int t;
    	for(t=0;t<3;t++){
    		printf("%c|%c|%c",matrix[t][0],matrix[t][1],matrix[t][2]);
    		if(t!=2) printf("\n---|---|---\n");
    	}
    	printf("\n");
    }
    char check(void)
    {
    	int i;
    	for(i=0;i<3;i++)
    		if(matrix[i][0]==matrix[i][1]&&
    			matrix[i][0]==matrix[i][2]) return matrix[i][0];
    	for(i=0;i<3;i++)
    		if(matrix[0][i]==matrix[1][i]&&
    			matrix[0][i]==matrix[2][i]) return matrix[0][i];
    	if(matrix[0][0]==matrix[1][1]&&
    		matrix[1][1]==matrix[2][2])
    		return matrix[0][0];
    	if(matrix[0][2]==matrix[1][1]&&
    		matrix[1][1]==matrix[2][0])
    		return matrix[0][2];
    	return ' ';
    }
    
     
    #1 Tofy, 19 Mar 2011
    Last edited by a moderator: 20 Mar 2011
  2. fluffylion

    fluffylion Member

    Joined:
    22 Feb 2010
    Messages:
    55
    Likes Received:
    10
    Reputations:
    0
    void intit_matrix(void);
    init_matrix();
    найди одно отличие )))

    init_matrix(); означает вызов функции void init_matrix(void)
     
  3. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    В С++ не шарю, Си начали учить в коледже.
    Строка
    void intit_matrix(void);
    мб поправить на
    void init_matrix(void);

    Может поможет.
    Прошу не пинать)))

    UPD опоздал ))
     
  4. Tofy

    Tofy New Member

    Joined:
    21 Nov 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    Пасиб))не заметил.сейчас с кодировкой буду разбираться..каракули