'checkPiece' : 関数に2個の引数は指定できません。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
snake

'checkPiece' : 関数に2個の引数は指定できません。

#1

投稿記事 by snake » 10年前

プログラミング初心者です。

一回は自分でプログラムを書いてみようと思い自分の知識だけで五目並べをC言語で作っていました。
そこで、よくわからないエラーが出てしまったのですが、どうも解決できずにここに来た次第です。

これがソースです↓↓

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

#define BOARDSIZE 10
#define EMPTY 0
#define BLACK 1
#define WHITE 2

int board[BOARDSIZE][BOARDSIZE];
char piece[] = {'-','X','O'};
int stop,count = 1;

void setBoard();
void showBoard();
void inputKey();
void putPiece();
void checkPiece();

int main ()
{
printf("黒の番です\n");
setBoard();
showBoard();
while(1){
inputKey();
showBoard();
stop++;
if(stop == 102){printf("error\n");break;}
}
return 0;
}

void setBoard ()
{
int i,j;
if(count == 1){
for(i = 0;i < BOARDSIZE;i++){
for(j = 0;j < BOARDSIZE;j++){
board[j] = EMPTY;
}
}
}
}

void putPiece(int y,int x)
{
int check;
check = count % 2; //偶数か奇数か判定
if(y == 0 && x == 0){printf("終了します。\n");getch();exit(0);}
if(board[y][x]==EMPTY){
count++;
if(check == 0){
printf("白の番です\n");//奇数
board[y][x] = BLACK;
}else{
printf("黒の番です\n");//偶数
board[y][x] = WHITE;
}
}else{
printf("そこには置けません\n");
inputKey();
}
checkPiece(y,x);
}

void showBoard() //盤面を表示
{
int y,x;

printf(" 1 2 3 4 5 6 7 8 910\n");
for(y=1;y<BOARDSIZE+1;y++){
printf("%2d",y);
for(x=0;x<BOARDSIZE;x++){
printf(" %c",piece[board[y][x]]);
}
printf("\n");
}
}

void inputKey()
{
int y,x;
printf(">");
scanf("%d %d",&y,&x);
putPiece(y,x);
}

void checkPiece(int y,int x)
{
printf("%d %d",y,x);
}

checkPieceを作っていたときにできたことなのでcheckPiece関数はまだ作り途中です。

そこで、このエラーの解消方法と五目並べの五連の判定の方法も教えてくれれば助かります。

余談なのですが、僕はいろいろな言語に挑戦してみているのですがひとつの言語を完璧にしてから次のほかの言語へ挑戦したほうが良いのでしょうか?それともいろいろな言語を触れてもいいのでしょうか。
いろいろな言語を触れる中で言語がごちゃごちゃにならないものなのでしょうか。

本題とはなれて長々と質問して申し訳ありません。回答お願いします。

box
記事: 2002
登録日時: 14年前

Re: 'checkPiece' : 関数に2個の引数は指定できません。

#2

投稿記事 by box » 10年前

snake さんが書きました:

コード:

void putPiece();
void checkPiece();
これらのプロトタイプ宣言では引数がないと言っているにもかかわらず、実際には
snake さんが書きました:

コード:

void putPiece(int y,int x)
void checkPiece(int y,int x)
2個の引数があります。
矛盾が起きている、とコンパイラーが言っています。

言語の覚え方については人それぞれだと思います。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 'checkPiece' : 関数に2個の引数は指定できません。

#3

投稿記事 by みけCAT » 10年前

オフトピック
このトピックは二重投稿されています。(誘導)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る