四、动态创建蛇身

  1 #include<curses.h>
  2 #include<stdlib.h>
  3 
  4 struct NodeofSnake
  5 {
  6         int hang;
  7         int lie;
  8         struct NodeofSnake *next;
  9 };
 10 
 11 struct NodeofSnake *head=NULL;
 12 struct NodeofSnake *tail=NULL;
 13 
 14 void addNode()
 15 {
 16         struct NodeofSnake *new;
 17         new=(struct NodeofSnake*)malloc(sizeof(struct NodeofSnake));
 18         new->hang=tail->hang;
 19         new->lie =tail->lie+1;
 20         new->next=NULL;
 21 
 22         tail->next=new;
 23         tail=new;
 24 }
 25 void initSnake()
 26 {
 27    //   struct NodeofSnake *head,*tail;
 28         head=(struct NodeofSnake*)malloc(sizeof(struct NodeofSnake));
 29         head->hang=2;
 30         head->lie =2;
 31         head->next=NULL;
 32 
 33         tail=head;
 34 
 35         addNode();
 36 }
 37 int wheatherOfSnakeNode(int hang,int lie)
 38 {
 39 
 40           struct NodeofSnake *point = head;
 41           while(point!=NULL){
 42                   if(hang==point->hang && lie==point->lie ){
 43                          printw("[]");
 44                          return 1;
 45                   }
 46                   point=point->next;
 47           }
 48         return 0;
 49 }
 50 
 51 void initMap()
 52 {
 53         int hang=0;
 54         int lie =0;
 55 
 56         for(hang=0;hang<=20;hang++){
 57                 if(hang==0||hang==20){
 58                         for(lie=0;lie<20;lie++){
 59                                 printw("--");
 60                         }
 61                         printw("\n");
 62                 }
 63                 if(hang>0&&hang<=19){
 64                         for(lie=0;lie<=20;lie++){
 65                                 if(lie==0||lie==20){
 66                                         printw("|");
 67                                 }else if(wheatherOfSnakeNode(hang,lie)){
 68         
 69                                 }
 70                                 else{
 71                                         printw("  ");
 72                                 }
 73                         }
 74                         printw("\n");
 75                 }
 76         }
 77         printw("By:GuoMing\n");
 78 }
 79 
 80 int main()
 81 {
 82         initscr();
 83         keypad(stdscr,1);
 84 
 85         initSnake();
 86         initMap();
 87 
 88         getch();
 89         endwin();
 90 
 91         return 0;
 92 }

注意值的复制问题            是“=”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值