// // gameboard.m // nyoriondemo // // Created by Fenrir on 4/23/55 BE. // Copyright (c) 2555 __MyCompanyName__. All rights reserved. // #import "gameboard.h" #import "setup.h" #import "WalkPhase.h" #import "Moveforward.h" #import "Moveback.h" #import "Randommove.h" #import "winpage.h" #import "lostpage.h" #import #include #include #include @interface gameboard () @end @implementation gameboard @synthesize btnMyButton; @synthesize upDatePos; -(void)getMovepoint:(int)number{ if (turn == 1) { //load NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSNumber *randomMoveObj = [prefs valueForKey:@"p1AccMove"]; p1AccMove = [randomMoveObj intValue]; p1AccMove += number; int myIntChk = p1AccMove; NSLog(@"3AccMove After +: %d",myIntChk); moveFlag = 1; } if (turn == 2) { NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSNumber *randomMoveObj = [prefs valueForKey:@"p2AccMove"]; p2AccMove = [randomMoveObj intValue]; p2AccMove += number; moveFlag = 1; } } -(void)updatePos:(int)number{ if (turn == 1) { NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSNumber *randomMoveObj = [prefs valueForKey:@"p1AccMove"]; p1AccMove = [randomMoveObj intValue]; p1AccMove += number; } if (turn == 2) { NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSNumber *randomMoveObj = [prefs valueForKey:@"p2AccMove"]; p2AccMove = [randomMoveObj intValue]; p2AccMove += number; } } -(void)updateNegPos:(int)number{ if (turn == 1) { NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSNumber *randomMoveObj = [prefs valueForKey:@"p1AccMove"]; p1AccMove = [randomMoveObj intValue]; p1AccMove -= number; if (p1AccMove < 0) { p1AccMove = 0; } } if (turn == 2) { NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSNumber *randomMoveObj = [prefs valueForKey:@"p2AccMove"]; p2AccMove = [randomMoveObj intValue]; p2AccMove -= number; if (p2AccMove < 0) { p2AccMove = 0; } } } -(void) connectted:(int)sender;{ hasConnect = 1; } -(void) datacomplete:(int)sender;{ dataComplete = 1; } -(void) setTurn:(int)sender;{ turn = sender; } -(void) setActive:(int)sender;{ activePlayer = sender;//1 = ACTIVE 0 or other number = not ACTIVE } -(void) setSockRef:(CFSocketRef)sockRef;{ s = sockRef; } -(void) activateButton:(NSString *)trigger;{ // NSLog(@"Mainboard received: %s", trigger); upDatePos = [trigger intValue]; NSLog(@"upDatePos is %d",upDatePos); [self p2drawPosition:upDatePos]; btnMyButton.enabled = YES; UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"It's your turn" message: nil delegate: self cancelButtonTitle: @"Close" otherButtonTitles: nil]; [alert show]; [alert release]; // [self p2drawPosition:20]; // winpage *winscreen = [[winpage alloc] initWithNibName:nil bundle:nil]; // [self presentModalViewController:winscreen animated:YES]; } -(void) enable:(int)number;{ NSLog(@"Enable"); btnMyButton.enabled = YES; } -(IBAction)unlock:(UIButton *)sender;{ winpage *winscreen = [[winpage alloc] initWithNibName:nil bundle:nil]; [self presentModalViewController:winscreen animated:YES]; // NSLog(@"upDatePos in unlock is %d",upDatePos); // [self p1drawPosition:upDatePos]; // btnMyButton.enabled = YES; } -(void) sendData:( NSString *)sender{ UInt8 *message = (UInt8 *)[sender UTF8String]; NSLog(@"String is %s", message); //int length = [sender length]; CFDataRef data = CFDataCreate(NULL, message, sizeof(message)); //CFDataRef data = CFDataCreate(NULL, message, length); CFSocketSendData(s, NULL, data, 0); CFRelease(data); } -(void) p1drawPosition:(int)number;{ xPos = [[P1XArraypos objectAtIndex:number]intValue]; yPos = [[P1YArraypos objectAtIndex:number]intValue]; image.center= CGPointMake(xPos,yPos); } -(void) p2drawPosition:(int)number;{ xPos = [[P2XArraypos objectAtIndex:number]intValue]; yPos = [[P2YArraypos objectAtIndex:number]intValue]; image2.center= CGPointMake(xPos,yPos); } void receiveDataCilent(CFSocketRef s, CFSocketCallBackType type, CFDataRef address, const void *data, void *info) { CFDataRef df = (CFDataRef) data; int len = CFDataGetLength(df); if(len <= 0) return; CFRange range = CFRangeMake(0,len); UInt8 buffer[len]; NSLog(@"Received %d bytes from socket %d\n", len, CFSocketGetNative(s)); CFDataGetBytes(df, range, buffer); NSLog(@"Client received: %s\n", buffer); NSLog(@"As UInt8 coding: %@", df); NSLog(@"len value: %d", len); } -(IBAction)nextButton:(UIButton *)sender;{ if(hasConnect == 0){ NSLog(@"client accept"); hasConnect = 1; s = CFSocketCreate(NULL, PF_INET, SOCK_STREAM, IPPROTO_TCP, kCFSocketDataCallBack, receiveDataCilent, NULL); struct sockaddr_in sin; struct hostent *host; memset(&sin, 0, sizeof(sin)); host = gethostbyname("192.168.1.88"); // host = gethostbyname("161.246.231.108"); memcpy(&(sin.sin_addr), host->h_addr,host->h_length); sin.sin_family = AF_INET; sin.sin_port = htons(6666); CFDataRef address; CFRunLoopSourceRef source; address = CFDataCreate(NULL, (UInt8 *)&sin, sizeof(sin)); CFSocketConnectToAddress(s, address, 0); CFRelease(address); source = CFSocketCreateRunLoopSource(NULL, s, 0); CFRunLoopAddSource(CFRunLoopGetCurrent(), source, kCFRunLoopDefaultMode); CFRelease(source); NSLog(@"runloop"); CFRunLoopRun(); NSLog(@"after runloop"); } if (turn == 1) { int myInt = p1AccMove; int myInt2 = p2AccMove; if (myInt >= 29 ) { //check end? winpage *winscreen = [[winpage alloc] initWithNibName:nil bundle:nil]; [self presentModalViewController:winscreen animated:YES]; }//win page if (myInt2 >= 29 ) { //check end? lostpage *lostscreen = [[lostpage alloc] initWithNibName:nil bundle:nil]; [self presentModalViewController:lostscreen animated:YES];//lose page } } if (turn == 2) { int myInt = p1AccMove; int myInt2 = p2AccMove; if (myInt >= 29 ) { //check end? winpage *winscreen = [[winpage alloc] initWithNibName:nil bundle:nil]; [self presentModalViewController:winscreen animated:YES]; }//lose page if (myInt2 >= 29 ) { //check end? lostpage *lostscreen = [[lostpage alloc] initWithNibName:nil bundle:nil]; [self presentModalViewController:lostscreen animated:YES];//win page } } if (moveFlag == 0) { WalkPhase *walk = [[WalkPhase alloc] initWithNibName:nil bundle:nil]; [walk setTurn:turn]; [walk setSockRef:s]; [self presentModalViewController:walk animated:YES]; } if (moveFlag == 1) { //eventRand = arc4random() % 3; eventRand = 0; if (eventRand == 0) { //forward moveFlag = 0; Moveforward *eventFw = [[Moveforward alloc] initWithNibName:nil bundle:nil]; [eventFw setTurn:turn]; [eventFw setSockRef:s]; [self presentModalViewController:eventFw animated:YES]; //change view to event } if (eventRand == 1) { //back moveFlag = 0; Moveback *eventBw = [[Moveback alloc] initWithNibName:nil bundle:nil]; [eventBw setTurn:turn]; [eventBw setSockRef:s]; [self presentModalViewController:eventBw animated:YES]; } if (eventRand == 2) { //random moveFlag = 0; Randommove *eventRad = [[Randommove alloc] initWithNibName:nil bundle:nil]; [eventRad setTurn:turn]; [eventRad setSockRef:s]; [self presentModalViewController:eventRad animated:YES]; } } } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { //CFRunLoopStop(CFRunLoopGetCurrent()); P1XArraypos = [[NSArray alloc] initWithObjects:@"48",@"48",@"48",@"48",@"48",@"48",@"48",@"48",@"48",@"142",@"234",@"234",@"234",@"234",@"234",@"234",@"234",@"234",@"234",@"326",@"420",@"420",@"420",@"420",@"420",@"420",@"420",@"420",@"420",@"508",nil]; P1YArraypos = [[NSArray alloc] initWithObjects:@"44.5",@"128.5",@"209.5",@"291.5",@"373.5",@"456.5",@"538.5",@"620.5",@"703.5",@"703.5",@"703.5",@"620.5",@"538.5",@"456.5",@"373.5",@"291.5",@"209.5",@"128.5",@"44.5",@"44.5",@"44.5",@"128.5",@"209.5",@"291.5",@"373.5",@"456.5",@"538.5",@"620.5",@"703.5",@"419.5",nil]; P2XArraypos = [[NSArray alloc] initWithObjects:@"976",@"976",@"976",@"976",@"976",@"976",@"976",@"976",@"976",@"883",@"792",@"792",@"792",@"792",@"792",@"792",@"792",@"792",@"792",@"699",@"605",@"605",@"605",@"605",@"605",@"605",@"605",@"605",@"605",@"508",nil]; P2YArraypos = [[NSArray alloc] initWithObjects:@"703.5",@"620.5",@"538.5",@"456.5",@"373.5",@"291.5",@"209.5",@"128.5",@"44.5",@"44.5",@"44.5",@"128.5",@"209.5",@"291.5",@"373.5",@"456.5",@"538.5",@"620.5",@"703.5",@"703.5",@"703.5",@"620.5",@"538.5",@"456.5",@"373.5",@"291.5",@"209.5",@"128.5",@"44.5",@"283.5",nil]; NSLog(@"moveflag is %d",moveFlag); NSLog(@"turn is %d",turn); if (turn == 1) { int p1Int = p1AccMove; //set over value if (p1Int > 29) { p1Int = 29; } if (p1Int < 0) { p1Int = 0; } [self p1drawPosition:p1Int]; if (dataComplete == 1) { NSString *p1IntString = [NSString stringWithFormat:@"%d",p1Int]; [self sendData:p1IntString]; } //save NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSNumber *randomMoveObj = [NSNumber numberWithInt:p1AccMove]; [prefs setValue:randomMoveObj forKey:@"p1AccMove"]; [prefs synchronize]; } if (turn == 2) { int p2Int = p2AccMove; //set over value if (p2Int > 29) { p2Int = 29; } if (p2Int < 0) { p2Int = 0; } [self p2drawPosition:p2Int]; //save NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; NSNumber *randomMoveObj = [NSNumber numberWithInt:p2AccMove]; [prefs setValue:randomMoveObj forKey:@"p2AccMove"]; [prefs synchronize]; } //control button if (activePlayer != 1) { btnMyButton.enabled = NO; } if (activePlayer == 1){ btnMyButton.enabled = YES; } [super viewDidLoad]; NSLog(@"upDatePos is %d",upDatePos); NSLog(@"After super viewdidload"); // Do any additional setup after loading the view from its nib. } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return YES; } @end