动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.迷宫.
.C++中使用BHO来屏蔽特定网站.
.MFC中几个有用的字符串操作函数.
.c++学习计划.
.makefile规则.
.用OLE操作Excel(Wangda补充).
.Building Shared Libraries.
.C++ 通过WIN32 API 获取逻辑磁盘.
.C++中的Singleton类的实现(1).
.在linux下使用c语言操作临时文件.
.词法分析程序.
.员工管理系统(链表).
.C语言库函数(V类字母).
.读取注册表中一个子键下的所有子.
.制作多样的椭圆.
.奇技淫巧C++之返回值重载.
.分而治之算法---残缺棋盘.
.java:使用路径访问Access数据库.
.谈谈代码风格──谈谈缩进.
..

简单坦克大战

发表日期:2008-3-8 |


今天下午赶出来的,还有很多东西要不要加进去我自己还没决定,因为有些东西以前练过了,而有些东西没练过,还有很多不足之处.
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <bios.h>
#define KEY_ESC 0x01
#define KEY_SPACE 0x39
#define KEY_UP 0x48
#define KEY_LEFT 0x4b
#define KEY_RIGHT 0x4d
#define KEY_DOWN 0x50
/*1石头,2砖块,3水,5老家,8玩家,9敌人*/
int map[20][20]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                 1,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
                 1,0,2,2,2,2,0,0,2,2,2,2,0,0,0,0,0,0,0,1,
   1,0,0,0,0,0,0,0,2,0,0,2,0,1,1,1,1,0,0,1,
                 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
   1,2,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,0,0,1,
   1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,
                 1,0,1,1,1,1,3,3,3,3,0,0,0,0,0,0,0,2,0,1,
                 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
                 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
                 1,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,
   1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,3,3,0,1,
                 1,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,
                 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
                 1,0,0,0,0,3,3,3,1,1,1,1,1,1,1,0,0,0,0,1,
                 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
                 1,0,2,2,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,
                 1,0,2,2,0,0,0,0,2,2,2,0,0,0,2,2,0,0,0,1,
                 1,0,0,0,0,0,0,8,2,5,2,0,0,0,0,0,0,0,0,1,
   1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
strUCt f
{
 int x;
 int y;
 int direction;
};
struct play
{
 int x;/*行坐标*/
 int y;/*列坐标*/
 int direction;/*方向*/
 struct f fire[5];/*5颗子弹*/
 int score;/*分数*/
}Playone;
struct a
{
 int x;
 int y;
 int color;
 int direction;
 int directiontwo;/*用来判定走的路是否往返*/
 int fireplay;/*是否攻击的变量,随机生成*/
 struct f fire;
}amy[5];/*敌人的结构体,其实可以添加不同的颜色来表示不同种类的坦克*/
char key_state[128],key_pressed[128];
void Init();/*图象驱动开始*/
void End();/*图象驱动结束*/
void DrawMap();/*画地图*/
void DrawWater(int x,int y);/*画水*/
void DrawBrick(int x,int y);/*画砖*/
void DrawTone(int x,int y);/*画石头*/
void DrawHome(int x,int y);/*画老家*/
void DrawBlack(int x,int y);/*去除内容*/
void DrawPlay(int x,int y);/*画玩家*/
void DrawAmy(int x,int y,int i);/*画敌人*/
void Score();/*输出分数*/
void GamePlay();/*玩游戏过程*/
void GameOver();/*游戏失败*/
void TimeDelay(unsigned long microsec); /*延时函数 传入微秒数*/
int GetKey(int ScanCode);/*这里开始都是按键函数*/
void interrupt far (*OldInt9Handler)();
void far interrupt NewInt9();
void InstallKeyboard();
void ShutDownKeyboard();
void main(void)
{
 Init();
 DrawMap();
 GamePlay();
 End();
}
void TimeDelay(unsigned long microsec) /*延时函数 传入微秒数*/
{
 union REGS r;
 r.h.ah=0x86;
 r.x.cx=microsec>>16;
 r.x.dx=microsec;
 int86(0x15,&r,&r);
}
void Init()/*图象驱动开始*/
{int gd=DETECT,gm;
 initgraph(&gd,&gm,"d:\\tc\\tc");
 cleardevice();
 InstallKeyboard();
}
void End()/*图象驱动结束*/
{
 ShutDownKeyboard();
 closegraph();
}
void DrawTone(int x,int y)/*画石头*/
{
setfillstyle(SOLID_FILL,7);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawWater(int x,int y)/*画水*/
{
 setfillstyle(SOLID_FILL,BLUE);
 bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawBrick(int x,int y)/*画砖*/
{
setfillstyle(SOLID_FILL,6);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
setcolor(15);
line(100+x*20-9,50+y*20-4,100+x*20+9,50+y*20-4);
line(100+x*20-9,50+y*20+4,100+x*20+9,50+y*20+4);
line(100+x*20-4,50+y*20-9,100+x*20-4,50+y*20+9);
line(100+x*20+4,50+y*20-9,100+x*20+4,50+y*20+9);
}
void DrawHome(int x,int y)/*画老家*/
{
 setcolor(0);
 setfillstyle(SOLID_FILL,GREEN);
 fillellipse(100+x*20,50+y*20,9,9);
}
void DrawBlack(int x,int y)/*去除内容*/
{
 setcolor(0);
 setfillstyle(SOLID_FILL,0);
 bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawPlay(int x,int y)/*画玩家*/
{
 setcolor(4);/*玩家为红色*/
 circle(100+x*20,50+y*20,7);
 switch(Playone.direction)/*判定玩家方向*/
 {
 case 1:line(100+x*20,50+y*20,100+x*20,50+y*20-9);break;/*上*/
 case 2:line(100+x*20,50+y*20,100+x*20+9,50+y*20);break;/*右*/
 case 3:line(100+x*20,50+y*20,100+x*20,50+y*20+9);break;/*下*/
 case 4:line(100+x*20,50+y*20,100+x*20-9,50+y*20);break;/*左*/
 }
}
void DrawAmy(int x,int y,int i)/*画敌人*/
{
 if(amy[i].color==12)
 setcolor(12);
 else if(amy[i].color==13)
 setcolor(13);
 else/*这里是判定三种颜色的坦克*/
 setcolor(14);
 circle(100+x*20,50+y*20,7);
 switch(amy[i].direction)/*判定玩家方向*/
 {
 case 1:line(100+x*20,50+y*20,100+x*20,50+y*20-9);break;/*上*/
 case 2:line(100+x*20,50+y*20,100+x*20+9,50+y*20);break;/*右*/
 case 3:line(100+x*20,50+y*20,100+x*20,50+y*20+9);break;/*下*/
 case 4:line(100+x*20,50+y*20,100+x*20-9,50+y*20);break;/*左*/
 }
}
void Score()/*输出分数*/
{
 char s[10];
 Playone.score+=10;
 sprintf(s,"%d",Playone.score);
 setfillstyle(SOLID_FILL,0);
 bar(550,100,640,130);
 settextstyle(0,0,2);
 setcolor(YELLOW);
 outtextxy(550,115,s);
}
void DrawMap()/*画地图*/
{int i,j,k;
 for(i=0;i<20;i++)
  {
  for(j=0;j<20;j++)
   if(map[i][j]==1)
    DrawTone(j,i);
   else if(map[i][j]==2)
    DrawBrick(j,i);
   else if(map[i][j]==3)
    DrawWater(j,i);
   else if(map[i][j]==5)
    DrawHome(j,i);
   else if(map[i][j]==8)
    {
    Playone.x=i;
    Playone.y=j;
    Playone.direction=1;
    DrawPlay(j,i);
    for(k=0;k<5;k++)
    Playone.fire[k].direction=-1;/*5颗子弹的方向都为-1,表示不存在*/
    }
   else if(map[i][j]==9)
   {
   amy[0].x=1;amy[0].y=1;amy[0].direction=amy[0].directiontwo=3;/*第一个敌人*/
   amy[

上一篇:回文数的形成 人气:581
下一篇:简单扫雷游戏 人气:529
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-20 25175 学生成绩管理查询系统 v2.
2008-8-20 乘风电影程序 v3.7 Acc
2008-8-20 乘风电影程序 v3.7 Sql
2008-8-20 EasyJForum v2.2
2008-8-20 XML文章系统 v1.08 build 080820
2008-8-20 老Y文章管理系统 v2.0 build 080
2008-8-20 OA企业智能办公自动化系统边缘特
2008-8-20 欣颐免费时尚发廊美发厅全站程序
2008-8-20 凌风简单留言板 v1.0
2008-8-16 iLaba Player(小喇叭播放器) v2.
2008-8-16 DoubleClickFix 鼠标双击修正工具
2008-8-16 CrystalCPUID 4.15.2.451
2008-8-16 VeryCD 电驴(easyMule) 1.0.4 Bu
2008-8-16 uTorrent 1.8 Build 11813 - Sta
2008-8-16 比特精灵(BitSpirit) v3.3.2.287
2008-8-16 StayInTune音叉 v1.0 破解版
2008-8-16 iChing《周易》汉化补丁 v1.0
2008-8-16 Starmap星空图v1.0汉化破解版
  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵