如何定义一个指向NPC的指针,
struct NPC * pn;

用户在终端输入npc的数量,动态分配npc的空间

#include <stdio.h>

#include <stdlib.h>


typedef struct _NPC{

char name[20];

int hp;

int act;

}NPC;

typedef struct _NODE{

NPC data;

struct _NODE * pNext;

}NODE;//一个节点


NODE * head=NULL; //定义头结点

void addNODE(){

if (head==NULL) {

head=malloc(sizeof(NODE));

printf("请输入NPC信息名字 hp act");

scanf("%s %d %d",head->data.name,&head->data.hp,&head->data.act);

head->pNext=NULL;

}else{

NODE * p=head;//p指向头节点

while (p->pNext!=NULL) {

p=p->pNext;//p指向下一个节点

}

p->pNext=malloc(sizeof(NODE));

p=p->pNext;

ottom:0px; font-size:18px; font-family:Menlo; color:rgb(201,&head->data.act);

p->pNext=NULL;

}

printf("添加节点成功\n");

}

void printNODE(){

NODE *p=head;

while (p!=NULL) {

printf("NPC名字 %s hp %d atc %d\n",p->data.name,p->data.hp,p->data.act);

p=p->pNext;

}

printf("输出所有节点成功\n");

}

void insertNODE(){

//创建一个新节点

NODE * newNODE=malloc(sizeof(NODE));

printf("请输入NPC的名子 hp act\n");

scanf("NPCdata.name,&newNODE->data.hp,&newNODE->data.act);

printf("请输入插入到第几个节点之后\n");

int index;

int count=0;

NODE * p=head;

scanf("%d",&index);

while (p!=NULL) {

count++;

if (count>=index) {

break;

}

p=p->pNext;

}

NODE *p2=p->pNext;

p->pNext=newNODE;

newNODE->pNext=p2;

printf("插入节点成功\n");

}

void deleteNODE(){

int index;

printf("请输入要删除第几个节点\n");

scanf("%d",&index);

int num=0;

NODE * p=head;

while (p!=NULL) {

num++;

p=p->pNext;

}

if (index==1) {

p=head;

head=head->pNext;

free(p);

}else if (index==num){

NODE * p=head;

while (p->pNext->pNext!=NULL) {

p=p->pNext;

}

free(p->pNext->pNext);

p->pNext=NULL;

}else{

int count=1;

NODE * p=head;

while (p!=NULL) {

count++;

if (count==index) {

break;

}

p=p->pNext;

NODE * p2=p->pNext;

p->pNext=p2->pNext;

free(p2);

}

printf("删除节点成功\n");

}

}

void modifyNODE(){

int index;

printf("请输入有修改的节点\n");

scanf("%d",&index);

NODE * p=head;

int count=0;

while (p!=NULL) {

count++;

if (count>=index) {

break;

}

p=p->pNext;

printf("请输入NPC的名字 hp act\n");

scanf("%s %d %d\n",&p->data.hp,&p->data.act);

}

printf("修改节点");

}

int main(int argc,const char * argv[]) {

printf("NPC管理系统\n");

int menuselect;

while (1) {

printf("1.添加NPC节点\n");

printf("2.输出所有NPC节点\n");

printf("3。插入NPC节点\n");

printf("4.删除NPC节点\n");

printf("5.修改NPC节点\n");

printf("6.退出\n");

scanf("%d",&menuselect);

switch (menuselect) {

case 1://添加节点

addNODE();

break;

case 2://输出节点

printNODE();

break;

case 3://插入节点

insertNODE();

break;

case 4://删除节点

deleteNODE();

break;

case 5://修改节点

modifyNODE();

break;

case 6://退出

return 0;

break;

default:

break;

}

}

return 0;

}

Cocos2d如何实现一个指针的添加节点的更多相关文章

  1. html5利用canvas实现颜色容差抠图功能

    这篇文章主要介绍了html5利用canvas实现颜色容差抠图功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 使用最新的Flurry SDK和ios4重新启动应用程序

    我真的希望这对我来说只是一个愚蠢的错误.我很高兴使用Flurry但这样的事情会导致我的应用被拒绝.解决方法我写了关于这个的Flurry,他们很快回到我身边,他们会调查这个.大约一个星期后,他们回信并表示他们已经在v2.6中修复了它,现在可用了.我似乎无法重现这个问题.不是说我很棒或者什么,但我还是单枪匹马地解决了这个问题.

  3. ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift

    我有一点似乎没有工作的Swift代码……解决方法您正在指定locationPointer指向新位置,但仍在下一行中使用ptr,并且ptr的值尚未更改.将您的最后一行更改为:或者你可以改变指向var的指针并推进它:

  4. ios – 如何防止Parse保存PFObject儿童?

    我正面临着Parse和iOS的一个非常普遍的问题.我有一个类POST,具有以下结构:>text(String)>图像(PFFile)>LikesUsers(StringofString)>LikesCount(Int)>从(发布到用户的指针)如果用户(已登录)喜欢帖子.我只是递增喜欢并将用户的Objectid添加到数组中例如:User-2喜欢User-1的帖子.问题在这里.我不能保存PostObj

  5. 如何在Xcode 4.1中调试OpenCL内核?

    我有一些OpenCL内核没有做他们应该做的事情,我很想在Xcode中调试它们.这可能吗?当我在我的内核中使用printf()时,OpenCL编译器总是给我一大堆错误.解决方法将格式字符串转换为constchar*似乎可以解决此问题.这适用于Lion:这有上述错误:

  6. ios – 为什么对象有指针而不是int?

    当我们创建一个int时,我们输入:我们为什么不打字?问题是,为什么我们需要一个指向对象的指针而不是int,float等…解决方法效率.将int从一个地方移动到另一个地方很容易.移动对象需要cpu的更多工作.移动对象的地址就像移动int一样简单.在普通的C中,出于同样的原因,通常会处理指向结构的指针.使用–>C可以轻松实现操作符.

  7. ios – 如何使用双指针声明NSString的变量

    我想使用双指针,我试图像这样声明.但是,Xcode向我展示了错误“指向非const类型’Nsstring*’的指针,没有明确的所有权”并且无法编译.最后我想这样做.请告诉我任何建议.解决方法更改为此以便您可以明确指定所有权:输出:在__strong上Hereisthedocumentation.

  8. ios – 将指针字段添加到PFUser的子类

    我想添加一个指针字段到我的PFUser子类,由PFUser子类管理.理想情况下,指针对象将在PFUser子类上自动使用–在保存和提取用户时保存并提取指针对象.使用任何其他PFObject子类,我只需添加一个Dynamic属性,并在查询时确保使用includeKey.但是,对于PFUser子类,我从来没有实际查询.如何强制指针对象获取?

  9. ios – 在Objective-C中使用NSLog时,引导指针

    好的,从这个代码,我知道现在是一个指向NSDate对象的指针,但是在第3行的代码中,你如何取消引用没有星号的指针?

  10. ios – Xcode – 我的应用程序崩溃,错误是“无效指针从空闲列表中排队***在malloc_error_break中设置一个断点来调试”

    我的应用程序在模拟器上运行完美.但是当我在设备上运行它时,应用程序崩溃和显示错误:“malloc:*errorforobject0x17415d0c0:Invalidpointerdequeuedfromfreelist*setabreakpointinmalloc_error_breaktodebug”;我在malloc_error_break中搜索并设置了一个断点来进行调试,但仍然找不到问题.

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部