c语言版五指棋,linux终端运行

这篇博客介绍了如何使用C语言在Linux终端上编写一个五指棋游戏。主要内容包括初始化棋盘、显示棋盘、判断输赢、延迟函数和游戏流程。通过输入棋盘大小开始游戏,玩家轮流在指定位置落子,当一方连成五子时宣告胜利。


#include<stdio.h>
#include<stdlib.h>
int length;
int map[100][100];
int player=1;

//打印初始的棋盘
void init()
{
 int x,y;
 for(x=0;x<length;x++)
 { 
  for(y=0;y<length;y++)
   if(map[x][y]==0)
    printf(".  ");
  printf("\n");
 } 
}

//打印下棋过程中的棋盘
void showmap()
{
 int x,y;
 for(x=0;x<length;x++)
 {
   for(y=0;y<length;y++)
   {
     if(map[x][y]==0)
     printf(".  ");
    else if(map[x][y]==1)
    printf("O  ");
    else
    printf("X  ");
  } 
   printf("\n");
 }  
}


//判断输赢
int check()

 int i,j;
 //横
 for(i=0;i<length;i++)
  for(j=0;j<length-4;j++)
   if((map[i][j]&map[i][j+1]&map[i][j+2]&map[i][j+3]\
   &map[i][j+4])==player)
    return player;
 //竖
 for(i=0;i<length-4;i++)
  for(j=0;j<length;j++)
   if((map[i][j]&map[i+1][j]&map[i+2][j]&map[i+3][j]\
   &map[i+4][j])==player)
    return player;
 //斜 '\'
 for(i=0;i<length-4;i++)
  for(j=0;j<length-4;j++)
   if((map[i][j]&map[i+1][j+1]&map[i+2][j+2]&map[i+3]\
   [j+3]&map[i+4][j+4])==player)
    return player;
 //斜 '/'
 for(i=0;i<length-4;i++)
  for(j=length-1;j>0;j--)
   if((map[i][j]&map[i+1][j-1]&map[i+2][j-2]&map[i+3]\
   [j-3]&map[i+4][j-4])==player)
    return player;
 return 0; 
}


void delay()
{
 int i,j;
 for(i=0;i<10000;i++)
  for(j=0;j<10000;j++);
}

void play()
{
 int x,y,i,j,flag;
 for(i=0;i<length*length;i++)
 {
  //保证每次放置的棋子位置上之前都没放过
  do{
   printf("请%d号选手下棋:",player);
   scanf("%d%d",&x,&y);
  }while(map[x][y]!=0||x<0||x>length||y<0||y>length);
  map[x][y]=player;
  system("clear");
  showmap();
  flag=check();
  if(flag==player)
  { 
   sleep(2);
   for(j=0;j<5;j++)
   {
    system("clear");
    delay();
    printf("玩家%d赢了!!!\n",player);
    delay();
   }
   break; 
  }
  player=3-player; 
 }
}


int main()
{
 printf("请输入棋盘的大小:");
 scanf("%d",&length);
 system("clear");
 init();
 play();
 //check();
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值