当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·打飞机游戏    »显示摘要«
    摘要: 请问大家编程高手,我现在已做到打飞机那图形界面,但不知道利用什么函数去实现其打游戏的效果与及其计分.我想过是不是要那准星和那飞机重叠那果,然后实现打飞机的过程.那飞机应该利用delay之类的函数实现其飞机的移动,是不是这样想呢? 还有可不可以提供有关此类的源代码呢?敬请大家锡教!!! ......
    摘要: rmvb格式的影片要用什么播放器来播放? realone我试过了,不能播放 ......


请大家帮我挑挑错

各位好:  
        我是c++的初学者,写了一段程序,主要是用来匹配花括号的,并指明在什么位置匹配,什么位置不匹配,不过在执行时出现了一点问题,请指点一下,谢谢!  
  /****************myBraceRules*********************/  
  1.BraceNode.cc  
  #include   "myBraceNode.h"  
   
  BraceNode   *   OpeBrace::head;  
   
  BraceNode::BraceNode()  
  {next=NULL;}  
   
  OpeBrace::OpeBrace()  
  {  
      head=NULL;  
  }  
   
  void   OpeBrace::push(BraceNode   &n,char   &ch)  
  {  
   
      if(head==NULL)  
      {  
          n.next=NULL;  
                  n.ch=ch;  
          head=&n;  
   
      }  
      else  
      {  
          n.ch=ch;  
          n.next=head->next;  
          head->next=&n;  
   
      }  
  }  
   
  char   *   OpeBrace::pop()  
  {  
      if(head!=NULL)  
      {  
          BraceNode   *tmp=head;  
                  if(tmp->ch=={)  
                  {  
                  head=head->next;                    
                  delete   tmp;  
                  return   "Match";//我跟踪时,系统到此就断掉了,报告"User    
                                                //BreakPoint   called   from   code   at   0x77f7x570"  
                                                //请指点!    
                  }  
      }  
      else  
      {return   "Error";}  
      return   "Error";  
  }  
   
  void   OpeBrace::Delete()  
    {  
          while(head!=NULL)  
          {  
                BraceNode   *   t=head->next;  
                head=t->next;  
                delete   t;  
          }  
    }  
   
  //myBraceNode.h  
    #include   <iostream>  
    using   namespace   std;  
   
  class   BraceNode  
  {  
  private:  
   
    char   ch;  
    BraceNode   *   next;  
   
  public:  
      BraceNode();  
      friend   class   OpeBrace;  
  };  
   
  class   OpeBrace  
  {  
  private:  
      static   BraceNode   *   head;  
  public:  
      OpeBrace();  
      void   push(BraceNode   &,char   &);  
      void   Delete();  
      char   *   pop();  
  };  
   
  //Main_BraceNode.cc  
  #include   "myBraceNode.h"  
  #include   <string.h>  
   
   
  static   OpeBrace   OB;  
  void   main()  
  {  
  char   ch;  
  int   i=0;  
  int   count=0;  
  cout<<"Please   Enter   chars   including   {/}:"<<endl;  
  while(cin>>ch)  
  {  
  if(ch==97)  
  {  
  if(count==0)  
  {  
  cout<<"There   is   no   {   or   }"<<endl;  
  }  
  break;  
  }    
   
  BraceNode   n;  
  if(ch=={)  
  {  
  OB.push(n,ch);  
  count++;  
  }  
  if(ch==})  
  {  
  //OpeBrace   Opop;  
  char   *   Recieve=new   char[10];  
  strcpy(Recieve,OB.pop());  
                                                          cout<<Recieve<<"   at   "<<i<<endl;  
  delete   Recieve;  
  count++;  
  }  
  i++;  
  }  
  }  
   
 

NO.1   作者: BraveHeart2222

在你跟踪出错的地方,将head赋予自动变量tmp后,两者都指向同一内存空间,在此删除tmp后,  
  head就成了悬空指针,也就是说你改变了静态变量OB的内容,可去掉"delete   tmp"这一句,这不会造成内存泄漏,只要超出该自动变量的作用域,其会自动销毁.  
 

NO.2   作者: wahao

老师曾教过我一个技巧,你也不妨试一试:  
  不要一次把程序敲出来,否则,程序几百行后,一个‘;’少了会引起很多错的,有不少  
  时间才能查出来的,更别说复杂些的错了,你说呢?  
  所以,我们要写一小段就编译一下,  
  确保无误后在继续,这样,写完后也就可以运行了。  
 

NO.3   作者: xabcxyz

你犯了“大炮打蚊子”的错误。   学习C++固然要练习对象,但是程序设计讲究用最简单的方法解决问题。   对于{}匹配,如果你不想使用循环,顶多是个递归。   建议用经典题目练习类对象,如:点、线、多边形、椭圆。


    摘要: 给个面子,去www.bbse.net看看吧。偶做的网站,去的有分! 大家给点意见啊!!!还有,友情支持一下吧,注册一下吧。 各位ggjjddmm帮忙啊。 还有谁给想想办法,怎么宣传好啊? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE