下载资源后端资源详情
c语言自创军旗游戏源码.zip
大小:15.64KB
价格:39积分
下载量:0
评分:
5.0
上传者:xlfhuahua
更新日期:2024-07-19

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

资源文件列表(大概)

文件名
大小
c语言自创军旗游戏源码/
-
c语言自创军旗游戏源码/c语言自创军旗游戏源码/
-
c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/
-
c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.cpp
21.05KB
c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.dsp
3.3KB
c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.dsw
516B
c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.ncb
41KB
c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.opt
47.5KB
c语言自创军旗游戏源码/c语言自创军旗游戏源码/c语言自创军旗游戏源码/军旗.plg
732B
c语言自创军旗游戏源码/新建文件夹/
-

资源内容介绍

c语言自创军旗游戏源码.zip
#include <graphics.h>#include <time.h>#defineCHESIZE40// 棋盘尺寸,不能随意调整#defineRESETX170#defineRESETY350// 重置原点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;// 棋子的IDint 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;

用户评论 (0)

发表评论

captcha

相关资源

基于Ajax+Servlet+JSP技术的学生信息管理系统.zip

基于Ajax+Servlet+JSP技术开发的学生信息管理系统,是一种经典的Web应用架构,结合了前端与后端技术,旨在提供动态、交互式的用户体验。下面是对这个系统在资源管理方面的概述,包括主要组成部分、工作原理及优势。主要组成部分Ajax :负责在后台与服务器交换数据,这意味着用户可以在不重新加载整个网页的情况下,获取并更新部分网页内容。Ajax使得页面能够异步通信,提升用户体验。Servlet:作为Java Web应用程序中的服务器端组件,负责处理HTTP请求并返回响应。在学生信息管理系统中,Servlet接收来自Ajax的请求,处理业务逻辑(如查询数据库、更新记录等),然后将结果以JSON或其他格式返回给前端。JSP :用于生成动态网页内容。JSP页面中可以嵌入Java代码,便于展示从Servlet获取的数据。在学生信息管理系统中,JSP页面展示学生列表、详细信息等界面,并通过Ajax调用与后台交互。

8.69MB41积分

GDE230 demo文件

GDE230 demo文件

889.65KB24积分

529379-基于STM32无线蓝牙大棚温湿度监测控制系统设计

本设计由STM32单片机+风扇控制电路+温湿度传感器电路+1602液晶显示电路+蓝牙模块电路+电源电路组成。1、通过温湿度传感器检测温湿度,并在液晶上和APP上实时显示。2、当湿度超过75度,APP发出报警信息3、通过APP发送指令“O”,风扇启动。 通过APP发送指令“C”,风扇关闭。

7.68MB10积分

STM32单片机车牌识别摄像头图像识别系统设计

本系统有STM32F103RCT6单片机核心板、2.8寸TFT液晶屏显示、摄像头图像采集OV7670、蜂鸣器、LED电路组成。1、stm32单片机通过摄像头采集图像,并实时驱动TFT液晶屏显示相应图像。2、stm32单片机通过模式识别、匹配货的车牌的识别结果,并在屏幕上进行显示。3、识别主要过程包括图像采集、二值化分析、识别车牌区域、字符分割、字符匹配五个过程。4、车牌锁定后会有蜂鸣器提醒,在分析获取到车牌后对车停留时间进行计时,并进行计费。5、在图像采集界面,通过按键可以进入后台计费界面。在车牌识别后进入计费界面,可以通过按键退出计费界面,回到图像采集界面。注意:单片机处理能力及速率有限,目前识别汉字:渝、辽、沪、浙、苏、粤,车牌图片一定要清晰,无反光,容易识别。车牌识别操作技巧与按键功能说明:1、重要一点,通过摄像头前面螺钮可以调焦,拧到直到液晶显示图像最清晰(一般我们调试好的)。2、尽量让车牌号处于液晶中央位置,让车牌号内容处于两蓝线之间,且两蓝线处于红线上方。3、位置合适后,进入倒计时,到时蜂鸣器会“嘀

18.37MB33积分