该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include "string.h"

#include

#include

#include

int seat[20][20];

int usr;

struct GotoXy_xy

{

int GotoXy_temp[100][3];

}GotoXy_xy;

void HideCursor(int n) /*隐藏光标*/

{

CONSOLE_CURSOR_INFO cursor_info={1,n};

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

}

void GotoXy(int x,int y) /*将光标移到(x,y)*/

{

HANDLE hout;

COORD coord;

coord.X=x;

coord.Y=y;

hout=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(hout,coord);

}

void init()

{

int i,j;

usr=0;

GotoXy(0,0);

for(i=0;i<20;i++)

{

for(j=0;j<20;j++)

seat[i][j]=0;

}

printf("%2c",' ');

for(i=0;i<20;i++)

printf("%3.2d",i);

printf("\n");

for(i=0;i<20;i++)

{

printf("%3.2d",i);

for(j=0;j<20;j++)

printf("· ");

printf("\n");

}

GotoXy(68,7);

printf("欢迎使用!");

GotoXy(66,9);

printf("五子棋小游戏");

GotoXy(68,11);

printf("by 熊清熹");

GotoXy(68,13);

printf("2015.3.4");

}

int osheng()

{

int i,j;//判断横着的5个是否都相等

for(i=0;i<20;i++)

{

for(j=0;j<16;j++)

if(seat[i][j]==1&&seat[i][j+1]==1&&seat[i][j+2]==1&&seat[i][j+3]==1&&seat[i][j+4]==1)

return 1;

}

for(j=0;j<20;j++)//判断竖着的5个是否都相等

{

for(i=0;i<16;i++)

if(seat[i][j]==1&&seat[i+1][j]==1&&seat[i+2][j]==1&&seat[i+3][j]==1&&seat[i+4][j]==1)

return 1;

}

for(i=0;i<16;i++)//判断左斜5个

{

for(j=0;j<16;j++)

if(seat[i][j]==1&&seat[i+1][j+1]==1&&seat[i+2][j+2]==1&&seat[i+3][j+3]==1&&seat[i+4][j+4]==1)

return 1;

}

for(i=0;i<16;i++)//右斜5个

{

for(j=19;j>3;j--)

if(seat[i][j]==1&&seat[i+1][j-1]==1&&seat[i+2][j-2]==1&&seat[i+3][j-3]==1&&seat[i+4][j-4]==1)

return 1;

}

return 0;

}

int xsheng()

{

int i,j;//判断横着的5个是否都相等

for(i=0;i<20;i++)

{

for(j=0;j<16;j++)

if(seat[i][j]==2&&seat[i][j+1]==2&&seat[i][j+2]==2&&seat[i][j+3]==2&&seat[i][j+4]==2)

return 1;

}

for(j=0;j<20;j++)//判断竖着的5个是否都相等

{

for(i=0;i<16;i++)

if(seat[i][j]==2&&seat[i+1][j]==2&&seat[i+2][j]==2&&seat[i+3][j]==2&&seat[i+4][j]==2)

return 1;

}

for(i=0;i<16;i++)//判断左斜5个

{

for(j=0;j<16;j++)

if(seat[i][j]==2&&seat[i+1][j+1]==2&&seat[i+2][j+2]==2&&seat[i+3][j+3]==2&&seat[i+4][j+4]==2)

return 1;

}

for(i=0;i<16;i++)//右斜5个

{

for(j=19;j>3;j--)

if(seat[i][j]==2&&seat[i+1][j-1]==2&&seat[i+2][j-2]==2&&seat[i+3][j-3]==2&&seat[i+4][j-4]==2)

return 1;

}

return 0;

}

int he()

{

int i,j;

for( i=0;i<20;i++)

for( j=0;j<20;j++)

{

if(seat[i][j]==0)//当棋盘全部子都不是0时才能return 1,即棋盘已下满

return 0;

}

return 1;

}

void clear()

{

int i,j;

GotoXy(0,0);

for(i=0;i<61;i++)

{

for(j=0;j<20;j++)

printf(" ");

}

GotoXy(28,22);

printf(" ");

GotoXy(30,23);

printf(" ");

GotoXy(25,24);

printf(" ");

}

void main()

{

int M_x,M_y,P_x,P_y;

INPUT_RECORD inRec;

DWORD res;

HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄

init();

HideCursor(0);

while(1)

{

if(usr==0)

{

GotoXy(28,22);

printf("当前下棋方:黑方");

}

else if(usr==1)

{

GotoXy(28,22);

printf("当前下棋方:白方");

}

else if(usr==2)

{

GotoXy(28,22);

printf("GAME OVER! ");

GotoXy(25,24);

printf("再来一局 退出");

}

ReadConsoleInput(hInput, &inRec, 1, &res);

if(inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠标左键

{

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),inRec.Event.MouseEvent.dwMousePosition);

M_x=inRec.Event.MouseEvent.dwMousePosition.X;

M_y=inRec.Event.MouseEvent.dwMousePosition.Y;

if(M_x>=3&&M_x<=60&&M_y>=1&&M_y<=20)

{

if(((M_x-3)%3)==0)

{

P_x=(M_x-3)/3;

P_y=M_y-1;

if(usr==0)

{

if(!seat[P_x][P_y])

{

usr=1;

printf("●");

seat[P_x][P_y]=1;

if(osheng())

{

GotoXy(30,23);

printf("黑棋胜!");

usr=2;

}

}

}

else if(usr==1)

{

if(!seat[P_x][P_y])

{

usr=0;

printf("○");

seat[P_x][P_y]=2;

if(xsheng())

{

GotoXy(30,23);

printf("白棋胜!");

usr=2;

}

}

}

if(he())

printf("平局!");

}

}

else if(M_x>=25&&M_x<=31&&M_y==24&&usr==2)

{

clear();

init();

}

else if(M_x>=37&&M_x<=39&&M_y==24&&usr==2)

{

GotoXy(25,9);

exit(1);

}

}

}

}

五子棋c语言代码光标,c语言写的鼠标操作的五子棋游戏,欢迎观赏!相关推荐

  1. c语言五子棋光标,c语言写的鼠标操作的五子棋游戏,欢迎观赏!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...

  2. c语言鼠标下棋,c语言写的鼠标操作的五子棋游戏,欢迎观赏!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...

  3. 五子棋 鼠标 C语言,c语言写的鼠标操作的五子棋游戏,欢迎观赏!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...

  4. c语言五子棋键盘操控,c语言写的鼠标操作的五子棋游戏,欢迎观赏!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...

  5. dw中HTML编写五子棋游戏,c语言写的鼠标操作的五子棋游戏,欢迎观赏!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...

  6. C语言代码注释 - C语言零基础入门教程

    目录 方法一:使用// 方法二:使用/* */ 方法三:使用宏 #if #else #end 猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 ...

  7. c语言代码表白_C语言学习日记(9)——用C语言写一个爱心吧

    总羡慕别人的勇气,喜欢一个人就大胆表白.玫瑰和蜡烛围成的美丽的心形,就像此时主角的内心,浪漫而又炽热,不管成功与否,都一样美好. 爱的符号 而像小猫这种不善于表达的人,平时除了埋头看书,看上去好像没有 ...

  8. 简单贪吃蛇c语言代码,一个C语言写简单贪吃蛇源代码.doc

    一个C语言写简单贪吃蛇源代码 #include #include #include #include #include #include int grade=5,point=0,life=3; voi ...

  9. 参数控制c语言代码走向,C语言可变参数完全解读

    本文转自:http://www.cnblogs.com/wangyonghui/archive/2010/07/12/1776068.html 一.是什么 我们学习C语言时最经常使用printf()函 ...

  10. 健康调查系统c语言代码大全,C语言问卷调查(示例代码)

    你对自己的未来有什么规划?做了哪些准备?努力做一名程序员,课余时间看看代码. 你认为什么是学习?学习有什么用?现在学习动力如何?为什么?学习可以了解许多东西.现在学习动力不足.因为懒. 你感觉自己什么 ...

最新文章

  1. IntelliJ IDEA详细配置
  2. JavaScript Date 对象
  3. VIM 高校实用配置实践
  4. 16、canvas性能优化建议
  5. Redis与Jedis排序
  6. MATLAB imshow之后在四周加上边框
  7. Thanos 简介和实践
  8. jupyter 功能插件
  9. mybatisplus多表关联查询_Excel、MySQL、PowerBI、Python来告诉你 数据关联与联合不一样
  10. Python 爬取 3 万条游戏评分数据,原来程序员最爱玩的游戏竟然是......
  11. using + .net 中的别名
  12. C语言|编程|判断素数
  13. php数据库根据手机号获取归属地,PHP通过API获取手机号码归属地
  14. 贯穿时域与频域的方法——傅立叶分析(直观理解+Matlab实现)
  15. 必备24个宝藏工具,赶紧收藏,在家做自媒体8天收益4100
  16. cc2530单片机的内核是什么_ZigBee技术开发:CC2530单片机原理及应用简介,目录书摘...
  17. 网站服务器记录攻击日志ctf,通过网站日志分析sql注入攻击的痕迹
  18. CODOSYS之结构化文本(ST)—— 初级篇(二)简介与基本概念
  19. BZOJ4466 [Jsoi2013]超立方体
  20. CISC 与 RISC 对比

热门文章

  1. 机器学习与深度学习基本概念 学习笔记
  2. Atitit.异步编程 java .net php python js 的比较
  3. paip.ASP 开发调试大总结
  4. 丹纳赫:全球实业型赋能投资标杆
  5. Rust : utf8与unicode码
  6. (转)国内各家智能投顾比较
  7. 阿里云实时数据加工服务的设计及实践
  8. 再续前缘 阿里云基础设施网络团队ACM SIGCOMM 2021续创佳绩
  9. 进阶之路:Java 日志框架全画传(下)
  10. 如何应对容器和云原生时代的安全挑战?