我们有C语言的大作业,玩小游戏,保存分数。专家如何保存数据?急!!!!

# include & ltstdio.h & gt

typedef字符国际象棋[10];

typedef int temparr[10];

国际象棋比赛;

temparr brr

int数,suc,n3,c3,n2,c2,n1,c 1;

char ch

无效数据(国际象棋a)

{

a[1]= ' 1 ';a[2]= ' 2 ';a[3]= ' 3 ';

a[4]= ' 4 ';a[5]= ' 5 ';a[6]= ' 6 ';

a[7]= ' 7 ';a[8]= ' 8 ';a[9]= ' 9 ';

}

空显示(国际象棋a)

{

printf(" \ n ");printf(" \ n ");

printf(" %c | %c | %c\n ",a[1],a[2],a[3]);

printf("-\ n ");

printf(" %c | %c | %c\n ",a[4],a[5],a[6]);

printf("-\ n ");

printf(" %c | %c | %c\n ",a[7],a[8],a[9]);

printf(" \ n ");printf(" \ n ");

}

int arrfull()

{

int I;

int arrf = 0;

for(I = 1;我& lt=9;i++)

if(i==arr[i]-48)

arrf = 1;

返回arrf

}

无效cn(内部行)

{

开关(线路)

{

情况0:C3 = C3+1;打破;

案例1:N2 = N2+1;打破;

情况二:C2 = C2+1;打破;

案例三:n 1 = n 1+1;打破;

情况四:c 1 = c 1+1;打破;

情况5:n3 = n3+1;打破;

}

}

int linenum(字符a,字符b,字符c)

{

int ln = 6;

if((a = = ' X ')& amp;& amp(b = = ' X ')& amp;& amp(c=='X '))

ln = 0;

if(((a = = ' O ')& amp;& amp(b = = ' O ')& amp;& amp(c!= ' O ')| |((a = = ' O ')& amp;& amp(b!= ' O ')& amp;& amp(c = = ' O ')| |((a!= ' O ')& amp;& amp(b = = ' O ')& amp;& amp(c=='O '))

ln = 1;

if(((a = = ' X ')& amp;& amp(b = = ' X ')& amp;& amp(c!= ' X ')| |((a = = ' X ')& amp;& amp(b!= ' X ')& amp;& amp(c = = ' X ')| |((a!= ' X ')& amp;& amp(b = = ' X ')& amp;& amp(c=='X '))

ln = 2;

if(((a = = ' O ')& amp;& amp(b!= ' O ')& amp;& amp(c!= ' O ')| |((a!= ' O ')& amp;& amp(b = = ' O ')& amp;& amp(c!= ' O ')| |((a!= ' O ')& amp;& amp(b!= ' O ')& amp;& amp(c=='O '))

ln = 3;

if(((a = = ' X ')& amp;& amp(b!= ' X ')& amp;& amp(c!= ' x ')| |((a!= ' X ')& amp;& amp(b = = ' X ')& amp;& amp(c!= ' X ')| |((a!= ' X ')& amp;& amp(b!= ' X ')& amp;& amp(c=='X '))

ln = 4;

if((a = = ' O ')& amp;& amp(b = = ' O ')& amp;& amp(c=='O '))

ln = 5;

返回ln;

}

int maxbrr(int *br)

{

int temp,I,MB;

temp =-888;

for(I = 1;我& lt=9;i++)

{

if(temp & lt;=br[i])

{

temp = br[I];

MB = I;

}

}

返回MB;

}

Void manstep() //人棋处理模块

{

int j;

显示(arr);

If(arrfull()) //如果棋盘上有下棋的空间,给人一招。

{

Printf("你想走哪一步?请输入一个数字(1-9):\ n ");

scanf("%d ",& ampj);

而((j & lt1)| |(j & gt;9)||(j!=arr[j]-48))

{

Printf("对不起,您输入的数字不正确,请重新输入(1-9):\ n ");

scanf("%d ",& ampj);

}

arr[j]= ' O ';

C3 = 0;N2 = 0;C2 = 0;n 1 = 0;c 1 = 0;

number=linenum(arr[1],arr[2],arr[3]);cn(数字);

number=linenum(arr[4],arr[5],arr[6]);cn(数字);

number=linenum(arr[7],arr[8],arr[9]);cn(数字);

number=linenum(arr[1],arr[4],arr[7]);cn(数字);

number=linenum(arr[2],arr[5],arr[8]);cn(数字);

number=linenum(arr[3],arr[6],arr[9]);cn(数字);

number=linenum(arr[1],arr[5],arr[9]);cn(数字);

number=linenum(arr[3],arr[5],arr[7]);cn(数字);

如果(n3!=0) //你赢了。

{

显示(arr);

printf(" \ n ");

Printf("恭喜你赢了!!!\ n ");

退出(0);

suc = 0;

}

}

}

Void computerstep() //计算机象棋处理模块

{

int I;

If(arrfull()) //如果棋盘上还有下棋的空间,计算机就走棋。

{

for(I = 1;我& lt=9;I++) //计算每一步可以走的棋。

{

if(i==arr[i]-48)

{

C3 = 0;N2 = 0;C2 = 0;n 1 = 0;c 1 = 0;

arr[I]= ' X ';

number=linenum(arr[1],arr[2],arr[3]);cn(数字);

number=linenum(arr[4],arr[5],arr[6]);cn(数字);

number=linenum(arr[7],arr[8],arr[9]);cn(数字);

number=linenum(arr[1],arr[4],arr[7]);cn(数字);

number=linenum(arr[2],arr[5],arr[8]);cn(数字);

number=linenum(arr[3],arr[6],arr[9]);cn(数字);

number=linenum(arr[1],arr[5],arr[9]);cn(数字);

number=linenum(arr[3],arr[5],arr[7]);cn(数字);

brr[I]=(128 * C3-63 * N2+31 * C2-15 * n 1+7 * c 1);//计算这一步的权重。

arr[I]= I+48;

}

其他

brr[I]=-999;

}

arr[maxbrr(brr)]= ' X ';//确定计算机走哪一步,权重最大的那一步。

C3 = 0;N2 = 0;C2 = 0;n 1 = 0;c 1 = 0;

number=linenum(arr[1],arr[2],arr[3]);cn(数字);

number=linenum(arr[4],arr[5],arr[6]);cn(数字);

number=linenum(arr[7],arr[8],arr[9]);cn(数字);

number=linenum(arr[1],arr[4],arr[7]);cn(数字);

number=linenum(arr[2],arr[5],arr[8]);cn(数字);

number=linenum(arr[3],arr[6],arr[9]);cn(数字);

number=linenum(arr[1],arr[5],arr[9]);cn(数字);

number=linenum(arr[3],arr[5],arr[7]);cn(数字);

如果(c3!=0) //电脑赢了。

{

显示(arr);

printf(" \ n ");

Printf("电脑赢了!!!\ n ");

退出(0);

suc = 0;

}

}

其他

suc = 0;

}

主()

{

Printf("游戏规则:\ n棋盘格式如图,人和计算机在棋盘上交替走棋\ n ");

Printf("约定计算机用符号X,人用符号O \ n ");

Printf("谁先做出一条水平线或垂直线或对角线有三个自己的符号,谁就赢了!"" );

inardata(arr);//棋盘坐标号

显示(arr);//显示初始棋盘。

suc = 1;

Printf("请选择是否要先走?(是/否)\ n ");

scanf("%c ",& ampch);

If((ch=='y')||(ch=='Y')) //输入Y,表示人先动。

{

while(吮吸)

{

man step();

computerstep();

}

显示(arr);

}

Else //电脑先动。

{

while(吮吸)

{

computerstep();

如果(suc)

man step();

}

}

Printf("\n draw!\ n ");

}

这是一个小游戏,你运行它看看,我还有很多其他的。