一个五子棋代码
Hello,大家好,刚学完C写了一个五子棋,目前是1.0版本有不足之处还请指正
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define length 15//棋盘的大小
#define width 15
int x=length/2,y=width/2;//光标的起始位置
int k=1;//k是用来判断玩家是谁,k为奇数为玩家一,k为偶数为玩家2
char chessboard={0};//棋盘
char stus;//玩家名字
int n=0;//n=0为正常棋盘,n=1则为黑子,n=2则为白子
int main(void)
{
void start();//棋盘界面
void accessment();//判断谁先五子
void welcome();//开始界面
void wanjia();//谁在下棋
char choice;
char ch;//操作命令
SetConsoleTitle("五子棋");//设置标题
system("color 0A");//背景颜色
welcome();
system("mode con cols=45 lines=20");//控制台大小
system("color E0");
while(1)//死循环
{
system("cls");//清屏
start();
wanjia();
accessment();
system("cls");
start();
wanjia();
ch=getch();
switch(ch)//扫描键盘码
{
case 27://ESC
exit(0);
break;
case 72://上
if(x==0)
x=length;
x--;
break;
case 80://下
if(x==length-1)
x=-1;
x++;
break;
case 77://右
if(y==width-1)
y=-1;
y++;
break;
case 75://左
if(y==0)
y=width;
y--;
break;
case 32://空格
if(chessboard==0)//判断这个位置没有落子
{
n++;
k++;
if(n==1)
chessboard=1;
if(n==2)
{
chessboard=2;
n=0;
}
}
else//如果落过子
{
system("cls");
system("color 74");
printf("不许耍赖!\n");
system("pause");
fflush(stdin);//清空键盘缓冲区
printf("还要玩吗(Y/N):");
scanf("%c",&choice);
if(choice=='Y'||choice=='y')
{
system("color E0");
}
else if(choice=='N'||choice=='n')
{
system("pause");
exit(0);
}
else
{
printf("gg!\n");
system("pause");
exit(0);
}
}
}
}
return 0;
}
void start()
{
int i,j;
for(i=0;i<length;i++)
{
for(j=0;j<width;j++)
{
if((i==x)&&(j==y))
printf("╬");
else if(chessboard==1)
printf("●");
else if(chessboard==2)
printf("○");
else if(i==0&&j==0)
printf("┌");
else if(i==0&&j==width-1)
printf("┐");
else if(i==0)
printf("┬");
else if(i==length-1&&j==0)
printf("└");
else if(j==0)
printf("├");
else if(i==length-1&&j==width-1)
printf("┘");
else if(i==length-1)
printf("┴");
else if(j==width-1)
printf("┤");
else
printf("┼");
}
printf("\n");
}
}
void accessment()
{
int i,j;
for(i=0;i<length;i++)//判断横着的
for(j=0;j+4<width;j++)
{
if(chessboard==1&&chessboard==1&&chessboard==1&&chessboard==1&&chessboard==1)
{
system("cls");
printf("黑子胜利\n");
system("pause");
for(i=0;i<length;i++)
for(j=0;j<width;j++)
chessboard=0;
n=0;
k=1;
}
if(chessboard==2&&chessboard==2&&chessboard==2&&chessboard==2&&chessboard==2)
{
system("cls");
printf("白子胜利\n");
system("pause");
for(i=0;i<length;i++)
for(j=0;j<width;j++)
chessboard=0;
n=0;
k=1;
}
}
for(i=0;i+4<length;i++)//判断竖着的
for(j=0;j<width;j++)
{
if(chessboard==1&&chessboard==1&&chessboard==1&&chessboard==1&&chessboard==1)
{
system("cls");
printf("黑子胜利\n");
system("pause");
for(i=0;i<length;i++)
for(j=0;j<width;j++)
chessboard=0;
n=0;
k=1;
}
if(chessboard==2&&chessboard==2&&chessboard==2&&chessboard==2&&chessboard==2)
{
system("cls");
printf("白子胜利\n");
system("pause");
for(i=0;i<length;i++)
for(j=0;j<width;j++)
chessboard=0;
n=0;
k=1;
}
}
//判断斜着的
for(i=0;i<length;i++)
for(j=0;j<width;j++)
{
//左上角\型
if(chessboard==1&&chessboard==1&&chessboard==1&&chessboard==1&&chessboard==1)
{
system("cls");
printf("黑子胜利\n");
system("pause");
for(i=0;i<length;i++)
for(j=0;j<width;j++)
chessboard=0;
n=0;
k=1;
}
//左下角/型
if(chessboard==1&&chessboard==1&&chessboard==1&&chessboard==1&&chessboard==1)
{
system("cls");
printf("黑子胜利\n");
system("pause");
for(i=0;i<length;i++)
for(j=0;j<width;j++)
chessboard=0;
n=0;
k=1;
}
//左上角\型
if(chessboard==2&&chessboard==2&&chessboard==2&&chessboard==2&&chessboard==2)
{
system("cls");
printf("白子胜利\n");
system("pause");
for(i=0;i<length;i++)
for(j=0;j<width;j++)
chessboard=0;
n=0;
k=1;
}
//左下角/型
if(chessboard==2&&chessboard==2&&chessboard==2&&chessboard==2&&chessboard==2)
{
system("cls");
printf("白子胜利\n");
system("pause");
for(i=0;i<length;i++)
for(j=0;j<width;j++)
chessboard=0;
n=0;
k=1;
}
}
}
void wanjia()
{
if(k%2!=0)//k是奇数
printf("△玩家%s正在下棋\n",stus);
else//k是偶数
printf("▽玩家%s正在下棋\n",stus);
}
void welcome()
{
int help;
printf("*************************************************\n");
printf("******欢迎来到史上最牛逼的五子棋游戏系统v1.0*****\n");
printf("***********先给自己起个帅气逼人的名字吧!*********\n");
printf("*************************************************\n");
printf("玩家1:");
gets(stus);
printf("玩家2:");
gets(stus);
printf("需要查看帮助吗(Y/N):");
help=getchar();
if(help=='Y'||help=='y')
{
printf("**********************************************\n");
printf("************1.移动方向键控制棋子的位置********\n");
printf("************2.按空格键下子********************\n");
printf("************3.按ESC退出***********************\n");
printf("************4.按空格正式开始******************\n");
printf("**********************************************\n");
}
system("pause");
printf("祝您游玩愉快!");
} 在图书馆写了快一天,大家多支持下 C学了多久呀
Chen-tf 发表于 2019-12-29 19:35
C学了多久呀
3个多月了 没人看吗
页:
[1]