网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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,移动开发
本月文章推荐
.switch语句的“不准遍历”.
.STL泛型编程与设计新思维.
.2004年计算机等级考试二级C语言试.
.改变打开对话框中打开按钮的标题.
.查找某条命令的相关库文件.
.改编 的 C版 职工管理系统.
.个简单菜单程序.
.多变的立方体.
.2000年9月基础知识知识和C语言程.
.如何在BCB中使用DirectX.
.C语言初学者入门讲座 第十二讲 多.
.C语言图形函数.
.国家计算机二级考试程序修改与设.
.C语言库函数(Q类字母).
.在C++Builer中多线程的实现.
.C语言程序设计(第2章 数据类型、.
.C++ Builder 初学问与答(三).
.计算机应用基础操作题.
.C语言入门之结构(3).
.浅析c/c++中的指针.

孔明棋,你玩过吗

发表日期:2008-3-8


//在tc3++下运行 //游戏名孔明棋 #define Up  0x4800
#define Down  0x5000
#define P    0x1970
#define R    0x1372
#define Enter  0x1c0d
#define Esc   0x11b
#define Right  0x4d00
#define Left  0x4b00 #include<bios.h>
#include<stdio.h>
#include<dos.h>
#include<graphics.h>
#include<conio.h>
#include<stdlib.h> //定义核心数据
int LargeStartx,LargeStarty;  //大方格图形左上角坐标
int SmallStartx,SmallStarty;
int RedNum;  //红格子的个数。假如红格子的个数为1,则游戏过关
char State;  //按键的状态M(move)与S(select),M表示移动红格子。S表示选择要移动的红格子
int Attr[7][7];  //描述7*7矩阵格子的属性N(none),W(white),R(red).N表示没有格子,W表示有白色格子,R示                   //有红色格子
int row,tier;    //7*7矩阵的行(row)与列(tier)
int Mission;     //表示第几关
int MissionNum;  //总的关数 typedef strUCt rect1  //描述大方格的属性
{
int startx;
int starty;
int nowx;
int nowy;
int agox;
int agoy;
char color;
int size;
}Large;
Large LargeRect; typedef struct rect2  //描述小方格的属性
{
int nowx;
int nowy;
char color;
int size;
}Small;
Small SmallRect; typedef struct add
{
int x;
int y;
}Add; //declare functions
void InitData1();
void InitData();
void InitMission(int );
void InitPic();
void Help();
void DrawSmallRect(int ,int ,int ,char );
void DrawLargeRect(int ,int ,int ,char );
void ChangeState();
void MoveLargeRect();
void MoveSmallRect(int ); void main()
{
int key;
int gdriver=DETECT, gmode;
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver, &gmode, "");
setbkcolor(BLUE);
cleardevice();
InitData1();  
InitData();    //随着关数的变化需要恢复的数据
Mission=1;
InitMission(Mission);  //初始化关数.主要是改变一些方格的属性
InitPic();
do
  {
   key=bioskey(0);
   LargeRect.agox=LargeRect.nowx;
   LargeRect.agoy=LargeRect.nowy;
   SmallRect.nowx=LargeRect.nowx+10;
   SmallRect.nowy=LargeRect.nowy+10;
   switch(key)
 {
 case Up:
    {
    if(State=='S')
         {
         if( (row-1)>=0&&Attr[row-1][tier]!='N' )
      {
      row--;
      MoveLargeRect();
      break;
      }
         }
    if(State=='M')
         {
         if(Attr[row-1][tier]=='R'&&Attr[row-2][tier]=='W')
      {
      MoveSmallRect(key);
      Attr[row][tier]='W';Attr[row-1][tier]='W';Attr[row-2][tier]='R';
      row-=2;
      MoveLargeRect();
      RedNum--;
      ChangeState();
      }
         }
     break;
    }
 case Down:
    {
    if(State=='S')
         {
         if( (row+1)<7&&Attr[row+1][tier]!='N' )
      {
      row++;
      MoveLargeRect();
      }
         }
    if(State=='M')
         {
         if(Attr[row+1][tier]=='R'&&Attr[row+2][tier]=='W')
      {
      MoveSmallRect(key);
      Attr[row][tier]='W';Attr[row+1][tier]='W';Attr[row+2][tier]='R';
      row+=2;
      MoveLargeRect();
      RedNum--;
      ChangeState();
      }
         }
    break;
    }
 case Left:
    {
    if(State=='S')
         {
         if( (tier-1)>=0&&Attr[row][tier-1]!='N' )
      {
      tier--;
      MoveLargeRect();
      }
         }
    if(State=='M')
         {
         if(Attr[row][tier-1]=='R'&&Attr[row][tier-2]=='W')
      {
      MoveSmallRect(key);
      Attr[row][tier]='W';Attr[row][tier-1]='W';Attr[row][tier-2]='R';
      tier-=2;
      MoveLargeRect();
      RedNum--;
      ChangeState();
      }
         }
    break;
    }
 case Right:
    {
    if(State=='S')
         {
         if( (tier+1)>=0&&Attr[row][tier+1]!='N' )
      {
      tier++;
      MoveLargeRect();
      }
         }
    if(State=='M')
         {
         if(Attr[row][tier+1]=='R'&&Attr[row][tier+2]=='W')
      {
      MoveSmallRect(key);
      Attr[row][tier]='W';Attr[row][tier+1]='W';Attr[row][tier+2]='R';
      tier+=2;
      MoveLargeRect();
      RedNum--;
      ChangeState();
      }
         }
    break;
    }
 case R:
    {
    InitData();
    InitMission(Mission);
    InitPic();
    break;
    }
 case P:
    {
    InitData();
    if(Mission<MissionNum)  Mission++;
    else Mission=1;
    InitMission(Mission);
    InitPic();
    break;
    }
 case Enter:
    {
    if(State=='S'&&Attr[row][tier]=='R')
        ChangeStat

上一篇:利齿C sharp代替C++? 人气:527
下一篇:拷屏代码 人气:488
浏览全部C/C++的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐