五子棋c语言代码光标,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#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语言写的鼠标操作的五子棋游戏,欢迎观赏!相关推荐
- c语言五子棋光标,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...
- c语言鼠标下棋,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...
- 五子棋 鼠标 C语言,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...
- c语言五子棋键盘操控,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...
- dw中HTML编写五子棋游戏,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "string.h" #include #include #include in ...
- C语言代码注释 - C语言零基础入门教程
目录 方法一:使用// 方法二:使用/* */ 方法三:使用宏 #if #else #end 猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 ...
- c语言代码表白_C语言学习日记(9)——用C语言写一个爱心吧
总羡慕别人的勇气,喜欢一个人就大胆表白.玫瑰和蜡烛围成的美丽的心形,就像此时主角的内心,浪漫而又炽热,不管成功与否,都一样美好. 爱的符号 而像小猫这种不善于表达的人,平时除了埋头看书,看上去好像没有 ...
- 简单贪吃蛇c语言代码,一个C语言写简单贪吃蛇源代码.doc
一个C语言写简单贪吃蛇源代码 #include #include #include #include #include #include int grade=5,point=0,life=3; voi ...
- 参数控制c语言代码走向,C语言可变参数完全解读
本文转自:http://www.cnblogs.com/wangyonghui/archive/2010/07/12/1776068.html 一.是什么 我们学习C语言时最经常使用printf()函 ...
- 健康调查系统c语言代码大全,C语言问卷调查(示例代码)
你对自己的未来有什么规划?做了哪些准备?努力做一名程序员,课余时间看看代码. 你认为什么是学习?学习有什么用?现在学习动力如何?为什么?学习可以了解许多东西.现在学习动力不足.因为懒. 你感觉自己什么 ...
最新文章
- IntelliJ IDEA详细配置
- JavaScript Date 对象
- VIM 高校实用配置实践
- 16、canvas性能优化建议
- Redis与Jedis排序
- MATLAB imshow之后在四周加上边框
- Thanos 简介和实践
- jupyter 功能插件
- mybatisplus多表关联查询_Excel、MySQL、PowerBI、Python来告诉你 数据关联与联合不一样
- Python 爬取 3 万条游戏评分数据,原来程序员最爱玩的游戏竟然是......
- using + .net 中的别名
- C语言|编程|判断素数
- php数据库根据手机号获取归属地,PHP通过API获取手机号码归属地
- 贯穿时域与频域的方法——傅立叶分析(直观理解+Matlab实现)
- 必备24个宝藏工具,赶紧收藏,在家做自媒体8天收益4100
- cc2530单片机的内核是什么_ZigBee技术开发:CC2530单片机原理及应用简介,目录书摘...
- 网站服务器记录攻击日志ctf,通过网站日志分析sql注入攻击的痕迹
- CODOSYS之结构化文本(ST)—— 初级篇(二)简介与基本概念
- BZOJ4466 [Jsoi2013]超立方体
- CISC 与 RISC 对比