我们有C语言的大作业,玩小游戏,保存分数。专家如何保存数据?急!!!!
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 ");
}
这是一个小游戏,你运行它看看,我还有很多其他的。