首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

c语言自创军旗游戏源码.zip

后端 15.64KB 16 需要积分: 1
立即下载

资源介绍:

c语言自创军旗游戏源码.zip
/* 【自学去】网站收集 http://www.zixue7.com */ #include #include #define CHESIZE 40 // 棋盘尺寸,不能随意调整 #define RESETX 170 #define RESETY 350 // 重置原点 typedef enum // 要用到的棋子ID { si, jun, shi, lv, tuan, ying, lian, pai, ban, gong, fei, chao, zha, qi, lei, bian, xian, sheng, shen }CHESSID; typedef enum // 攻击类型 { comatt, preatt, noatt }ATTSTYLE; typedef enum // 当前游戏方和棋子所属方 { blue, red, white }TEAM; typedef enum // 选中与未选中 { alchoose, unchoose }CHOOSESTATE; typedef enum // 区域状态 { unknow, empty, exist }STATE; typedef struct // 坐标 { int x; int y; }COOR; typedef struct // 棋子 { CHESSID id; // 棋子的ID int power; // 棋子的等级 TEAM team; // 所属方 char *image; // 该棋子的图片,考虑到运行问题,本程序用字代替 int scoopc; // 工兵是挖到的地雷数 }CHESS; typedef struct // 区域 { COOR crdld; // 区域的左下坐标 CHESS chess; // 区域的棋子 STATE state; // 区域状态 }AREA; typedef struct // 用户的选择信息 { int i; int j; CHOOSESTATE state; // 选择状态 }CHOOSE; IMAGE image; AREA area[6][6]; // 定义棋盘大小 CHESS datachess[19]; // 几种基本棋子类型 CHOOSE choose; // 用户选择信息 MOUSEMSG mmsg; // 鼠标信息 TEAM user; // 执棋方 int lockchessboard = 0; // 是否锁定棋盘 int i; // 当前鼠标所在区域的坐标 int j; char *str[]={"工","班","排","连","营","团","旅","师","军","司","棋","炸","变","雷","飞","超","升","神","仙"}; void init(); void initchessbute(); // 给初始化棋子基本参数 void initvalue(); void drawboard(); // 画棋盘 void randomarr(int *); // 实现棋的随机排列 void judge(); void getpreij(); // 获得当前鼠标所在区域坐标 int checkij(); // 检查当鼠标所在区域 void open(); // 打开所在区域 int whemove(); // 判断是否能移动 void move(); // 移动 int judgeunknow(); // 检测当前未翻开棋子数 ATTSTYLE wheattack(); // 判断是否能攻击 void kill(); // 杀死当前选择的棋 void killself(); // 自杀 void perishtogether(); // 同归于尽 void getteam(); // 用作改变棋子类型时,对棋子所属方赋值 void userchange(); // 交换执棋方 void judgebunko(); // 判断输赢 void choosearea(); // 选定区域 void cancelchoose(); // 取消选定 void change(); // 变身 void bluewin(); // 蓝方胜利 void redwin(); // 红方胜利 void gamehelp(); // 规则说明 void quit(); // 退出游戏 void peace(); // 和棋 void surrender(); // 投降 void resetchessboard(); // 重置 // 下面几个函数为判断棋子的攻击类型 ATTSTYLE judgegong(); // 判断工兵 ATTSTYLE judgecom(); // 判普通人物 ATTSTYLE judgezha(); // 判断炸弹 void main() // 主函数 { init(); while (true) { mmsg = GetMouseMsg(); getpreij(); if (mmsg.uMsg == WM_LBUTTONDOWN) //单击左键 { judge(); } else if (mmsg.uMsg == WM_RBUTTONDOWN && choose.state==alchoose) //单击右键 { cancelchoose(); } else if (mmsg.uMsg == WM_MBUTTONDOWN && choose.state == alchoose && area[choose.i][choose.j].chess.id != zha) //单击中键 { killself(); cancelchoose(); userchange(); judgebunko(); } } } void init() { initgraph(640, 480); setorigin(RESETX, RESETY); // 重置原点 setaspectratio(1, -1); // 把 y 轴上方设为正半轴 drawboard(); initvalue(); } void drawboard() // 画棋盘 { int i1; setlinecolor(WHITE); for (i1=0; i1<7; i1++) { line(i1*CHESIZE, 0, i1*CHESIZE, CHESIZE*6); } for (i1=0; i1<7; i1++) { line(0, i1*CHESIZE, CHESIZE*6, i1*CHESIZE); } setlinecolor(WHITE); setfillcolor(RED); rectangle(-10, -10, CHESIZE*6+10, CHESIZE*6+10); floodfill(-1, -1, WHITE); rectangle(7*CHESIZE, CHESIZE, 9*CHESIZE, 6*CHESIZE); line(7*CHESIZE, 5*CHESIZE, 9*CHESIZE, 5*CHESIZE); line(7*CHESIZE, 4*CHESIZE, 9*CHESIZE, 4*CHESIZE); line(7*CHESIZE, 3*CHESIZE, 9*CHESIZE, 3*CHESIZE); line(7*CHESIZE, 2*CHESIZE, 9*CHESIZE, 2*CHESIZE); setaspectratio(1, 1); settextstyle(35, 18, "黑体"); settextcolor(RED); outtextxy(7*CHESIZE+2, -6*CHESIZE+2, "帮助"); settextcolor(BROWN); outtextxy(7*CHESIZE+2, -5*CHESIZE+2, "投降"); settextcolor(GREEN); outtextxy(7*CHESIZE+2, -4*CHESIZE+2, "和棋"); settextcolor(YELLOW); outtextxy(7*CHESIZE+2, -3*CHESIZE+2, "重置"); settextcolor(CYAN); outtextxy(7*CHESIZE+2, -2*CHESIZE+2, "退出"); settextcolor(LIGHTMAGENTA); settextstyle(50, 20, "黑体"); outtextxy(CHESIZE, -CHESIZE*8, "两国军旗"); setaspectratio(1, -1); } void initchessbute() // 设置棋子基本参数 { datachess[0].id = gong; datachess[0].power = 1; datachess[0].image = str[0]; datachess[0].scoopc = 0; datachess[1].id = ban; datachess[1].power = 2; datachess[1].image = str[1]; datachess[1].scoopc = 0; datachess[2].id = pai; datachess[2].power = 3; datachess[2].image = str[2]; datachess[2].scoopc = 0; datachess[3].id = lian; datachess[3].power = 4; datachess[3].image = str[3]; datachess[3].scoopc = 0; datachess[4].id = ying; datachess[4].power = 5; datachess[4].image = str[4]; datachess[4].scoopc = 0; datachess[5].id = tuan; datachess[5].power = 6; datachess[5].image = str[5]; datachess[5].scoopc = 0; datachess[6].id = lv; datachess[6].power = 7; datachess[6].image = str[6]; datachess[6].scoopc = 0; datachess[7].id = shi; datachess[7].power = 8; datachess[7].image = str[7]; datachess[7].scoopc = 0; datachess[8].id = jun; datachess[8].power = 9; datachess[8].image = str[8]; datachess[8].scoopc = 0; datachess[9].id = si; datachess[9].power = 10; datachess[9].image = str[9]; datachess[9].scoopc = 0; datachess[10].id = qi; datachess[10].power = 100; datachess[10].image = str[10]; datachess[10].scoopc = 0; datachess[11].id = zha; datachess[11].power = 99; datachess[11].image = str[11]; datachess[11].scoopc = 0; datachess[12].id = bian; datachess[12].power = 0; datachess[12].image = str[12]; datachess[12].scoopc = 0; datachess[13].id = lei; datachess[13].power = 98; datachess[13].image = str[13]; datachess[13].scoopc = 0; datachess[14].id = fei; datachess[14].power = 9; datachess[14].image = str[14]; datachess[14].scoopc = 0; datachess[15].id = chao; datachess[15].power = 11; datachess[15].image = str[15]; datachess[15].scoopc = 0; datachess[16].id = sheng; datachess[16].power = 10; datachess[16].image = str[16]; datachess[16].scoopc = 0; datachess[17].id = shen; datachess[17].power = 11; datachess[17].image = str[17]; datachess[17].scoopc = 0; datachess[18].id = xian; datachess[18].power = 11; datachess[18].image = str[18]; datachess[18].scoopc = 0; } void initvalue() // 初始化值 { CHESS chess[36]; int random[36]; int count; int i1, j1; initchessbute(); randomarr(random); for (i1=0; i1<=11; i1++) { chess[i1] = datachess[i1]; chess[i1].team = red; } chess[i1] = datachess[11]; chess[i1].team = red; chess[i1+1] = datachess[0]; chess[i1+1].team = red; for (i1=0; i1<=11; i1++) { chess[i1+14] = datachess[i1]; chess[i1+14].team = blue; } chess[i1+14] = datachess[11]; chess[i1+14].team = blue; chess[i1+15] = datachess[0]; chess[i1+15].team = blue; for (i1=0; i1<4; i1++) { chess[i1+28] = datachess[12]; chess[i1+28].team = white; chess[i1+32] = datachess[13]; chess[i1+32].team = white; } setfillcolor(YELLOW); for (count=0, i1=0; i1<6; i1++) { for (j1=0; j1<6; j1++, count++) { area[i1][j1].chess = chess[random[count]]; area[i1][j1].crdld.x = i1 * CHESIZE + 1; area[i1][j1].crdld.y = j1 * CHESIZE + 1; area[i1][j1].state = unknow; floodfill(area[i1][j1].crdld.x, area[i1][j1].crdld.y, WHITE); } } user = red; choose.state = unchoose; } void randomarr(int random[]) // 得到0~36数字的随机排列 { int i1, j1; int flag = 0;

资源文件列表:

c语言自创军旗游戏源码.zip 大约有10个文件
  1. c语言自创军旗游戏源码/
  2. c语言自创军旗游戏源码/c语言自创军旗游戏源码/
  3. c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/
  4. c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.cpp 21.05KB
  5. c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.dsp 3.3KB
  6. c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.dsw 516B
  7. c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.ncb 41KB
  8. c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.opt 47.5KB
  9. c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.plg 732B
  10. c语言自创军旗游戏源码/新建文件夹/
0评论
提交 加载更多评论
其他资源 基于Ajax+Servlet+JSP技术的学生信息管理系统.zip
基于Ajax+Servlet+JSP技术开发的学生信息管理系统,是一种经典的Web应用架构,结合了前端与后端技术,旨在提供动态、交互式的用户体验。下面是对这个系统在资源管理方面的概述,包括主要组成部分、工作原理及优势。 主要组成部分 Ajax : 负责在后台与服务器交换数据,这意味着用户可以在不重新加载整个网页的情况下,获取并更新部分网页内容。Ajax使得页面能够异步通信,提升用户体验。 Servlet: 作为Java Web应用程序中的服务器端组件,负责处理HTTP请求并返回响应。在学生信息管理系统中,Servlet接收来自Ajax的请求,处理业务逻辑(如查询数据库、更新记录等),然后将结果以JSON或其他格式返回给前端。 JSP : 用于生成动态网页内容。JSP页面中可以嵌入Java代码,便于展示从Servlet获取的数据。在学生信息管理系统中,JSP页面展示学生列表、详细信息等界面,并通过Ajax调用与后台交互。
GDE230 demo文件
GDE230 demo文件
529379-基于STM32无线蓝牙大棚温湿度监测控制系统设计
本设计由STM32单片机+风扇控制电路+温湿度传感器电路+1602液晶显示电路+蓝牙模块电路+电源电路组成。 1、通过温湿度传感器检测温湿度,并在液晶上和APP上实时显示。 2、当湿度超过75度,APP发出报警信息 3、通过APP发送指令“O”,风扇启动。 通过APP发送指令“C”,风扇关闭。
529379-基于STM32无线蓝牙大棚温湿度监测控制系统设计
STM32单片机车牌识别摄像头图像识别系统设计
本系统有STM32F103RCT6单片机核心板、2.8寸TFT液晶屏显示、摄像头图像采集OV7670、蜂鸣器、LED电路组成。 1、stm32单片机通过摄像头采集图像,并实时驱动TFT液晶屏显示相应图像。 2、stm32单片机通过模式识别、匹配货的车牌的识别结果,并在屏幕上进行显示。 3、识别主要过程包括图像采集、二值化分析、识别车牌区域、字符分割、字符匹配五个过程。 4、车牌锁定后会有蜂鸣器提醒,在分析获取到车牌后对车停留时间进行计时,并进行计费。 5、在图像采集界面,通过按键可以进入后台计费界面。在车牌识别后进入计费界面,可以通过按键退出计费界面,回到图像采集界面。 注意:单片机处理能力及速率有限,目前识别汉字:渝、辽、沪、浙、苏、粤,车牌图片一定要清晰,无反光,容易识别。 车牌识别操作技巧与按键功能说明: 1、重要一点,通过摄像头前面螺钮可以调焦,拧到直到液晶显示图像最清晰(一般我们调试好的)。 2、尽量让车牌号处于液晶中央位置,让车牌号内容处于两蓝线之间,且两蓝线处于红线上方。 3、位置合适后,进入倒计时,到时蜂鸣器会“嘀
STM32单片机车牌识别摄像头图像识别系统设计 STM32单片机车牌识别摄像头图像识别系统设计 STM32单片机车牌识别摄像头图像识别系统设计
c语言自创推箱子游戏改版.zip
c语言自创推箱子游戏改版.zip
网页滚动导航:一键跳转的实现
网页滚动导航:一键跳转的实现
网页滚动导航:一键跳转的实现 网页滚动导航:一键跳转的实现 网页滚动导航:一键跳转的实现
EmuCheat2014_downcc.zip
EmuCheat2014_downcc.zip
Java练习-扑克牌小游戏-不断升级中~~~
Java练习-扑克牌小游戏-不断升级中~~~