2024年【C语言】自制简易五子棋(源码分享)_五子棋c语言最简单代码,2024年最新996页阿里C C++面试真题解析火爆全网

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

                         "[[ ]]",
                         "[[ ]]",
                         "[[ ]]",
                         "[[ ]]",
                         "[[ ]]",
                         "[[ ]]",
                         "[[ ]]",
                         "[[ ]]",
                         "[[ ]]",
                         "[[==================================]]",
                         "[====================================]"
                      };
for(i = 0; i < 22; i++)
    puts(map[i]);

x = 10,y = 18;
temp = map[x][y];           //temp是关键:保存光标所指坐标上一次的状态 ,方便恢复与新建状态 

while(num)                 //主程序:实现移动光标并指定坐标下棋 
{                          //保证不出界,且保证已下棋位置不会再次被覆盖 
    if(num % 2 != 0){
    	turn = 'x';
		printf("轮到 %c 下了\n这是你的第 %d 步棋\n",turn,(num + 1) / 2); 
	}
    else{
    	turn = 'o';
    	printf("这是 %c 的回合\n这是你的第 %d 步棋\n",turn,num /2);
	} 
	if(num > 544)
		return 0;
	else if(num > 540)
	 	printf("有的惊喜就是在你也想不到的的情况下发生"); 
	else if( num > 500)
    	printf("填满有惊喜喔") ;
	else if( num > 200)
    	printf("你可以填满棋盘的"); 
	else if( num > 150)
    	printf("你眼睛不花吗") ;
	else if( num > 100)
    	printf("还没有分出胜负ne ") ;	
	else if( num > 80) 
    	printf("距离成功不远了") ; 
	else if( num > 50)
    	printf("看来你还能继续下") ;
	else if( num > 30)
    	printf("你还能清楚的看清棋盘吗?") ;
	
	
	else if( num > 20)
    	printf("快接近胜利了吗?\n") ;
	
	

	
    
     
	
	   
    ch = getch();
    if ( ch == 's')         //下移 
    {
        if( map[x+1][y]!= '=' &&map[x+1][y]!= ']' &&map[x+1][y]!= '[')
        {
            map[x][y] = temp;
            x++;
            temp = map[x][y];
            map[x][y] = turn;
        }
    }
    else if ( ch == 'a')    //左移 
    {
        if( map[x][y-1]!= '=' && map[x][y-1]!= '[' && map[x][y-1]!= ']')
        {
            map[x][y] = temp;
            y--;
            temp = map[x][y];
            map[x][y] = turn;
        }
    }
    else if ( ch == 'w')    //上移 
    {
        if(  map[x-1][y]!= '=' && map[x-1][y]!= '[' &&  map[x-1][y]!=  ']')
        {
            map[x][y] = temp;
            x--;
            temp = map[x][y];
            map[x][y] = turn;
        }
    }
    else if ( ch == 'd')    //右移 
    {
        if( map[x][y+1]!= '=' &&map[x][y+1]!= '[' &&map[x][y+1]!= ']')
        {
            map[x][y] =temp;
            y++;
            temp = map[x][y];
            map[x][y] = turn;
        }
    }
    else if( ch == 'l' || ch =='L')   //确认下棋后改变坐标状态,并且判断是否伍连。 
    {
        if(temp == ' ')
        {
            map[x][y] = turn;
            temp = map[x][y];
            num++;
            
            
            check=1;                                //判断水平方向 
            {
                p=x;
                q=y;
                q--;
                
                if( q >=0&& q<  38)
                while(q >=0&& q< 38  &&  map[p][q]== turn)//防止数组下标越界
                {
                	check++;
               		q--;
                }  
                p=x;
                q=y;
                q++;
                
                if( q >=0&& q< 38 )
                while(q >=0&& q<  38 &&  map[p][q] == turn)//防止数组下标越界
                {
                	check++;
                	q++;
                } 
                if(check  >= 5 ){
                printf("%c win the game\n按任意键退出游戏",turn);
                return 0;}
                                                   
            }
            
            
            check=1;								//判断垂直方向 
            {
                p=x;
                q=y;
                p--;
                
                if( p >=0&& p<= 22)
                    while(p >=0&& p<= 22  &&  map[p][q]== turn)//防止数组下标越界
                    {
                    	check++;
                   		p--;
                    }  
                p=x;
                q=y;
                p++;
                
                if( p >=0&& p<= 22 )
                    while(p >=0&& p<=  22 &&  map[p][q] == turn)//防止数组下标越界
                    {
                    	check++;
                    	p++;
                    } 
                if(check  >= 5 ){
                printf("%c win the game\n按任意键退出游戏",turn);
                return 0;}
            }
            check=1;                                //判断左斜方向 
            {
                p=x;
                q=y;
                q--;
                p--; 
                
                if( q >=0&& q<  38 && p >=0 && p <= 22)
                while(q >=0&& q<  38 && p >=0 && p <= 22 &&  map[p][q]== turn)//防止数组下标越界
                {
                	check++;
               		q--;
               		p--;
                }  
                p=x;

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值