objective c - Is it possible to manually traverse nested if statements? -


binary trees confusing me inactivity, thought i'd try simpler (if messier) approach.
example...

if (a) {         // wait button press before checking next 'if'     if (aa) {             } else if (ab) {             } } else if (b) {     else } 

et cetera.
how force app wait button press before asking if 'aa' returns true? (and on , forth.)

switches seem cleaner alternative, if has answer method instead, i'd happy give go. it's same problem, though. can't figure out how progress step step rather @ once.

here's different approach, using state or control variable view, determine should next given button presses.

// pseudo-code based on example -(ibaction) buttonpress1 if (a) {         self.setstate = statea; } else if (b) {     else     self.setstate = stateb; }  -(ibaction) buttonpress2  if (self.state == statea) {     if (a) {             } else if (b) {             }  } 

hope helps, if not, ask away in comments.


[edit]

ok, after explained da/me/me2 reference you're looking for.

what you're maybe going want do, store dialogue in plist, load nsdictionary. (read on nsdictionary)

each nsdictionary should this:

key = value

@"prompt" = @"hi name bob" @"mean" = nsdictionary object next convo choice mean @"nice" = nsdictionary object next convo choice nice

const bool nice = yes; const bool mean = !nice;  nsdictionary *convo = //loaded initial starting point plist file  - (ibaction) playerchosemean:(id)sender {     [self sayconvo:convo withchoice:mean]; }  - (ibaction) playerchosenice:(id)sender {     [self sayconvo:convo withchoice:nice]; }  - (void) sayconvo:(nsdictionary)convo withchoice:(bool)b {   nslog(@"npc says: %@", [convo valueforkey:@"prompt"]);   if(b) {      convo = (nsdictionary*)[convo valueforkey:@"nice"];   } else {      convo = (nsdictionary*)[convo valueforkey:@"mean"];   }    if (convo == [nsnull null] || convo == nil) continue;   //else continue } 

here's example nsdictionary graph should started.

nsdictionary *intro = [nsdictionary dictionarywithcapacity:3]; nsdictionary *nice = [nsdictionary dictionarywithcapacity:3]; nsdictionary *nicenice = [nsdictionary dictionarywithcapacity:3]; nsdictionary *nicegoodbye = [nsdictionary dictionarywithcapacity:3]; nsdictionary *mean = [nsdictionary dictionarywithcapacity:3]; nsdictionary *meangoodbye = [nsdictionary dictionarywithcapacity:3];  [intro addvalue:@"hi there!" forkey:prompt]; [intro addvalue:nice forkey:@"nice"]; [intro addvalue:mean forkey:@"mean"];  [nice addvalue:@"that nice" forkey:prompt]; [nice addvalue:nicenice forkey:@"nice"]; [nice addvalue:mean forkey:@"mean"];  [nicenice addvalue:@"awww" forkey:prompt]; [nicenice addvalue:nicegoodbye forkey:@"nice"]; [nicenice addvalue:mean forkey:@"mean"];  [nicegoodbye addvalue:@"you super nice, here's bonus being nice" forkey:prompt]; [nicegoodbye addvalue:[nsnull null] forkey:@"nice"]; [nicegoodbye addvalue:[nsnull null] forkey:@"mean"];  [mean addvalue:@"that mean" forkey:prompt]; [mean addvalue:nice forkey:@"nice"]; [mean addvalue:meangoodbye forkey:@"mean"];  [meangoodbye addvalue:@"you're jerk!  goodbye!" forkey:prompt]; [meangoodbye addvalue:[nsnull null] forkey:@"nice"]; [meangoodbye addvalue:[nsnull null] forkey:@"mean"]; 

take @ excellent example on over gamedeve.se


Comments

Popular posts from this blog

java - SNMP4J General Variable Binding Error -

sql server - python to mssql encoding problem -

windows - Python Service Installation - "Could not find PythonClass entry" -