עבור לתוכן

נתקעתי בתוכנית

Featured Replies

פורסם

התחלתי לבנות תוכנית ונתקעתי בה בשגיאות קומפילציה שלא מובנות לי:

#include <iostream.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>

void grid ()
{
const maxx=getmaxx();
const maxy=getmaxy();
line(maxx/3,0,maxx/3,maxy);
line(maxx/3*2,0,maxx/3*2,maxy);
line(maxx,maxy/3,0,maxy/3);
line(maxx,maxy/3*2,0,maxy/3*2);
}

void player (int *num)
{
int maxx=getmaxx();
int maxy=getmaxy();
int i;

settextstyle(SANS_SERIF_FONT, HORIZ_DIR,4);

if(*num==2)
{
setcolor(15);
outtextxy(maxx/2-80,maxy/2-25,"First Player");
delay(2000);
setcolor(0);
outtextxy(maxx/2-80,maxy/2-25,"First Player");
*num=1;
}

if(*num==1)
{
setcolor(15);
outtextxy(maxx/2-100,maxy/2-25,"Second Player");
delay(2000);
setcolor(0);
outtextxy(maxx/2-100,maxy/2-25,"Second Player");
*num=2;
}
}

char win (char xo[])
{
if(xo[0]==xo[1]==xo[2])
return xo[0];

if(xo[3]==xo[4]==xo[5])
return xo[3];

return 'p';
}

void main()
{
int gdriver=DETECT;
int gmode;
int errorcode;
int maxx;
int maxy;
int player=1;
char xo [9];
int check;
int i;

initgraph (&gdriver,&gmode,"d:\\tc\\tc\\bgi");
errorcode=graphresult();
if (errorcode!=grOk)
{
cout<<"Grapic Error";
exit(1);
}

maxx=getmaxx();
maxy=getmaxy();

grid();

for(i=0;i<9;i++)
{
xo[i]=i;
}

check=win(xo[])

[color=Red]while(check!='o' || check!='x'[/color])
{
[color=Red]player(&player);[/color]
}

getch();
closegraph();
}

לשורה הראשונה המודגשת באדום ניתנת השגיאה ()operand excepted in function main ולשנייה ניתנת השגיאה call of nonfunction in function main().

בתודה מראש אור

פורסם

אין אף שורה באדום. אבל ככה מהתבוננות ראשונית :

ה main צריך להיות

int main(int argc, char* argv[])

זה מה שהקומפיילר מחפש, אז פשוט תן לו את זה.

מטי.

פורסם

לקומפיילר של בורלנד זה כנראה לא מה שמפריע.

מה שכן מפריע זו הקריאה

win(xo[])

שגם חסרה אחריה נקודה-פסיק

עוד דבר שמפריע, הוא שיש לך פוקנציה ומשתנה, שניהם עם השם player.

מהפוקנציה הוא כנראה מתעלם, ומתעצבן עליך שאתה מנסה "להריץ" את המשתנה player.

פורסם
  • מחבר

אוקיי בקשר ל-player צדקת אבל לגבי השורה האחרת עדיין יש את אותה שגיאה:


check=win(xo[]);

פורסם

כתבתי "שגם חסרה אחריה נקודה-פסיק"

char []xo זה תחביר של הגדרת משתנה, אין לזה משמעות בקריאה לפונקציה.

הפרמטר בקריאה אמור להיות פשוט xo, לא xo[].

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים