From e98bf6368ce669b482c6023f5c6106af3a1aac4a Mon Sep 17 00:00:00 2001 From: Diana Date: Sun, 28 Jun 2015 10:49:50 -0400 Subject: [PATCH 1/5] updated --- TicTacToe/TicTacToe/main.m | 193 ++++++++++++++++++++++++++++++++++++- 1 file changed, 190 insertions(+), 3 deletions(-) diff --git a/TicTacToe/TicTacToe/main.m b/TicTacToe/TicTacToe/main.m index 3a713ee..b9318ef 100644 --- a/TicTacToe/TicTacToe/main.m +++ b/TicTacToe/TicTacToe/main.m @@ -5,13 +5,200 @@ // Created by Michael Kavouras on 6/25/15. // Copyright (c) 2015 Mike Kavouras. All rights reserved. // - #import + + +@interface TicTacToe : NSObject + +-(void) setName: (NSString *)name; +-(NSString *)name; + +-(void) setOxChoice: (NSString *)oxChoice; +-(NSString *)oxChoice; + + +@end + + +@implementation TicTacToe +NSString *_name; +NSString *_oxChoice; + +-(void) setName: (NSString *)name{ + _name = name; +} + +-(NSString *) name { + return _name; +} + + + +-(void) setOxChoice: (NSString *)oxChoice{ + _oxChoice = oxChoice; + + NSMutableArray *boxes = [NSMutableArray arrayWithCapacity:9]; + for (int i=0; i<9; i++) { + boxes[i] = @" "; + } + NSLog (@"%@ | %@ | %@", boxes[0],boxes[1],boxes[2]); + NSLog (@"----------"); + NSLog (@"%@ | %@ | %@", boxes[3],boxes[4],boxes[5]); + NSLog (@"----------"); + NSLog (@"%@ | %@ | %@", boxes[6],boxes[7],boxes[8]); + + BOOL winnerIsX = NO; + BOOL winnerIsO = NO; + + int number; + for (int i =0; i<9; i++){ + while ([boxes[i] isEqualTo:@" "]) { + + + printf ("Enter a number "); + scanf("%d", &number); + //123 456 789 147 258 369 159 357 + + + + + if (number == 1){ + //chech if the box is empty + if ([boxes[0] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } + else boxes[0]= oxChoice ; + } + else if (number == 2) { + if ([boxes[1] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } else boxes[1]= oxChoice; + } + else if (number == 3) { + if ([boxes[2] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } else boxes[2]= oxChoice ; + } + else if (number == 4){ + if ([boxes[3] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } else boxes[3]= oxChoice ; + } + else if (number == 5){ + if ([boxes[4] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } else boxes[4]= oxChoice ; + } + else if (number == 6){ + if ([boxes[5] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } else boxes[5]= oxChoice ; + } + else if (number == 7){ + if ([boxes[6] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } else boxes[6]= oxChoice ; + } + else if (number == 8){ + if ([boxes[7] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } else boxes[7]= oxChoice ; + } + else if (number == 9){ + if ([boxes[8] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + } else boxes[8]= oxChoice ; + } + + if ((([boxes[0] isEqualToString: @"x"]) && ([boxes [1] isEqualToString: @"x"]) && ([boxes [2] isEqualToString: @"x"])) || + (([boxes[3] isEqualToString: @"x"]) && ([boxes [4] isEqualToString: @"x"]) && ([boxes [5] isEqualToString: @"x"])) || + (([boxes[6] isEqualToString: @"x"]) && ([boxes [7] isEqualToString: @"x"]) && ([boxes [8] isEqualToString: @"x"])) || + (([boxes[0] isEqualToString: @"x"]) && ([boxes [3] isEqualToString: @"x"]) && ([boxes [6] isEqualToString: @"x"])) || + (([boxes[1] isEqualToString: @"x"]) && ([boxes [4] isEqualToString: @"x"]) && ([boxes [7] isEqualToString: @"x"])) || + (([boxes[2] isEqualToString: @"x"]) && ([boxes [5] isEqualToString: @"x"]) && ([boxes [8] isEqualToString: @"x"])) || + (([boxes[0] isEqualToString: @"x"]) && ([boxes [4] isEqualToString: @"x"]) && ([boxes [8] isEqualToString: @"x"])) || + (([boxes[2] isEqualToString: @"x"]) && ([boxes [4] isEqualToString: @"x"]) && ([boxes [6] isEqualToString: @"x"]))) + winnerIsX = YES; + + else if ((([boxes[0] isEqualToString: @"o"]) && ([boxes [1] isEqualToString: @"o"]) && ([boxes [2] isEqualToString: @"o"])) || + (([boxes[3] isEqualToString: @"o"]) && ([boxes [4] isEqualToString: @"o"]) && ([boxes [5] isEqualToString: @"o"])) || + (([boxes[6] isEqualToString: @"o"]) && ([boxes [7] isEqualToString: @"o"]) && ([boxes [8] isEqualToString: @"o"])) || + (([boxes[0] isEqualToString: @"o"]) && ([boxes [3] isEqualToString: @"o"]) && ([boxes [6] isEqualToString: @"o"])) || + (([boxes[1] isEqualToString: @"o"]) && ([boxes [4] isEqualToString: @"o"]) && ([boxes [7] isEqualToString: @"o"])) || + (([boxes[2] isEqualToString: @"o"]) && ([boxes [5] isEqualToString: @"o"]) && ([boxes [8] isEqualToString: @"o"])) || + (([boxes[0] isEqualToString: @"o"]) && ([boxes [4] isEqualToString: @"o"]) && ([boxes [8] isEqualToString: @"o"])) || + (([boxes[2] isEqualToString: @"o"]) && ([boxes [4] isEqualToString: @"o"]) && ([boxes [6] isEqualToString: @"o"]))) + winnerIsO = YES; + + NSLog (@"%@ | %@ | %@", boxes[0],boxes[1],boxes[2]); + NSLog (@"----------"); + NSLog (@"%@ | %@ | %@", boxes[3],boxes[4],boxes[5]); + NSLog (@"----------"); + NSLog (@"%@ | %@ | %@", boxes[6],boxes[7],boxes[8]); + NSLog (@"\n\n\n\n"); + + + if ([oxChoice isEqualToString:@"x"]) + oxChoice = @"o"; + else + (oxChoice = @"x"); + + if (winnerIsX) { + printf("Winner is X"); + break; } + else if (winnerIsO) { + printf("Winner is O"); + break; } + } //end of while + if (winnerIsX) { + break; } + else if (winnerIsO) { + break; } + + } //end of for + + +} //end of the function +-(NSString *) oxChoice { + return _oxChoice; +} +@end + + + + int main(int argc, const char * argv[]) { @autoreleasepool { - // insert code here... - NSLog(@"Hello, World!"); + TicTacToe *user1 = [[TicTacToe alloc] init]; + + NSLog (@" 1 | 2 | 3"); + NSLog (@"----------"); + NSLog (@" 4 | 5 | 6"); + NSLog (@"----------"); + NSLog (@" 7 | 8 | 9"); + NSLog (@"\n"); + NSLog(@"Choose X or O: "); + + NSString *nsConversion ; + char userOption[2]; + + scanf("%s", userOption); + + nsConversion = [NSString stringWithCString: userOption encoding: NSASCIIStringEncoding]; + + NSLog(@"This is your choice: %@", nsConversion); + [user1 setOxChoice:nsConversion]; + + + + + + // for (int i = 1; i<=9; i++){ + // int number; + // + // + // } } return 0; } From 23d314ceed4bd721c0c6da58a556af7ffb349184 Mon Sep 17 00:00:00 2001 From: Diana Date: Sun, 28 Jun 2015 17:30:05 -0400 Subject: [PATCH 2/5] sundays version --- TicTacToe/TicTacToe/main.m | 159 +++++++++++++++++++++++++++++-------- 1 file changed, 127 insertions(+), 32 deletions(-) diff --git a/TicTacToe/TicTacToe/main.m b/TicTacToe/TicTacToe/main.m index b9318ef..0081e91 100644 --- a/TicTacToe/TicTacToe/main.m +++ b/TicTacToe/TicTacToe/main.m @@ -42,23 +42,24 @@ -(void) setOxChoice: (NSString *)oxChoice{ for (int i=0; i<9; i++) { boxes[i] = @" "; } - NSLog (@"%@ | %@ | %@", boxes[0],boxes[1],boxes[2]); - NSLog (@"----------"); - NSLog (@"%@ | %@ | %@", boxes[3],boxes[4],boxes[5]); - NSLog (@"----------"); - NSLog (@"%@ | %@ | %@", boxes[6],boxes[7],boxes[8]); + NSLog (@" %@ | %@ | %@ ", boxes[0],boxes[1],boxes[2]); + NSLog (@"-----------"); + NSLog (@" %@ | %@ | %@ ", boxes[3],boxes[4],boxes[5]); + NSLog (@"-----------"); + NSLog (@" %@ | %@ | %@ ", boxes[6],boxes[7],boxes[8]); BOOL winnerIsX = NO; BOOL winnerIsO = NO; - + //user number input int number; + + // for (int i =0; i<9; i++){ + //while there is still an empty box while ([boxes[i] isEqualTo:@" "]) { - printf ("Enter a number "); scanf("%d", &number); - //123 456 789 147 258 369 159 357 @@ -131,11 +132,11 @@ -(void) setOxChoice: (NSString *)oxChoice{ (([boxes[2] isEqualToString: @"o"]) && ([boxes [4] isEqualToString: @"o"]) && ([boxes [6] isEqualToString: @"o"]))) winnerIsO = YES; - NSLog (@"%@ | %@ | %@", boxes[0],boxes[1],boxes[2]); - NSLog (@"----------"); - NSLog (@"%@ | %@ | %@", boxes[3],boxes[4],boxes[5]); - NSLog (@"----------"); - NSLog (@"%@ | %@ | %@", boxes[6],boxes[7],boxes[8]); + NSLog (@" %@ | %@ | %@ ", boxes[0],boxes[1],boxes[2]); + NSLog (@"-----------"); + NSLog (@" %@ | %@ | %@ ", boxes[3],boxes[4],boxes[5]); + NSLog (@"-----------"); + NSLog (@" %@ | %@ | %@ ", boxes[6],boxes[7],boxes[8]); NSLog (@"\n\n\n\n"); @@ -155,9 +156,9 @@ -(void) setOxChoice: (NSString *)oxChoice{ break; } else if (winnerIsO) { break; } - + } //end of for - + } //end of the function -(NSString *) oxChoice { @@ -170,35 +171,129 @@ -(NSString *) oxChoice { int main(int argc, const char * argv[]) { @autoreleasepool { - TicTacToe *user1 = [[TicTacToe alloc] init]; + int singleOrMultiplayer; + int singlePlayerLevel, multiplePlayerLevel; + char player1Name[30], player2Name[30]; + NSString *nsConversion ; + + + while (true) { + NSLog (@"1. Single player"); + NSLog (@"2. Multiple players"); + scanf("%d", &singleOrMultiplayer); + fpurge(stdin); + + + if (singleOrMultiplayer == 1) { + NSLog (@"1. Level 1: Computer is totally dumb."); + NSLog (@"2. Level 2: Computer is smarter."); + NSLog (@"3. Level 3: You MAY win (only when you start)."); + NSLog (@"4. Level 4: Computer NEVER loses."); + scanf ("%d", &singlePlayerLevel); + break; + } + else if (singleOrMultiplayer == 2) { + NSLog (@"1. Level 1: Easy level"); + NSLog (@"2. Level 2: Loose your turn if you pick up an occupied box"); + scanf ("%d", &multiplePlayerLevel); + break; + } + else if ((singleOrMultiplayer != 1) || (singleOrMultiplayer != 2)) { + NSLog (@"Wrong choice! "); + continue; + } + + } //end of while + + + if (singleOrMultiplayer == 1) { + NSLog(@"Player 1 Name: "); + scanf ("%s", player1Name); + fpurge(stdin); + + if (singlePlayerLevel == 1) { + + } //end of if (singlePlayerLevel == 1) + else if (singlePlayerLevel == 2) { + + } //end of if (singlePlayerLevel == 2) + + else if (singlePlayerLevel == 3) { + + } //end of if (singlePlayerLevel == 3) + + else if (singlePlayerLevel == 2) { + + } //end of if (singlePlayerLevel == 3) + + else if (singlePlayerLevel == 4) { + + } //end of if (singlePlayerLevel == 4) + + + + } // end of if (singleOrMultiplayer == 1) + + + else if (singleOrMultiplayer == 2) { + NSLog(@"Player 1 Name: "); + scanf ("%s", player1Name); + NSLog(@"Player 2 Name: "); + scanf ("%s", player2Name); + fpurge(stdin); + + + if (multiplePlayerLevel == 1) { + // play the game without loosing your turn + } //end of if (multiplePlayerLevel == 1) + + else if (multiplePlayerLevel == 2) { + // play the game and loose your turn + } // end of if (multiplePlayerLevel == 2) + + + + } // end of if (singleOrMultiplayer == 2) + + NSLog (@" 1 | 2 | 3"); - NSLog (@"----------"); + NSLog (@"-----------"); NSLog (@" 4 | 5 | 6"); - NSLog (@"----------"); + NSLog (@"-----------"); NSLog (@" 7 | 8 | 9"); NSLog (@"\n"); - NSLog(@"Choose X or O: "); - NSString *nsConversion ; - char userOption[2]; - - scanf("%s", userOption); - - nsConversion = [NSString stringWithCString: userOption encoding: NSASCIIStringEncoding]; - NSLog(@"This is your choice: %@", nsConversion); - [user1 setOxChoice:nsConversion]; + char * userOption; + while (true) { + + NSLog(@"Choose X or O: "); + scanf("%s", userOption); + fpurge(stdin); + + // create nsstring + nsConversion = [NSString stringWithCString: userOption encoding: NSASCIIStringEncoding]; + + + // [nsConversion length] + if ([nsConversion length] == 1 && ([nsConversion isEqualToString:@"x"] || [nsConversion isEqualToString:@"0"])) { + NSLog(@"This is your choice: %@",nsConversion); + break; + } // end of if + else { + NSLog (@"Wrong choice! "); + continue; + } //end of else + + } // end of while + TicTacToe *user1 = [[TicTacToe alloc] init]; + [user1 setOxChoice:nsConversion]; - // for (int i = 1; i<=9; i++){ - // int number; - // - // - // } } return 0; } From 9f0d4a65ed7d877d72b0d78930872859eb88a1d0 Mon Sep 17 00:00:00 2001 From: Diana Date: Thu, 2 Jul 2015 19:16:02 -0400 Subject: [PATCH 3/5] Today's version --- TicTacToe/TicTacToe/main.m | 1135 ++++++++++++++++++++++++++++++------ 1 file changed, 949 insertions(+), 186 deletions(-) diff --git a/TicTacToe/TicTacToe/main.m b/TicTacToe/TicTacToe/main.m index 0081e91..61dbad5 100644 --- a/TicTacToe/TicTacToe/main.m +++ b/TicTacToe/TicTacToe/main.m @@ -1,253 +1,641 @@ +//// +//// main.m +//// TicTacToe +//// +//// Created by Michael Kavouras on 6/25/15. +//// Copyright (c) 2015 Mike Kavouras. All rights reserved. +//// +//#import // +// +// +//@interface TicTacToe : NSObject +// +//-(void) setName: (NSString *)name; +//-(NSString *)name; +// +//-(void) setOxChoice: (NSString *)oxChoice; +//-(NSString *)oxChoice; +// +// +//@end +// +// +//@implementation TicTacToe +//NSString *_name; +//NSString *_oxChoice; +// +//-(void) setName: (NSString *)name{ +// _name = name; +//} +// +//-(NSString *) name { +// return _name; +//} +// +// +// +//-(void) setOxChoice: (NSString *)oxChoice{ +// _oxChoice = oxChoice; +// +// NSMutableArray *_board = [NSMutableArray arrayWithCapacity:9]; +// for (int i=0; i<9; i++) { +// _board[i] = @" "; +// } +// NSLog (@" %@ | %@ | %@ ", _board[0],_board[1],_board[2]); +// NSLog (@"-----------"); +// NSLog (@" %@ | %@ | %@ ", _board[3],_board[4],_board[5]); +// NSLog (@"-----------"); +// NSLog (@" %@ | %@ | %@ ", _board[6],_board[7],_board[8]); +// +// BOOL winnerIsX = NO; +// BOOL winnerIsO = NO; +// //user number input +// int number; +// +// // +// for (int i =0; i<9; i++){ +// //while there is still an empty box +// while ([_board[i] isEqualTo:@" "]) { +// +// printf ("Enter a number "); +// scanf("%d", &number); +// +// +// +// +// if (number == 1){ +// //chech if the box is empty +// if ([_board[0] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } +// else _board[0]= oxChoice ; +// } +// else if (number == 2) { +// if ([_board[1] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } else _board[1]= oxChoice; +// } +// else if (number == 3) { +// if ([_board[2] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } else _board[2]= oxChoice ; +// } +// else if (number == 4){ +// if ([_board[3] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } else _board[3]= oxChoice ; +// } +// else if (number == 5){ +// if ([_board[4] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } else _board[4]= oxChoice ; +// } +// else if (number == 6){ +// if ([_board[5] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } else _board[5]= oxChoice ; +// } +// else if (number == 7){ +// if ([_board[6] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } else _board[6]= oxChoice ; +// } +// else if (number == 8){ +// if ([_board[7] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } else _board[7]= oxChoice ; +// } +// else if (number == 9){ +// if ([_board[8] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } else _board[8]= oxChoice ; +// } +// +// if ((([_board[0] isEqualToString: @"x"]) && ([_board [1] isEqualToString: @"x"]) && ([_board [2] isEqualToString: @"x"])) || +// (([_board[3] isEqualToString: @"x"]) && ([_board [4] isEqualToString: @"x"]) && ([_board [5] isEqualToString: @"x"])) || +// (([_board[6] isEqualToString: @"x"]) && ([_board [7] isEqualToString: @"x"]) && ([_board [8] isEqualToString: @"x"])) || +// (([_board[0] isEqualToString: @"x"]) && ([_board [3] isEqualToString: @"x"]) && ([_board [6] isEqualToString: @"x"])) || +// (([_board[1] isEqualToString: @"x"]) && ([_board [4] isEqualToString: @"x"]) && ([_board [7] isEqualToString: @"x"])) || +// (([_board[2] isEqualToString: @"x"]) && ([_board [5] isEqualToString: @"x"]) && ([_board [8] isEqualToString: @"x"])) || +// (([_board[0] isEqualToString: @"x"]) && ([_board [4] isEqualToString: @"x"]) && ([_board [8] isEqualToString: @"x"])) || +// (([_board[2] isEqualToString: @"x"]) && ([_board [4] isEqualToString: @"x"]) && ([_board [6] isEqualToString: @"x"]))) +// winnerIsX = YES; +// +// else if ((([_board[0] isEqualToString: @"o"]) && ([_board [1] isEqualToString: @"o"]) && ([_board [2] isEqualToString: @"o"])) || +// (([_board[3] isEqualToString: @"o"]) && ([_board [4] isEqualToString: @"o"]) && ([_board [5] isEqualToString: @"o"])) || +// (([_board[6] isEqualToString: @"o"]) && ([_board [7] isEqualToString: @"o"]) && ([_board [8] isEqualToString: @"o"])) || +// (([_board[0] isEqualToString: @"o"]) && ([_board [3] isEqualToString: @"o"]) && ([_board [6] isEqualToString: @"o"])) || +// (([_board[1] isEqualToString: @"o"]) && ([_board [4] isEqualToString: @"o"]) && ([_board [7] isEqualToString: @"o"])) || +// (([_board[2] isEqualToString: @"o"]) && ([_board [5] isEqualToString: @"o"]) && ([_board [8] isEqualToString: @"o"])) || +// (([_board[0] isEqualToString: @"o"]) && ([_board [4] isEqualToString: @"o"]) && ([_board [8] isEqualToString: @"o"])) || +// (([_board[2] isEqualToString: @"o"]) && ([_board [4] isEqualToString: @"o"]) && ([_board [6] isEqualToString: @"o"]))) +// winnerIsO = YES; +// +// NSLog (@" %@ | %@ | %@ ", _board[0],_board[1],_board[2]); +// NSLog (@"-----------"); +// NSLog (@" %@ | %@ | %@ ", _board[3],_board[4],_board[5]); +// NSLog (@"-----------"); +// NSLog (@" %@ | %@ | %@ ", _board[6],_board[7],_board[8]); +// NSLog (@"\n\n\n\n"); +// +// +// if ([oxChoice isEqualToString:@"x"]) +// oxChoice = @"o"; +// else +// (oxChoice = @"x"); +// +// if (winnerIsX) { +// printf("Winner is X"); +// break; } +// else if (winnerIsO) { +// printf("Winner is O"); +// break; } +// } //end of while +// if (winnerIsX) { +// break; } +// else if (winnerIsO) { +// break; } +// +// } //end of for +// +// +//} //end of the function +//-(NSString *) oxChoice { +// return _oxChoice; +//} +//@end +// +// +// +// +//int main(int argc, const char * argv[]) { +// @autoreleasepool { +// int singleOrMultiplayer; +// int singlePlayerLevel, multiplePlayerLevel; +// char player1Name[30], player2Name[30]; +// NSString *nsConversion ; +// +// +// while (true) { +// NSLog (@"1. Single player"); +// NSLog (@"2. Multiple players"); +// scanf("%d", &singleOrMultiplayer); +// fpurge(stdin); +// +// +// if (singleOrMultiplayer == 1) { +// NSLog (@"1. Level 1: Computer is totally dumb."); +// NSLog (@"2. Level 2: Computer is smarter."); +// NSLog (@"3. Level 3: You MAY win (only when you start)."); +// NSLog (@"4. Level 4: Computer NEVER loses."); +// scanf ("%d", &singlePlayerLevel); +// break; +// } +// else if (singleOrMultiplayer == 2) { +// NSLog (@"1. Level 1: Easy level"); +// NSLog (@"2. Level 2: Loose your turn if you pick up an occupied box"); +// scanf ("%d", &multiplePlayerLevel); +// break; +// } +// else if ((singleOrMultiplayer != 1) || (singleOrMultiplayer != 2)) { +// NSLog (@"Wrong choice! "); +// continue; +// } +// +// } //end of while +// +// +// if (singleOrMultiplayer == 1) { +// NSLog(@"Player 1 Name: "); +// scanf ("%s", player1Name); +// fpurge(stdin); +// +// if (singlePlayerLevel == 1) { +// +// } //end of if (singlePlayerLevel == 1) +// else if (singlePlayerLevel == 2) { +// +// } //end of if (singlePlayerLevel == 2) +// +// else if (singlePlayerLevel == 3) { +// +// } //end of if (singlePlayerLevel == 3) +// +// else if (singlePlayerLevel == 2) { +// +// } //end of if (singlePlayerLevel == 3) +// +// else if (singlePlayerLevel == 4) { +// +// } //end of if (singlePlayerLevel == 4) +// +// +// +// } // end of if (singleOrMultiplayer == 1) +// +// +// else if (singleOrMultiplayer == 2) { +// NSLog(@"Player 1 Name: "); +// scanf ("%s", player1Name); +// NSLog(@"Player 2 Name: "); +// scanf ("%s", player2Name); +// fpurge(stdin); +// +// +// if (multiplePlayerLevel == 1) { +// // play the game without loosing your turn +// } //end of if (multiplePlayerLevel == 1) +// +// else if (multiplePlayerLevel == 2) { +// // play the game and loose your turn +// } // end of if (multiplePlayerLevel == 2) +// +// +// +// } // end of if (singleOrMultiplayer == 2) +// +// +// +// NSLog (@" 1 | 2 | 3"); +// NSLog (@"-----------"); +// NSLog (@" 4 | 5 | 6"); +// NSLog (@"-----------"); +// NSLog (@" 7 | 8 | 9"); +// NSLog (@"\n"); +// +// +// char * userOption; +// +// while (true) { +// +// NSLog(@"Choose X or O: "); +// scanf("%s", userOption); +// fpurge(stdin); +// +// // create nsstring +// nsConversion = [NSString stringWithCString: userOption encoding: NSASCIIStringEncoding]; +// +// +// // [nsConversion length] +// if ([nsConversion length] == 1 && ([nsConversion isEqualToString:@"x"] || [nsConversion isEqualToString:@"0"])) { +// NSLog(@"This is your choice: %@",nsConversion); +// break; +// } // end of if +// else { +// NSLog (@"Wrong choice! "); +// continue; +// } //end of else +// +// } // end of while +// +// +// TicTacToe *user1 = [[TicTacToe alloc] init]; +// +// [user1 setOxChoice:nsConversion]; +// +// } +// return 0; +//} + + + // main.m // TicTacToe // // Created by Michael Kavouras on 6/25/15. // Copyright (c) 2015 Mike Kavouras. All rights reserved. -// -#import +#import @interface TicTacToe : NSObject --(void) setName: (NSString *)name; --(NSString *)name; --(void) setOxChoice: (NSString *)oxChoice; --(NSString *)oxChoice; -@end +-(void) setGameLevel: (int *)gameLevel; +-(int *)gameLevel; +//-(void) setUserMode: (int *)userMode, (int *)gameLevel; +-(int *)userMode; -@implementation TicTacToe -NSString *_name; -NSString *_oxChoice; +-(void) initializeArray: (int) dimension; +-(void) printBoard; +-(BOOL) isPositionValid; +-(BOOL) isWinner; +-(BOOL) isFull; + +@end --(void) setName: (NSString *)name{ - _name = name; -} --(NSString *) name { - return _name; +@implementation TicTacToe { + +int *_gameLevel; +int *_userMode; +int *_gridSize; +int *_chooseABox; +NSString *_xOrO; +NSMutableArray *_board; +//BOOL _winnerIsX == NO; +//BOOL _winnerIsO == NO; } --(void) setOxChoice: (NSString *)oxChoice{ - _oxChoice = oxChoice; +-(void) initializeArray: (int) gridSize{ + _gridSize = &gridSize; + _board = [[NSMutableArray alloc] init]; - NSMutableArray *boxes = [NSMutableArray arrayWithCapacity:9]; - for (int i=0; i<9; i++) { - boxes[i] = @" "; + _board = [NSMutableArray arrayWithCapacity:_gridSize]; + for (int i=0; i +// +// +//@interface TicTacToe : NSObject +// +//-(void) setName: (NSString *)name; +//-(NSString *)name; +// +//-(void) setUserMode: (NSString *)userMode; +//-(NSString *)userMode; +// +//@end +// +// +//@implementation TicTacToe +//NSString *_name; +//NSString *_userMode; +// +//-(void) setName: (NSString *)name{ +// _name = name; +//} +// +//-(NSString *) name { +// return _name; +//} +// +// +//-(void) setUserMode: (NSString *)userMode{ +// _userMode = userMode; +// +// +// //create and initialize mutableArray +// NSMutableArray *_board = [NSMutableArray arrayWithCapacity:9]; +// for (int i=0; i<9; i++) { +// _board[i] = @" "; +// } +// +// //get a number a number from user [1-9] +// int number; +// char * userOption; +// NSString *oxChoice; +// //create grid size; (9 = 3x3 grid) +// for (int i =0; i<9; i++){ +// +// +// //run game until all _board are filled up +// while ([_board[i] isEqualTo:@" "]) { +// printf ("Enter a number "); +// scanf("%d", &number); +// +// +// //check for empty _board before entering user selected options +// if ([_board[number-1] isNotEqualTo:@" "]){ +// NSLog(@"please choose another box"); +// } +// +// +// //if box is empty enter user selection +// else if ([_board[number-1] isEqualTo:@" "]){ +// _board[number-1] = oxChoice; +// } +// +// //working grid for playing the game +// NSLog (@" %@ | %@ | %@ ", _board[0],_board[1],_board[2]); +// NSLog (@"-----------"); +// NSLog (@" %@ | %@ | %@ ", _board[3],_board[4],_board[5]); +// NSLog (@"-----------"); +// NSLog (@" %@ | %@ | %@ ", _board[6],_board[7],_board[8]); +// NSLog (@"\n\n\n\n"); +// +// +// if ([oxChoice isEqualToString:@"x"]) +// oxChoice = @"o"; +// else +// (oxChoice = @"x"); +// +// +// +// +// +// } +// +// +// }//end of for LOOP +// +// +// +//} +//@end +// +// +//int main(int argc, const char * argv[]) { +// @autoreleasepool { +// +// int singleOrMultiplayer; +// int singlePlayerLevel, multiplePlayerLevel; +// char player1Name[30], player2Name[30]; +// NSString *nsConversion ; +// +// +// while (true) { +// NSLog (@"1. Single player"); +// NSLog (@"2. Multiple players"); +// scanf("%d", &singleOrMultiplayer); +// fpurge(stdin); +// +// +// if (singleOrMultiplayer == 1) { +// NSLog (@"1. Level 1: Computer is totally dumb."); +// NSLog (@"2. Level 2: Computer is smarter."); +// NSLog (@"3. Level 3: You MAY win (only when you start)."); +// NSLog (@"4. Level 4: Computer NEVER loses."); +// scanf ("%d", &singlePlayerLevel); +// break; +// } +// else if (singleOrMultiplayer == 2) { +// NSLog (@"1. Level 1: Easy level"); +// NSLog (@"2. Level 2: Loose your turn if you pick up an occupied box"); +// scanf ("%d", &multiplePlayerLevel); +// break; +// } +// else if ((singleOrMultiplayer != 1) || (singleOrMultiplayer != 2)) { +// NSLog (@"Wrong choice! "); +// continue; +// } +// +// } //end of while +// +// +// if (singleOrMultiplayer == 1) { +// NSLog(@"Player 1 Name: "); +// scanf ("%s", player1Name); +// fpurge(stdin); +// +// if (singlePlayerLevel == 1) { +// +// } //end of if (singlePlayerLevel == 1) +// else if (singlePlayerLevel == 2) { +// +// } //end of if (singlePlayerLevel == 2) +// +// else if (singlePlayerLevel == 3) { +// +// } //end of if (singlePlayerLevel == 3) +// +// else if (singlePlayerLevel == 2) { +// +// } //end of if (singlePlayerLevel == 3) +// +// else if (singlePlayerLevel == 4) { +// +// } //end of if (singlePlayerLevel == 4) +// +// +// +// } // end of if (singleOrMultiplayer == 1) +// +// +// else if (singleOrMultiplayer == 2) { +// NSLog(@"Player 1 Name: "); +// scanf ("%s", player1Name); +// NSLog(@"Player 2 Name: "); +// scanf ("%s", player2Name); +// fpurge(stdin); +// +// +// if (multiplePlayerLevel == 1) { +// // play the game without loosing your turn +// } //end of if (multiplePlayerLevel == 1) +// +// else if (multiplePlayerLevel == 2) { +// // play the game and loose your turn +// } // end of if (multiplePlayerLevel == 2) +// +// +// +// } // end of if (singleOrMultiplayer == 2) +// +// +// //display grid numbers for users and instructions +// NSLog (@" 1 | 2 | 3"); +// NSLog (@"-----------"); +// NSLog (@" 4 | 5 | 6"); +// NSLog (@"-----------"); +// NSLog (@" 7 | 8 | 9"); +// NSLog (@"\n"); +// +// char * userOption; +// NSString *oxChoice; +// +// +// while (true) { +// +// NSLog(@"Choose x or o: "); +// scanf("%s", userOption); +// fpurge(stdin); +// +// // convert userOption to nsstring +// nsConversion = [NSString stringWithCString: userOption encoding: NSASCIIStringEncoding]; +// +// +// //check nsConversion for good input x/o, regject everything else +// if ([nsConversion length] == 1 && ([nsConversion isEqualToString:@"x"] || [nsConversion isEqualToString:@"o"])) { +// NSLog(@"This is your choice: %@",nsConversion); +// break; +// } +// else { +// NSLog (@"Wrong choice! "); +// continue; +// } //end nsConversion filter check +// +// } // end of while +// +// +// TicTacToe *user1 = [[TicTacToe alloc] init]; +// +// [user1 setUserMode:nsConversion]; +// } return 0; -} +} \ No newline at end of file From 7dc44dc97c7a3d190bf4738c89d48f192eb8da9e Mon Sep 17 00:00:00 2001 From: Diana Date: Thu, 2 Jul 2015 19:23:57 -0400 Subject: [PATCH 4/5] Latest version --- TicTacToe/TicTacToe.xcodeproj/project.pbxproj | 76 +- .../UserInterfaceState.xcuserstate | Bin 9694 -> 0 bytes .../xcschemes/TicTacToe.xcscheme | 88 - TicTacToe/TicTacToe/main.m | 1644 +++++++---------- 4 files changed, 728 insertions(+), 1080 deletions(-) delete mode 100644 TicTacToe/TicTacToe.xcodeproj/project.xcworkspace/xcuserdata/mikekavouras.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 TicTacToe/TicTacToe.xcodeproj/xcuserdata/mikekavouras.xcuserdatad/xcschemes/TicTacToe.xcscheme diff --git a/TicTacToe/TicTacToe.xcodeproj/project.pbxproj b/TicTacToe/TicTacToe.xcodeproj/project.pbxproj index 71ad89c..8e871a2 100644 --- a/TicTacToe/TicTacToe.xcodeproj/project.pbxproj +++ b/TicTacToe/TicTacToe.xcodeproj/project.pbxproj @@ -7,11 +7,11 @@ objects = { /* Begin PBXBuildFile section */ - 8D9789E41B3C9A70007CF4CF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D9789E31B3C9A70007CF4CF /* main.m */; }; + 84BB6D771B44A48100D302F5 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84BB6D761B44A48100D302F5 /* main.m */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ - 8D9789DE1B3C9A70007CF4CF /* CopyFiles */ = { + 84BB6D711B44A48100D302F5 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = /usr/share/man/man1/; @@ -23,12 +23,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 8D9789E01B3C9A70007CF4CF /* TicTacToe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TicTacToe; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D9789E31B3C9A70007CF4CF /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 84BB6D731B44A48100D302F5 /* TicTacToe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TicTacToe; sourceTree = BUILT_PRODUCTS_DIR; }; + 84BB6D761B44A48100D302F5 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 8D9789DD1B3C9A70007CF4CF /* Frameworks */ = { + 84BB6D701B44A48100D302F5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -38,26 +38,26 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 8D9789D71B3C9A70007CF4CF = { + 84BB6D6A1B44A48100D302F5 = { isa = PBXGroup; children = ( - 8D9789E21B3C9A70007CF4CF /* TicTacToe */, - 8D9789E11B3C9A70007CF4CF /* Products */, + 84BB6D751B44A48100D302F5 /* TicTacToe */, + 84BB6D741B44A48100D302F5 /* Products */, ); sourceTree = ""; }; - 8D9789E11B3C9A70007CF4CF /* Products */ = { + 84BB6D741B44A48100D302F5 /* Products */ = { isa = PBXGroup; children = ( - 8D9789E01B3C9A70007CF4CF /* TicTacToe */, + 84BB6D731B44A48100D302F5 /* TicTacToe */, ); name = Products; sourceTree = ""; }; - 8D9789E21B3C9A70007CF4CF /* TicTacToe */ = { + 84BB6D751B44A48100D302F5 /* TicTacToe */ = { isa = PBXGroup; children = ( - 8D9789E31B3C9A70007CF4CF /* main.m */, + 84BB6D761B44A48100D302F5 /* main.m */, ); path = TicTacToe; sourceTree = ""; @@ -65,13 +65,13 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 8D9789DF1B3C9A70007CF4CF /* TicTacToe */ = { + 84BB6D721B44A48100D302F5 /* TicTacToe */ = { isa = PBXNativeTarget; - buildConfigurationList = 8D9789E71B3C9A70007CF4CF /* Build configuration list for PBXNativeTarget "TicTacToe" */; + buildConfigurationList = 84BB6D7A1B44A48100D302F5 /* Build configuration list for PBXNativeTarget "TicTacToe" */; buildPhases = ( - 8D9789DC1B3C9A70007CF4CF /* Sources */, - 8D9789DD1B3C9A70007CF4CF /* Frameworks */, - 8D9789DE1B3C9A70007CF4CF /* CopyFiles */, + 84BB6D6F1B44A48100D302F5 /* Sources */, + 84BB6D701B44A48100D302F5 /* Frameworks */, + 84BB6D711B44A48100D302F5 /* CopyFiles */, ); buildRules = ( ); @@ -79,53 +79,53 @@ ); name = TicTacToe; productName = TicTacToe; - productReference = 8D9789E01B3C9A70007CF4CF /* TicTacToe */; + productReference = 84BB6D731B44A48100D302F5 /* TicTacToe */; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 8D9789D81B3C9A70007CF4CF /* Project object */ = { + 84BB6D6B1B44A48100D302F5 /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0630; - ORGANIZATIONNAME = "Mike Kavouras"; + ORGANIZATIONNAME = "Diana Elezaj"; TargetAttributes = { - 8D9789DF1B3C9A70007CF4CF = { + 84BB6D721B44A48100D302F5 = { CreatedOnToolsVersion = 6.3.2; }; }; }; - buildConfigurationList = 8D9789DB1B3C9A70007CF4CF /* Build configuration list for PBXProject "TicTacToe" */; + buildConfigurationList = 84BB6D6E1B44A48100D302F5 /* Build configuration list for PBXProject "TicTacToe" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 8D9789D71B3C9A70007CF4CF; - productRefGroup = 8D9789E11B3C9A70007CF4CF /* Products */; + mainGroup = 84BB6D6A1B44A48100D302F5; + productRefGroup = 84BB6D741B44A48100D302F5 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 8D9789DF1B3C9A70007CF4CF /* TicTacToe */, + 84BB6D721B44A48100D302F5 /* TicTacToe */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 8D9789DC1B3C9A70007CF4CF /* Sources */ = { + 84BB6D6F1B44A48100D302F5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D9789E41B3C9A70007CF4CF /* main.m in Sources */, + 84BB6D771B44A48100D302F5 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ - 8D9789E51B3C9A70007CF4CF /* Debug */ = { + 84BB6D781B44A48100D302F5 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -167,7 +167,7 @@ }; name = Debug; }; - 8D9789E61B3C9A70007CF4CF /* Release */ = { + 84BB6D791B44A48100D302F5 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -202,14 +202,14 @@ }; name = Release; }; - 8D9789E81B3C9A70007CF4CF /* Debug */ = { + 84BB6D7B1B44A48100D302F5 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; }; - 8D9789E91B3C9A70007CF4CF /* Release */ = { + 84BB6D7C1B44A48100D302F5 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { PRODUCT_NAME = "$(TARGET_NAME)"; @@ -219,24 +219,24 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 8D9789DB1B3C9A70007CF4CF /* Build configuration list for PBXProject "TicTacToe" */ = { + 84BB6D6E1B44A48100D302F5 /* Build configuration list for PBXProject "TicTacToe" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8D9789E51B3C9A70007CF4CF /* Debug */, - 8D9789E61B3C9A70007CF4CF /* Release */, + 84BB6D781B44A48100D302F5 /* Debug */, + 84BB6D791B44A48100D302F5 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8D9789E71B3C9A70007CF4CF /* Build configuration list for PBXNativeTarget "TicTacToe" */ = { + 84BB6D7A1B44A48100D302F5 /* Build configuration list for PBXNativeTarget "TicTacToe" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8D9789E81B3C9A70007CF4CF /* Debug */, - 8D9789E91B3C9A70007CF4CF /* Release */, + 84BB6D7B1B44A48100D302F5 /* Debug */, + 84BB6D7C1B44A48100D302F5 /* Release */, ); defaultConfigurationIsVisible = 0; }; /* End XCConfigurationList section */ }; - rootObject = 8D9789D81B3C9A70007CF4CF /* Project object */; + rootObject = 84BB6D6B1B44A48100D302F5 /* Project object */; } diff --git a/TicTacToe/TicTacToe.xcodeproj/project.xcworkspace/xcuserdata/mikekavouras.xcuserdatad/UserInterfaceState.xcuserstate b/TicTacToe/TicTacToe.xcodeproj/project.xcworkspace/xcuserdata/mikekavouras.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index dcdbd7f7dd03d320a21b4afefbaa876de8aaf51b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9694 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TicTacToe/TicTacToe/main.m b/TicTacToe/TicTacToe/main.m index 61dbad5..b439bb3 100644 --- a/TicTacToe/TicTacToe/main.m +++ b/TicTacToe/TicTacToe/main.m @@ -1,305 +1,4 @@ -//// -//// main.m -//// TicTacToe -//// -//// Created by Michael Kavouras on 6/25/15. -//// Copyright (c) 2015 Mike Kavouras. All rights reserved. -//// -//#import // -// -// -//@interface TicTacToe : NSObject -// -//-(void) setName: (NSString *)name; -//-(NSString *)name; -// -//-(void) setOxChoice: (NSString *)oxChoice; -//-(NSString *)oxChoice; -// -// -//@end -// -// -//@implementation TicTacToe -//NSString *_name; -//NSString *_oxChoice; -// -//-(void) setName: (NSString *)name{ -// _name = name; -//} -// -//-(NSString *) name { -// return _name; -//} -// -// -// -//-(void) setOxChoice: (NSString *)oxChoice{ -// _oxChoice = oxChoice; -// -// NSMutableArray *_board = [NSMutableArray arrayWithCapacity:9]; -// for (int i=0; i<9; i++) { -// _board[i] = @" "; -// } -// NSLog (@" %@ | %@ | %@ ", _board[0],_board[1],_board[2]); -// NSLog (@"-----------"); -// NSLog (@" %@ | %@ | %@ ", _board[3],_board[4],_board[5]); -// NSLog (@"-----------"); -// NSLog (@" %@ | %@ | %@ ", _board[6],_board[7],_board[8]); -// -// BOOL winnerIsX = NO; -// BOOL winnerIsO = NO; -// //user number input -// int number; -// -// // -// for (int i =0; i<9; i++){ -// //while there is still an empty box -// while ([_board[i] isEqualTo:@" "]) { -// -// printf ("Enter a number "); -// scanf("%d", &number); -// -// -// -// -// if (number == 1){ -// //chech if the box is empty -// if ([_board[0] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } -// else _board[0]= oxChoice ; -// } -// else if (number == 2) { -// if ([_board[1] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } else _board[1]= oxChoice; -// } -// else if (number == 3) { -// if ([_board[2] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } else _board[2]= oxChoice ; -// } -// else if (number == 4){ -// if ([_board[3] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } else _board[3]= oxChoice ; -// } -// else if (number == 5){ -// if ([_board[4] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } else _board[4]= oxChoice ; -// } -// else if (number == 6){ -// if ([_board[5] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } else _board[5]= oxChoice ; -// } -// else if (number == 7){ -// if ([_board[6] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } else _board[6]= oxChoice ; -// } -// else if (number == 8){ -// if ([_board[7] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } else _board[7]= oxChoice ; -// } -// else if (number == 9){ -// if ([_board[8] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } else _board[8]= oxChoice ; -// } -// -// if ((([_board[0] isEqualToString: @"x"]) && ([_board [1] isEqualToString: @"x"]) && ([_board [2] isEqualToString: @"x"])) || -// (([_board[3] isEqualToString: @"x"]) && ([_board [4] isEqualToString: @"x"]) && ([_board [5] isEqualToString: @"x"])) || -// (([_board[6] isEqualToString: @"x"]) && ([_board [7] isEqualToString: @"x"]) && ([_board [8] isEqualToString: @"x"])) || -// (([_board[0] isEqualToString: @"x"]) && ([_board [3] isEqualToString: @"x"]) && ([_board [6] isEqualToString: @"x"])) || -// (([_board[1] isEqualToString: @"x"]) && ([_board [4] isEqualToString: @"x"]) && ([_board [7] isEqualToString: @"x"])) || -// (([_board[2] isEqualToString: @"x"]) && ([_board [5] isEqualToString: @"x"]) && ([_board [8] isEqualToString: @"x"])) || -// (([_board[0] isEqualToString: @"x"]) && ([_board [4] isEqualToString: @"x"]) && ([_board [8] isEqualToString: @"x"])) || -// (([_board[2] isEqualToString: @"x"]) && ([_board [4] isEqualToString: @"x"]) && ([_board [6] isEqualToString: @"x"]))) -// winnerIsX = YES; -// -// else if ((([_board[0] isEqualToString: @"o"]) && ([_board [1] isEqualToString: @"o"]) && ([_board [2] isEqualToString: @"o"])) || -// (([_board[3] isEqualToString: @"o"]) && ([_board [4] isEqualToString: @"o"]) && ([_board [5] isEqualToString: @"o"])) || -// (([_board[6] isEqualToString: @"o"]) && ([_board [7] isEqualToString: @"o"]) && ([_board [8] isEqualToString: @"o"])) || -// (([_board[0] isEqualToString: @"o"]) && ([_board [3] isEqualToString: @"o"]) && ([_board [6] isEqualToString: @"o"])) || -// (([_board[1] isEqualToString: @"o"]) && ([_board [4] isEqualToString: @"o"]) && ([_board [7] isEqualToString: @"o"])) || -// (([_board[2] isEqualToString: @"o"]) && ([_board [5] isEqualToString: @"o"]) && ([_board [8] isEqualToString: @"o"])) || -// (([_board[0] isEqualToString: @"o"]) && ([_board [4] isEqualToString: @"o"]) && ([_board [8] isEqualToString: @"o"])) || -// (([_board[2] isEqualToString: @"o"]) && ([_board [4] isEqualToString: @"o"]) && ([_board [6] isEqualToString: @"o"]))) -// winnerIsO = YES; -// -// NSLog (@" %@ | %@ | %@ ", _board[0],_board[1],_board[2]); -// NSLog (@"-----------"); -// NSLog (@" %@ | %@ | %@ ", _board[3],_board[4],_board[5]); -// NSLog (@"-----------"); -// NSLog (@" %@ | %@ | %@ ", _board[6],_board[7],_board[8]); -// NSLog (@"\n\n\n\n"); -// -// -// if ([oxChoice isEqualToString:@"x"]) -// oxChoice = @"o"; -// else -// (oxChoice = @"x"); -// -// if (winnerIsX) { -// printf("Winner is X"); -// break; } -// else if (winnerIsO) { -// printf("Winner is O"); -// break; } -// } //end of while -// if (winnerIsX) { -// break; } -// else if (winnerIsO) { -// break; } -// -// } //end of for -// -// -//} //end of the function -//-(NSString *) oxChoice { -// return _oxChoice; -//} -//@end -// -// -// -// -//int main(int argc, const char * argv[]) { -// @autoreleasepool { -// int singleOrMultiplayer; -// int singlePlayerLevel, multiplePlayerLevel; -// char player1Name[30], player2Name[30]; -// NSString *nsConversion ; -// -// -// while (true) { -// NSLog (@"1. Single player"); -// NSLog (@"2. Multiple players"); -// scanf("%d", &singleOrMultiplayer); -// fpurge(stdin); -// -// -// if (singleOrMultiplayer == 1) { -// NSLog (@"1. Level 1: Computer is totally dumb."); -// NSLog (@"2. Level 2: Computer is smarter."); -// NSLog (@"3. Level 3: You MAY win (only when you start)."); -// NSLog (@"4. Level 4: Computer NEVER loses."); -// scanf ("%d", &singlePlayerLevel); -// break; -// } -// else if (singleOrMultiplayer == 2) { -// NSLog (@"1. Level 1: Easy level"); -// NSLog (@"2. Level 2: Loose your turn if you pick up an occupied box"); -// scanf ("%d", &multiplePlayerLevel); -// break; -// } -// else if ((singleOrMultiplayer != 1) || (singleOrMultiplayer != 2)) { -// NSLog (@"Wrong choice! "); -// continue; -// } -// -// } //end of while -// -// -// if (singleOrMultiplayer == 1) { -// NSLog(@"Player 1 Name: "); -// scanf ("%s", player1Name); -// fpurge(stdin); -// -// if (singlePlayerLevel == 1) { -// -// } //end of if (singlePlayerLevel == 1) -// else if (singlePlayerLevel == 2) { -// -// } //end of if (singlePlayerLevel == 2) -// -// else if (singlePlayerLevel == 3) { -// -// } //end of if (singlePlayerLevel == 3) -// -// else if (singlePlayerLevel == 2) { -// -// } //end of if (singlePlayerLevel == 3) -// -// else if (singlePlayerLevel == 4) { -// -// } //end of if (singlePlayerLevel == 4) -// -// -// -// } // end of if (singleOrMultiplayer == 1) -// -// -// else if (singleOrMultiplayer == 2) { -// NSLog(@"Player 1 Name: "); -// scanf ("%s", player1Name); -// NSLog(@"Player 2 Name: "); -// scanf ("%s", player2Name); -// fpurge(stdin); -// -// -// if (multiplePlayerLevel == 1) { -// // play the game without loosing your turn -// } //end of if (multiplePlayerLevel == 1) -// -// else if (multiplePlayerLevel == 2) { -// // play the game and loose your turn -// } // end of if (multiplePlayerLevel == 2) -// -// -// -// } // end of if (singleOrMultiplayer == 2) -// -// -// -// NSLog (@" 1 | 2 | 3"); -// NSLog (@"-----------"); -// NSLog (@" 4 | 5 | 6"); -// NSLog (@"-----------"); -// NSLog (@" 7 | 8 | 9"); -// NSLog (@"\n"); -// -// -// char * userOption; -// -// while (true) { -// -// NSLog(@"Choose X or O: "); -// scanf("%s", userOption); -// fpurge(stdin); -// -// // create nsstring -// nsConversion = [NSString stringWithCString: userOption encoding: NSASCIIStringEncoding]; -// -// -// // [nsConversion length] -// if ([nsConversion length] == 1 && ([nsConversion isEqualToString:@"x"] || [nsConversion isEqualToString:@"0"])) { -// NSLog(@"This is your choice: %@",nsConversion); -// break; -// } // end of if -// else { -// NSLog (@"Wrong choice! "); -// continue; -// } //end of else -// -// } // end of while -// -// -// TicTacToe *user1 = [[TicTacToe alloc] init]; -// -// [user1 setOxChoice:nsConversion]; -// -// } -// return 0; -//} - - - // main.m // TicTacToe // @@ -313,750 +12,787 @@ @interface TicTacToe : NSObject +-(void) setSingleOrMultiMode:(int *)singleOrMultiMode; +-(int *)singleOrMultiMode; --(void) setGameLevel: (int *)gameLevel; --(int *)gameLevel; -//-(void) setUserMode: (int *)userMode, (int *)gameLevel; --(int *)userMode; --(void) initializeArray: (int) dimension; --(void) printBoard; --(BOOL) isPositionValid; --(BOOL) isWinner; --(BOOL) isFull; +-(char)parseData:(NSString *)parsedData; +-(void) initializeArray: (int) boardsize; +-(void) printBoard: (NSString *)gridSize; +-(BOOL) winner; @end @implementation TicTacToe { - -int *_gameLevel; -int *_userMode; -int *_gridSize; -int *_chooseABox; -NSString *_xOrO; -NSMutableArray *_board; -//BOOL _winnerIsX == NO; -//BOOL _winnerIsO == NO; + NSMutableArray *boxes; + + NSString *_gridSize; + int *_boardSize; + NSString *_gameLevel; + NSString *_singleOrMultiMode; + NSString *_oXchoice; + } - - --(void) initializeArray: (int) gridSize{ - _gridSize = &gridSize; - _board = [[NSMutableArray alloc] init]; +-(void) initializeArray: (int) boardsize{ + _boardSize = &boardsize; + boxes = [[NSMutableArray alloc] init]; - _board = [NSMutableArray arrayWithCapacity:_gridSize]; - for (int i=0; i (*_boardSize + 1) )) { + NSLog(@"Wrong choice! "); + continue; + } + } - int adjInputForOffset = *(_chooseABox-1); + /* variable for storing offset (better to fix it once here than possibly 100 other palces later ) + check for empty boxes before entering user selected option if box is NOT "empty" tell user to slect a different box */ - //check for empty _board before entering user selected options - if ([_board[adjInputForOffset] isNotEqualTo:@" "]){ + adjInputForOffset = number-1; + if ([boxes[adjInputForOffset] isNotEqualTo:@" "]){ NSLog(@"please choose another box"); - - //change symbol - if ([_xOrO isEqualToString:@"x"]){ - _xOrO = @"o"; + // transpose x's and o's + if ([_oXchoice isEqualToString:@"x"]){ + _oXchoice = @"o"; } else { - _xOrO = @"x"; + _oXchoice = @"x"; + } + } + + //if box is empty enter user selection + else if ([boxes[adjInputForOffset] isEqualTo:@" "]){ + boxes[adjInputForOffset] = _oXchoice; + } + + + if (computer == YES) { + computer = NO; + } + else{ + computer = YES; + } + + // transpose x's and o's + if ([_oXchoice isEqualToString:@"x"]){ + _oXchoice = @"o"; + } + else { + _oXchoice = @"x"; + } + + [self printBoard:_gridSize]; + + + wonTheGame = [self winner:_gridSize]; + + + if (!wonTheGame) + + continue; + else + break; + + } // end of while loop + if (!wonTheGame) + + continue; + else + break; + } // end of for (int i =0; i<*_boardSize; i++){ + + } // end of if (_singleOrMultiMode = 2 && _gameLevel == 1 ) + + + + + + + + + + // single player // level 2 //3x3 + + if ([_singleOrMultiMode isEqual: @"1"] && [_gameLevel isEqual: @"2"] ) { + + for (int i =0; i<*_boardSize; i++){ + + //run game until all boxes are filled up + while ([boxes[i] isEqualTo:@" "]) { + if (computer) { + //if random number is occupied, choose another random number + while ([boxes[number-1] isNotEqualTo:@" "]){ - } //end of else - }//end of if + // get user' symbol + if ([_oXchoice isEqualToString:@"x"]){ + usersSymbol = @"o"; + } + else { + usersSymbol = @"x"; + } + + + //conditions to block the user + if ( + ([boxes[1] isEqualTo:usersSymbol] && [boxes[2] isEqualTo:usersSymbol] ) + || ([boxes[4] isEqualTo:usersSymbol] && [boxes[8] isEqualTo:usersSymbol] ) + || ([boxes[3] isEqualTo:usersSymbol] && [boxes[6] isEqualTo:usersSymbol] )) + number = 0; + else if ((([boxes[0] isEqualTo:usersSymbol] && [boxes[2] isEqualTo:usersSymbol])) + || ([boxes[4] isEqualTo:usersSymbol] && [boxes[7] isEqualTo:usersSymbol])) + number = 1; + else if ((([boxes[0] isEqualTo:usersSymbol] && [boxes[1] isEqualTo:usersSymbol])) + || ([boxes[4] isEqualTo:usersSymbol] && [boxes[6] isEqualTo:usersSymbol]) + || ([boxes[5] isEqualTo:usersSymbol] && [boxes[8] isEqualTo:usersSymbol])) + number = 2; + else if (([boxes[4] isEqualTo:usersSymbol] && [boxes[5] isEqualTo:usersSymbol]) + || ([boxes[0] isEqualTo:usersSymbol] && [boxes[6] isEqualTo:usersSymbol])) + number = 3; + else if (([boxes[3] isEqualTo:usersSymbol] && [boxes[5] isEqualTo:usersSymbol]) + || ([boxes[1] isEqualTo:usersSymbol] && [boxes[7] isEqualTo:usersSymbol]) + || ([boxes[0] isEqualTo:usersSymbol] && [boxes[8] isEqualTo:usersSymbol]) + || ([boxes[2] isEqualTo:usersSymbol] && [boxes[6] isEqualTo:usersSymbol])) + number = 4; + else if (([boxes[3] isEqualTo:usersSymbol] && [boxes[4] isEqualTo:usersSymbol]) + || ([boxes[2] isEqualTo:usersSymbol] && [boxes[8] isEqualTo:usersSymbol])) + number = 5; + else if (([boxes[7] isEqualTo:usersSymbol] && [boxes[8] isEqualTo:usersSymbol]) + || ([boxes[0] isEqualTo:usersSymbol] && [boxes[3] isEqualTo:usersSymbol]) + || ([boxes[2] isEqualTo:usersSymbol] && [boxes[4] isEqualTo:usersSymbol])) + number = 6; + else if (([boxes[6] isEqualTo:usersSymbol] && [boxes[8] isEqualTo:usersSymbol]) + || ([boxes[1] isEqualTo:usersSymbol] && [boxes[4] isEqualTo:usersSymbol])) + number = 7; + else if (([boxes[6] isEqualTo:usersSymbol] && [boxes[7] isEqualTo:usersSymbol]) + || ([boxes[0] isEqualTo:usersSymbol] && [boxes[4] isEqualTo:usersSymbol]) + || ([boxes[2] isEqualTo:usersSymbol] && [boxes[5] isEqualTo:usersSymbol])) + number = 8; + + + //conditions to win computer + else if (([boxes[1] isEqualTo:_oXchoice] && [boxes[2] isEqualTo:_oXchoice]) + || ([boxes[4] isEqualTo:_oXchoice] && [boxes[8] isEqualTo:_oXchoice]) + || ([boxes[3] isEqualTo:_oXchoice] && [boxes[6] isEqualTo:_oXchoice])) + number = 0; + else if (([boxes[0] isEqualTo:_oXchoice] && [boxes[2] isEqualTo:_oXchoice]) + || ([boxes[4] isEqualTo:_oXchoice] && [boxes[7] isEqualTo:_oXchoice]) + ) + number = 1; + else if (([boxes[0] isEqualTo:_oXchoice] && [boxes[1] isEqualTo:_oXchoice]) + || ([boxes[4] isEqualTo:_oXchoice] && [boxes[6] isEqualTo:_oXchoice]) + || ([boxes[5] isEqualTo:_oXchoice] && [boxes[8] isEqualTo:_oXchoice])) + number = 2; + else if (([boxes[4] isEqualTo:_oXchoice] && [boxes[5] isEqualTo:_oXchoice]) + || ([boxes[0] isEqualTo:_oXchoice] && [boxes[6] isEqualTo:_oXchoice])) + number = 3; + else if (([boxes[3] isEqualTo:_oXchoice] && [boxes[5] isEqualTo:_oXchoice]) + || ([boxes[1] isEqualTo:_oXchoice] && [boxes[7] isEqualTo:_oXchoice]) + || ([boxes[0] isEqualTo:_oXchoice] && [boxes[8] isEqualTo:_oXchoice]) + || ([boxes[2] isEqualTo:_oXchoice] && [boxes[6] isEqualTo:_oXchoice])) + number = 4; + else if (([boxes[3] isEqualTo:_oXchoice] && [boxes[4] isEqualTo:_oXchoice]) + || ([boxes[2] isEqualTo:_oXchoice] && [boxes[8] isEqualTo:_oXchoice])) + number = 5; + else if (([boxes[7] isEqualTo:_oXchoice] && [boxes[8] isEqualTo:_oXchoice]) + || ([boxes[0] isEqualTo:_oXchoice] && [boxes[3] isEqualTo:_oXchoice])) + number = 6; + else if (([boxes[6] isEqualTo:_oXchoice] && [boxes[8] isEqualTo:_oXchoice]) + || ([boxes[1] isEqualTo:_oXchoice] && [boxes[4] isEqualTo:_oXchoice])) + number = 7; + else if (([boxes[6] isEqualTo:_oXchoice] && [boxes[7] isEqualTo:_oXchoice]) + || ([boxes[0] isEqualTo:_oXchoice] && [boxes[4] isEqualTo:_oXchoice]) + || ([boxes[2] isEqualTo:_oXchoice] && [boxes[5] isEqualTo:_oXchoice])) + number = 8; + else number = 1 + arc4random_uniform(*_boardSize); + + if ([boxes[number-1] isNotEqualTo:@" "]) + continue; + + else break; + } + } + else { + + NSLog(@"Enter a number "); + scanf("%d", &number); + fpurge(stdin); + + if ((number <1) || (number > (*_boardSize + 1) )) { + NSLog(@"Wrong choice! "); + continue; + } + } + /* variable for storing offset (better to fix it once here than possibly 100 other palces later ) + check for empty boxes before entering user selected option if box is NOT "empty" tell user to slect a different box */ + NSLog(@"%d number nowwww", number); + adjInputForOffset = number-1; + if ([boxes[adjInputForOffset] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + // transpose x's and o's + if ([_oXchoice isEqualToString:@"x"]){ + _oXchoice = @"o"; + } + else { + _oXchoice = @"x"; + } + } //if box is empty enter user selection - else if ([_board[adjInputForOffset] isEqualTo:@" "]){ - _board[adjInputForOffset] = _xOrO; + else if ([boxes[adjInputForOffset] isEqualTo:@" "]){ + boxes[adjInputForOffset] = _oXchoice; + } + + + if (computer == YES) { + computer = NO; + } + else{ + computer = YES; } - //change symbol after playing one round - if ([_xOrO isEqualToString:@"x"]){ - _xOrO = @"o"; + // transpose x's and o's + if ([_oXchoice isEqualToString:@"x"]){ + _oXchoice = @"o"; } else { - _xOrO = @"x"; - + _oXchoice = @"x"; + } + + [self printBoard:_gridSize]; + + + wonTheGame = [self winner:_gridSize]; + + if (!wonTheGame) - } //end of else + continue; + else + break; - } //end of while + } // end of while loop + if (!wonTheGame) + + continue; + else + break; + } // end of for (int i =0; i<*_boardSize; i++){ - }//end of for - - - }//end of if + } // end of if (_singleOrMultiMode = 2 && _gameLevel == 1 ) + + + + + + + + // multiple Player + + if ([_singleOrMultiMode isEqual: @"2"] ) { + for (int i =0; i<*_boardSize; i++){ + + //run game until all boxes are filled up + while ([boxes[i] isEqualTo:@" "]) { + NSLog(@"Enter a number "); + scanf("%d", &number); + fpurge(stdin); + + if ((number <1) || (number > (*_boardSize + 1) )) { + NSLog(@"Wrong choice! "); + continue; + } + + + /* variable for storing offset (better to fix it once here than possibly 100 other palces later ) + check for empty boxes before entering user selected option if box is NOT "empty" tell user to slect a different box */ + + adjInputForOffset = number-1; + if ([boxes[adjInputForOffset] isNotEqualTo:@" "]){ + NSLog(@"please choose another box"); + // transpose x's and o's + + + if ([_gameLevel isEqual: @"1"] && [_oXchoice isEqualToString:@"x"]){ + _oXchoice = @"o"; + } + else { + _oXchoice = @"x"; + } + + } + + //if box is empty enter user selection + else if ([boxes[adjInputForOffset] isEqualTo:@" "]){ + boxes[adjInputForOffset] = _oXchoice; + } + + // transpose x's and o's + if ([_oXchoice isEqualToString:@"x"]){ + _oXchoice = @"o"; + } + else { + _oXchoice = @"x"; + } + [self printBoard:_gridSize]; + + wonTheGame = [self winner:_gridSize]; + + + if (!wonTheGame) + + continue; + else + break; + + + + + + } // end of while loop + if (!wonTheGame) + + continue; + else + break; + } // end of for (int i =0; i<*_boardSize; i++){ - } // end of void + } // end of if (_singleOrMultiMode = 2 && _gameLevel == 1 ) - - --(void) printBoard { - NSLog (@" %@ | %@ | %@ ", _board[0],_board[1],_board[2]); - NSLog (@"-----------"); - NSLog (@" %@ | %@ | %@ ", _board[3],_board[4],_board[5]); - NSLog (@"-----------"); - NSLog (@" %@ | %@ | %@ ", _board[6],_board[7],_board[8]); - NSLog (@"\n\n\n\n"); -} -//-(BOOL) validSquare{ -// -//} --(BOOL) winner{ - NSString *i = @"x"; - NSString *j = @"o"; - // NSString *theWinner; +} // end of void - if (*_gridSize == 9) { - if (([_board[0] isEqualToString: i] && [_board [1] isEqualToString: i] && [_board [2] isEqualToString: i]) || - ([_board[3] isEqualToString: i] && [_board [4] isEqualToString: i] && [_board [5] isEqualToString: i]) || - ([_board[6] isEqualToString: i] && [_board [7] isEqualToString: i] && [_board [8] isEqualToString: i]) || - ([_board[0] isEqualToString: i] && [_board [3] isEqualToString: i] && [_board [6] isEqualToString: i]) || - ([_board[1] isEqualToString: i] && [_board [4] isEqualToString: i] && [_board [7] isEqualToString: i]) || - ([_board[2] isEqualToString: i] && [_board [5] isEqualToString: i] && [_board [8] isEqualToString: i]) || - ([_board[0] isEqualToString: i] && [_board [4] isEqualToString: i] && [_board [8] isEqualToString: i]) || - ([_board[2] isEqualToString: i] && [_board [4] isEqualToString: i] && [_board [6] isEqualToString: i])) { - - // theWinner = [_board objectAtIndex:0]; - NSLog(@"%@ won!", i); - return YES; - } - - else if (([_board[0] isEqualToString: j] && [_board [1] isEqualToString: j] && [_board [2] isEqualToString: j]) || - ([_board[3] isEqualToString: j] && [_board [4] isEqualToString: j] && [_board [5] isEqualToString: j]) || - ([_board[6] isEqualToString: j] && [_board [7] isEqualToString: j] && [_board [8] isEqualToString: j]) || - ([_board[0] isEqualToString: j] && [_board [3] isEqualToString: j] && [_board [6] isEqualToString: j]) || - ([_board[1] isEqualToString: j] && [_board [4] isEqualToString: j] && [_board [7] isEqualToString: j]) || - ([_board[2] isEqualToString: j] && [_board [5] isEqualToString: j] && [_board [8] isEqualToString: j]) || - ([_board[0] isEqualToString: j] && [_board [4] isEqualToString: j] && [_board [8] isEqualToString: j]) || - ([_board[2] isEqualToString: j] && [_board [4] isEqualToString: j] && [_board [6] isEqualToString: j])) { - NSLog(@"%@ won!", j); - return YES; - } - } // end of if (_gridSize == 9) { - - else if (_gridSize == 16) { - - if (([_board[0] isEqualToString: i] && [_board [1] isEqualToString: i] && [_board [2] isEqualToString: i] && [_board[3] isEqualToString: i]) || - ([_board[4] isEqualToString: i] && [_board [5] isEqualToString: i] && [_board [6] isEqualToString: i] && [_board[7] isEqualToString: i]) || - ([_board[8] isEqualToString: i] && [_board [9] isEqualToString: i] && [_board [10] isEqualToString: i] && [_board[11] isEqualToString: i]) | - ([_board[12] isEqualToString: i] && [_board [13] isEqualToString: i] && [_board [16] isEqualToString: i] && [_board[15] isEqualToString: i]) || - ([_board[0] isEqualToString: i] && [_board [4] isEqualToString: i] && [_board [8] isEqualToString: i] && [_board[12] isEqualToString: i]) || - ([_board[1] isEqualToString: i] && [_board [5] isEqualToString: i] && [_board [9] isEqualToString: i] && [_board[13] isEqualToString: i]) || - ([_board[2] isEqualToString: i] && [_board [6] isEqualToString: i] && [_board [10] isEqualToString: i] && [_board[14] isEqualToString: i]) || - ([_board[3] isEqualToString: i] && [_board [7] isEqualToString: i] && [_board [11] isEqualToString: i] && [_board[15] isEqualToString: i]) || - ([_board[0] isEqualToString: i] && [_board [5] isEqualToString: i] && [_board [10] isEqualToString: i] && [_board[15] isEqualToString: i]) || - ([_board[3] isEqualToString: i] && [_board [6] isEqualToString: i] && [_board [9] isEqualToString: i] && [_board[12] isEqualToString: i])) { - NSLog(@"%@ won!", i); - return YES; - } - - else if (([_board[0] isEqualToString: j] && [_board [1] isEqualToString: j] && [_board [2] isEqualToString: j] && [_board[3] isEqualToString: j]) || - ([_board[4] isEqualToString: j] && [_board [5] isEqualToString: j] && [_board [6] isEqualToString: j] && [_board[7] isEqualToString: j]) || - ([_board[8] isEqualToString: j] && [_board [9] isEqualToString: j] && [_board [10] isEqualToString: j] && [_board[11] isEqualToString: j]) | - ([_board[12] isEqualToString: j] && [_board [13] isEqualToString: j] && [_board [16] isEqualToString: j] && [_board[15] isEqualToString: j]) || - ([_board[0] isEqualToString: j] && [_board [4] isEqualToString: j] && [_board [8] isEqualToString: j] && [_board[12] isEqualToString: j]) || - ([_board[1] isEqualToString: j] && [_board [5] isEqualToString: j] && [_board [9] isEqualToString: j] && [_board[13] isEqualToString: j]) || - ([_board[2] isEqualToString: j] && [_board [6] isEqualToString: j] && [_board [10] isEqualToString: j] && [_board[14] isEqualToString: j]) || - ([_board[3] isEqualToString: j] && [_board [7] isEqualToString: j] && [_board [11] isEqualToString: j] && [_board[15] isEqualToString: j]) || - ([_board[0] isEqualToString: j] && [_board [5] isEqualToString: j] && [_board [10] isEqualToString: j] && [_board[15] isEqualToString: j]) || - ([_board[3] isEqualToString: j] && [_board [6] isEqualToString: j] && [_board [9] isEqualToString: j] && [_board[12] isEqualToString: j])) { - NSLog(@"%@ won!", j); - return YES; - } - - } //end of else if (_gridSize == 16) { + + + + + + + +-(BOOL) winner: (NSString *) gridSize { + NSString *i = @"x"; + NSString *j = @"o"; + NSString *theWinner; + _gridSize = gridSize; + if ((([_gridSize isEqual: @"1"]) && + (([boxes[0] isEqualToString: i] && [boxes [1] isEqualToString: i] && [boxes [2] isEqualToString: i]) + || ([boxes[3] isEqualToString: i] && [boxes [4] isEqualToString: i] && [boxes [5] isEqualToString: i]) + || ([boxes[6] isEqualToString: i] && [boxes [7] isEqualToString: i] && [boxes [8] isEqualToString: i]) + || ([boxes[0] isEqualToString: i] && [boxes [3] isEqualToString: i] && [boxes [6] isEqualToString: i]) + || ([boxes[1] isEqualToString: i] && [boxes [4] isEqualToString: i] && [boxes [7] isEqualToString: i]) + || ([boxes[2] isEqualToString: i] && [boxes [5] isEqualToString: i] && [boxes [8] isEqualToString: i]) + || ([boxes[0] isEqualToString: i] && [boxes [4] isEqualToString: i] && [boxes [8] isEqualToString: i]) + || ([boxes[2] isEqualToString: i] && [boxes [4] isEqualToString: i] && [boxes [6] isEqualToString: i])))) { + + theWinner = i; + + NSLog(@"%@ won this round!", theWinner); + return YES; + } + else if ( + ( + ([_gridSize isEqual: @"1"]) && + ( + ([boxes[0] isEqualToString: j] && [boxes [1] isEqualToString: j] && [boxes [2] isEqualToString: j]) + || ([boxes[3] isEqualToString: j] && [boxes [4] isEqualToString: j] && [boxes [5] isEqualToString: j]) + || ([boxes[6] isEqualToString: j] && [boxes [7] isEqualToString: j] && [boxes [8] isEqualToString: j]) + || ([boxes[0] isEqualToString: j] && [boxes [3] isEqualToString: j] && [boxes [6] isEqualToString: j]) + || ([boxes[1] isEqualToString: j] && [boxes [4] isEqualToString: j] && [boxes [7] isEqualToString: j]) + || ([boxes[2] isEqualToString: j] && [boxes [5] isEqualToString: j] && [boxes [8] isEqualToString: j]) + || ([boxes[0] isEqualToString: j] && [boxes [4] isEqualToString: j] && [boxes [8] isEqualToString: j]) + || ([boxes[2] isEqualToString: j] && [boxes [4] isEqualToString: j] && [boxes [6] isEqualToString: j]) + ) + ) + ) { + + theWinner = j; + + NSLog(@"%@ won this round!", theWinner); + return YES; + } - // return _winnerIsO; + else if ( + ( + ([_gridSize isEqual: @"2"]) && + ( + ([boxes[0] isEqualToString: i] && [boxes [1] isEqualToString: i] && [boxes [2] isEqualToString: i] && [boxes[3] isEqualToString: i]) + || + ([boxes[4] isEqualToString: i] && [boxes [5] isEqualToString: i] && [boxes [6] isEqualToString: i] && [boxes[7] isEqualToString: i]) + || + ([boxes[8] isEqualToString: i] && [boxes [9] isEqualToString: i] && [boxes [10] isEqualToString: i] && [boxes[11] isEqualToString: i]) + || + ([boxes[12] isEqualToString: i] && [boxes [13] isEqualToString: i] && [boxes [16] isEqualToString: i] && [boxes[15] isEqualToString: i]) + || + ([boxes[0] isEqualToString: i] && [boxes [4] isEqualToString: i] && [boxes [8] isEqualToString: i] && [boxes[12] isEqualToString: i]) + || + ([boxes[1] isEqualToString: i] && [boxes [5] isEqualToString: i] && [boxes [9] isEqualToString: i] && [boxes[13] isEqualToString: i]) + || + ([boxes[2] isEqualToString: i] && [boxes [6] isEqualToString: i] && [boxes [10] isEqualToString: i] && [boxes[14] isEqualToString: i]) + || + ([boxes[3] isEqualToString: i] && [boxes [7] isEqualToString: i] && [boxes [11] isEqualToString: i] && [boxes[15] isEqualToString: i]) + || + ([boxes[0] isEqualToString: i] && [boxes [5] isEqualToString: i] && [boxes [10] isEqualToString: i] && [boxes[15] isEqualToString: i]) + || + ([boxes[3] isEqualToString: i] && [boxes [6] isEqualToString: i] && [boxes [9] isEqualToString: i] && [boxes[12] isEqualToString: i]) + ) + ) + ) { + + theWinner = i; + + NSLog(@"%@ won this round!", theWinner); + return YES; + } - -//-(BOOL) isFull{ -// - return NO; + else if ( + ( + ([_gridSize isEqual: @"2"]) && + ( + ([boxes[0] isEqualToString: j] && [boxes [1] isEqualToString: j] && [boxes [2] isEqualToString: j] && [boxes[3] isEqualToString: j]) + || + ([boxes[4] isEqualToString: j] && [boxes [5] isEqualToString: j] && [boxes [6] isEqualToString: j] && [boxes[7] isEqualToString: j]) + || + ([boxes[8] isEqualToString: j] && [boxes [9] isEqualToString: j] && [boxes [10] isEqualToString: j] && [boxes[11] isEqualToString: j]) + || + ([boxes[12] isEqualToString: j] && [boxes [13] isEqualToString: j] && [boxes [16] isEqualToString: j] && [boxes[15] isEqualToString: j]) + || + ([boxes[0] isEqualToString: j] && [boxes [4] isEqualToString: j] && [boxes [8] isEqualToString: j] && [boxes[12] isEqualToString: j]) + || + ([boxes[1] isEqualToString: j] && [boxes [5] isEqualToString: j] && [boxes [9] isEqualToString: j] && [boxes[13] isEqualToString: j]) + || + ([boxes[2] isEqualToString: j] && [boxes [6] isEqualToString: j] && [boxes [10] isEqualToString: j] && [boxes[14] isEqualToString: j]) + || + ([boxes[3] isEqualToString: j] && [boxes [7] isEqualToString: j] && [boxes [11] isEqualToString: j] && [boxes[15] isEqualToString: j]) + || + ([boxes[0] isEqualToString: j] && [boxes [5] isEqualToString: j] && [boxes [10] isEqualToString: j] && [boxes[15] isEqualToString: j]) + || + ([boxes[3] isEqualToString: j] && [boxes [6] isEqualToString: j] && [boxes [9] isEqualToString: j] && [boxes[12] isEqualToString: j]) + ) + ) + ) { + + theWinner = j; + + NSLog(@"%@ won this round!", theWinner); + return YES; + } + else + + return NO; } //end of BOOL + + @end + + + + + + + + + + + int main(int argc, const char * argv[]) { @autoreleasepool { - int userSkill = 0; - int playerMode = 0; - int gridSizeSelected = 0, gridSize = 0; - char player1Name[30], player2Name[30]; - NSString *userOptionXorO_string ; + BOOL playingAgainRepeat = YES; - TicTacToe *newGame = [[TicTacToe alloc] init]; - - while (true) { + while (playingAgainRepeat) { - NSLog (@"Select grid:"); - NSLog (@"1. 3 X 3"); - NSLog (@"2. 4 X 4"); - NSLog (@"3. 5 X 5"); - scanf("%d", &gridSizeSelected); - fpurge(stdin); + // create a new object + TicTacToe* tictac = [[TicTacToe alloc]init]; - if (gridSizeSelected == 1) - gridSize = 9; - else if (gridSizeSelected == 2) - gridSize = 16; - else if (gridSizeSelected == 3) - gridSize = 25; - else { - NSLog (@"Wrong choice! ") ; - continue; - } - - NSLog (@"1. Single player"); - NSLog (@"2. Multiple players"); - scanf("%d", &playerMode); - fpurge(stdin); + //declare variable for use holding x and o + char oXchoice[2]; + char singleOrMultiMode[0]; + char gridSize[0]; + char gameLevel[0]; + NSString * ns_oXchoice ; + NSString * ns_singleOrMultiMode ; + NSString * ns_gridSize; + NSString * ns_gameLevel; - if (playerMode == 1) { - NSLog (@"1. Level 1: Computer is totally dumb."); - NSLog (@"2. Level 2: Computer is smarter."); - NSLog (@"3. Level 4: Computer NEVER loses."); - scanf ("%d", &userSkill); + while (true) { + + NSLog(@"Choose x or o: "); + scanf("%s", oXchoice); + fpurge(stdin); + + // convert oXchoice to nsstring + ns_oXchoice= [NSString stringWithCString: oXchoice encoding: NSASCIIStringEncoding]; + + //check nsConversion for good input x/o, reject everything else + if ([ns_oXchoice length] == 1 && ([ns_oXchoice isEqualToString:@"x"] || [ns_oXchoice isEqualToString:@"X"] || [ns_oXchoice isEqualToString:@"o"] || [ns_oXchoice isEqualToString:@"O"])) { + NSLog(@"This is your choice: %@",ns_oXchoice); + break; + } + else { + NSLog (@"Wrong choice! "); + continue; + } //end nsConversion filter check + + } //end of while loop + + + /*----------------------------------------------------------------------------------------------*/ + + + //ask user for board size + while (true) { + NSLog(@"Choose board size:\n 1:: Play On 3x3 Grid \n 2:: Play On 4x4 grid \n 3:: Mega tt"); + scanf("%s", gridSize); fpurge(stdin); - if ((userSkill != 1) || (userSkill != 2) || (userSkill!=3)) { + // convert gridSize to nsstring + ns_gridSize= [NSString stringWithCString: gridSize encoding: NSASCIIStringEncoding]; + if ([ns_gridSize length] == 1 && ([ns_gridSize isEqualToString:@"1"] || [ns_gridSize isEqualToString:@"2"] || [ns_gridSize isEqualToString:@"3"])) + break; + else { NSLog (@"Wrong choice! "); continue; } - else - break; - } - else if (playerMode == 2) { - NSLog (@"1. Level 1: Easy level"); - NSLog (@"2. Level 2: Loose your turn if you pick up an occupied box"); - scanf ("%d", &userSkill); + }//end of while loop + + + + //ask user for single or multiplayer mode + while (true) { + NSLog(@"Choose playerMode: 1 - Single Player \n2 - 2 Players "); + scanf("%s", singleOrMultiMode); fpurge(stdin); - if ((userSkill != 1) || (userSkill != 2)) { + ns_singleOrMultiMode= [NSString stringWithCString: singleOrMultiMode encoding: NSASCIIStringEncoding]; + + + if ([ns_singleOrMultiMode length] == 1 && ([ns_singleOrMultiMode isEqualToString:@"1"] || [ns_singleOrMultiMode isEqualToString:@"2"])) + + break; + else { NSLog (@"Wrong choice! "); continue; } - else + } //end of while loop + + while ([ns_singleOrMultiMode isEqual: @"1"]) { + // ask use for game level { + NSLog (@"1. Level 1: Computer is totally dumb."); + NSLog (@"2. Level 2: Computer is smarter."); + scanf ("%s", gameLevel); + fpurge(stdin); + + // convert gameLevel to nsstring + ns_gameLevel= [NSString stringWithCString: gameLevel encoding: NSASCIIStringEncoding]; + + if ([ns_gameLevel length] == 1 && ([ns_gameLevel isEqualToString:@"1"] || [ns_gameLevel isEqualToString:@"2"])) break; - } - else if ((playerMode != 1) || (playerMode != 2)) { - NSLog (@"Wrong choice! "); - continue; - - } - } //end of while - - - if (playerMode == 1) { - NSLog(@"Player 1 Name: "); - scanf ("%s", player1Name); - fpurge(stdin); + + else { + NSLog (@"Wrong choice! "); + continue; + } // end of if + } //end of while loop -// if (userSkill == 1) { -// -// } //end of if (singlePlayerLevel == 1) -// else if (userSkill == 2) { -// -// } //end of if (singlePlayerLevel == 2) -// -// else if (userSkill == 3) { -// -// } //end of if (singlePlayerLevel == 3) -// -// else if (userSkill == 2) { -// -// } //end of if (singlePlayerLevel == 3) -// -// - } // end of if (singleOrMultiplayer == 1) - - - else if (playerMode == 2) { - NSLog(@"Player 1 Name: "); - scanf ("%s", player1Name); - fpurge(stdin); + while ([ns_singleOrMultiMode isEqual: @"2"]) { + NSLog (@"1. Level 1: Easy level"); + NSLog (@"2. Level 2: Loose your turn if you pick up an occupied box"); + + scanf ("%s", gameLevel); + fpurge(stdin); + + // convert gameLevel to nsstring + ns_gameLevel= [NSString stringWithCString: gameLevel encoding: NSASCIIStringEncoding]; + + if (([ns_gameLevel isEqualToString:@"1"]) || ([ns_gameLevel isEqualToString:@"2"])) { + break; + } + else { + NSLog (@"Wrong choice! "); + continue;; + } // end of if + + } //end of while loop - NSLog(@"Player 2 Name: "); - scanf ("%s", player2Name); - fpurge(stdin); + if([ns_gridSize isEqual: @"1"]){ + //display grid numbers for users and instructions for selecting a box on the grid + NSLog(@"You have selected the 3x3 grid, good luck. To select a box on the grid please select its corresponding number on your keyboard"); + NSLog (@" 1 | 2 | 3"); + NSLog (@"-----------"); + NSLog (@" 4 | 5 | 6"); + NSLog (@"-----------"); + NSLog (@" 7 | 8 | 9"); + NSLog (@"\n"); + } - if (userSkill == 1) { - // play the game without loosing your turn - } //end of if (multiplePlayerLevel == 1) + else if([ns_gridSize isEqual: @"2"]){ + //display grid numbers for users and instructions for selecting a box on the grid + NSLog(@"You have selected the 4x4 grid LoL!! GOOD LUCK. To select a box on the grid please select its corresponding number on your keyboard"); + NSLog (@" 1 | 2 | 3 | 4"); + NSLog (@"-------------------"); + NSLog (@" 5 | 6 | 7 | 8"); + NSLog (@"--------------------"); + NSLog (@" 9 | 10 | 11 | 12 "); + NSLog (@"--------------------"); + NSLog (@" 13 | 14 | 15 | 16 "); + NSLog (@"\n"); + + } - else if (userSkill == 2) { - // play the game and loose your turn - } // end of if (multiplePlayerLevel == 2) + else if([ns_gridSize isEqual: @"3"]){ + //display grid numbers for users and instructions for selecting a box on the grid + NSLog(@"You have selected the Mega grid, good luck. To select a box on the grid please select its corresponding number on your keyboard"); + NSLog (@" 1 | 2 | 3"); + NSLog (@"-----------"); + NSLog (@" 4 | 5 | 6"); + NSLog (@"-----------"); + NSLog (@" 7 | 8 | 9"); + NSLog (@"\n"); + } - } // end of if (singleOrMultiplayer == 2) - - - - - //display grid numbers for users and instructions - NSLog (@" 1 | 2 | 3"); - NSLog (@"-----------"); - NSLog (@" 4 | 5 | 6"); - NSLog (@"-----------"); - NSLog (@" 7 | 8 | 9"); - NSLog (@"\n"); - - char * userOptionXorO; - - while (true) { + //create and initialize mutableArray + int boardSize; + //let this value come from gameSize [ 1 = 8 [3x3 grid] / 2 = 15 [4x4 grid] / 3 = [5x5 grid] + if ([ns_gridSize isEqual: @"1"]){ + boardSize = 8; //because counting starts from 0 + } + else if ([ns_gridSize isEqual: @"2"]){ + boardSize = 15; + + } + else if ([ns_gridSize isEqual: @"3"]){ + boardSize = 24; + + } - NSLog(@"Choose x or o: "); - scanf("%s", userOptionXorO); - fpurge(stdin); - // convert userOption to nsstring - userOptionXorO_string = [NSString stringWithCString: userOptionXorO encoding: NSASCIIStringEncoding]; + // initialize array + [tictac initializeArray:boardSize]; - //check nsConversion for good input x/o, regject everything else - if ([userOptionXorO_string length] == 1 && ([userOptionXorO_string isEqualToString:@"x"] || [userOptionXorO_string isEqualToString:@"o"])) { - NSLog(@"This is your choice: %@",userOptionXorO_string); - break; - } - else { - NSLog (@"Wrong choice! "); - continue; - } //end nsConversion filter check + [tictac first:ns_singleOrMultiMode second:ns_gameLevel third:ns_oXchoice fourth:ns_gridSize fifth:&boardSize]; - } // end of while - - - - [newGame initializeArray:gridSize]; - [newGame printBoard]; - [newGame setGameLevel:&userSkill]; - [newGame setUserMode:&playerMode]; - [newGame startPlaying:userOptionXorO_string]; - - - - - - - - - - - - // KRISHNA CODE - -// NSLog(@"Choose playerMode [1 or 2 player "); -// scanf("%i", playerMode); -// fpurge(stdin); -// -// NSLog(@"Choose skill level \n 1 = have fun \n 2 = go hard \n 3 = Terror Dome "); -// scanf("%i", userSkill); -// fpurge(stdin); -// - - - - - - -// //display grid numbers for users and instructions -// NSLog (@" 1 | 2 | 3"); -// NSLog (@"-----------"); -// NSLog (@" 4 | 5 | 6"); -// NSLog (@"-----------"); -// NSLog (@" 7 | 8 | 9"); -// NSLog (@"\n"); -// - - //create and initialize mutableArray - //FUNCTION create the array - - //let this value come from gameLevel [ easy =9 [3x3 grid] / harder = 16 [4x4 grid] / hardest 25 [5x5 grid] -// gridSize = userSkill; -// -// NSMutableArray *_board = [NSMutableArray arrayWithCapacity:gridSize]; -// -// - - - //declare variable for use holding x and o -// char oXchoice[2]; -// NSString * ns_oXchoice ; -// - - /*-------------------------------------------start data parse ------------------------------------------------*/ - - -// // -// // -// while (true) { -// -// NSLog(@"Choose x or o: "); -// scanf("%s", oXchoice); -// fpurge(stdin); -// -// // convert userOption to nsstring -// ns_oXchoice= [NSString stringWithCString: oXchoice encoding: NSASCIIStringEncoding]; -// -// -// //check nsConversion for good input x/o, regject everything else -// if ([ns_oXchoice length] == 1 && ([ns_oXchoice isEqualToString:@"x"] || [ns_oXchoice isEqualToString:@"o"])) { -// NSLog(@"This is your choice: %@",ns_oXchoice); -// //break; -// } -// else { -// NSLog (@"Wrong choice! "); -// continue; -// } //end nsConversion filter check -// -// -// /*--------------------------------------------------------------------------------------------------------------------------------------*/ - -// -// -// for (int i=0; i -// -// -//@interface TicTacToe : NSObject -// -//-(void) setName: (NSString *)name; -//-(NSString *)name; -// -//-(void) setUserMode: (NSString *)userMode; -//-(NSString *)userMode; -// -//@end -// -// -//@implementation TicTacToe -//NSString *_name; -//NSString *_userMode; -// -//-(void) setName: (NSString *)name{ -// _name = name; -//} -// -//-(NSString *) name { -// return _name; -//} -// -// -//-(void) setUserMode: (NSString *)userMode{ -// _userMode = userMode; -// -// -// //create and initialize mutableArray -// NSMutableArray *_board = [NSMutableArray arrayWithCapacity:9]; -// for (int i=0; i<9; i++) { -// _board[i] = @" "; -// } -// -// //get a number a number from user [1-9] -// int number; -// char * userOption; -// NSString *oxChoice; -// //create grid size; (9 = 3x3 grid) -// for (int i =0; i<9; i++){ -// -// -// //run game until all _board are filled up -// while ([_board[i] isEqualTo:@" "]) { -// printf ("Enter a number "); -// scanf("%d", &number); -// -// -// //check for empty _board before entering user selected options -// if ([_board[number-1] isNotEqualTo:@" "]){ -// NSLog(@"please choose another box"); -// } -// -// -// //if box is empty enter user selection -// else if ([_board[number-1] isEqualTo:@" "]){ -// _board[number-1] = oxChoice; -// } -// -// //working grid for playing the game -// NSLog (@" %@ | %@ | %@ ", _board[0],_board[1],_board[2]); -// NSLog (@"-----------"); -// NSLog (@" %@ | %@ | %@ ", _board[3],_board[4],_board[5]); -// NSLog (@"-----------"); -// NSLog (@" %@ | %@ | %@ ", _board[6],_board[7],_board[8]); -// NSLog (@"\n\n\n\n"); -// -// -// if ([oxChoice isEqualToString:@"x"]) -// oxChoice = @"o"; -// else -// (oxChoice = @"x"); -// -// -// -// -// -// } -// -// -// }//end of for LOOP -// -// -// -//} -//@end -// -// -//int main(int argc, const char * argv[]) { -// @autoreleasepool { -// -// int singleOrMultiplayer; -// int singlePlayerLevel, multiplePlayerLevel; -// char player1Name[30], player2Name[30]; -// NSString *nsConversion ; -// -// -// while (true) { -// NSLog (@"1. Single player"); -// NSLog (@"2. Multiple players"); -// scanf("%d", &singleOrMultiplayer); -// fpurge(stdin); -// -// -// if (singleOrMultiplayer == 1) { -// NSLog (@"1. Level 1: Computer is totally dumb."); -// NSLog (@"2. Level 2: Computer is smarter."); -// NSLog (@"3. Level 3: You MAY win (only when you start)."); -// NSLog (@"4. Level 4: Computer NEVER loses."); -// scanf ("%d", &singlePlayerLevel); -// break; -// } -// else if (singleOrMultiplayer == 2) { -// NSLog (@"1. Level 1: Easy level"); -// NSLog (@"2. Level 2: Loose your turn if you pick up an occupied box"); -// scanf ("%d", &multiplePlayerLevel); -// break; -// } -// else if ((singleOrMultiplayer != 1) || (singleOrMultiplayer != 2)) { -// NSLog (@"Wrong choice! "); -// continue; -// } -// -// } //end of while -// -// -// if (singleOrMultiplayer == 1) { -// NSLog(@"Player 1 Name: "); -// scanf ("%s", player1Name); -// fpurge(stdin); -// -// if (singlePlayerLevel == 1) { -// -// } //end of if (singlePlayerLevel == 1) -// else if (singlePlayerLevel == 2) { -// -// } //end of if (singlePlayerLevel == 2) -// -// else if (singlePlayerLevel == 3) { -// -// } //end of if (singlePlayerLevel == 3) -// -// else if (singlePlayerLevel == 2) { -// -// } //end of if (singlePlayerLevel == 3) -// -// else if (singlePlayerLevel == 4) { -// -// } //end of if (singlePlayerLevel == 4) -// -// -// -// } // end of if (singleOrMultiplayer == 1) -// -// -// else if (singleOrMultiplayer == 2) { -// NSLog(@"Player 1 Name: "); -// scanf ("%s", player1Name); -// NSLog(@"Player 2 Name: "); -// scanf ("%s", player2Name); -// fpurge(stdin); -// -// -// if (multiplePlayerLevel == 1) { -// // play the game without loosing your turn -// } //end of if (multiplePlayerLevel == 1) -// -// else if (multiplePlayerLevel == 2) { -// // play the game and loose your turn -// } // end of if (multiplePlayerLevel == 2) -// -// -// -// } // end of if (singleOrMultiplayer == 2) -// -// -// //display grid numbers for users and instructions -// NSLog (@" 1 | 2 | 3"); -// NSLog (@"-----------"); -// NSLog (@" 4 | 5 | 6"); -// NSLog (@"-----------"); -// NSLog (@" 7 | 8 | 9"); -// NSLog (@"\n"); -// -// char * userOption; -// NSString *oxChoice; -// -// -// while (true) { -// -// NSLog(@"Choose x or o: "); -// scanf("%s", userOption); -// fpurge(stdin); -// -// // convert userOption to nsstring -// nsConversion = [NSString stringWithCString: userOption encoding: NSASCIIStringEncoding]; -// -// -// //check nsConversion for good input x/o, regject everything else -// if ([nsConversion length] == 1 && ([nsConversion isEqualToString:@"x"] || [nsConversion isEqualToString:@"o"])) { -// NSLog(@"This is your choice: %@",nsConversion); -// break; -// } -// else { -// NSLog (@"Wrong choice! "); -// continue; -// } //end nsConversion filter check -// -// } // end of while -// -// -// TicTacToe *user1 = [[TicTacToe alloc] init]; -// -// [user1 setUserMode:nsConversion]; -// + } // end of playingAgainRepeat } + return 0; -} \ No newline at end of file +} + From 9db86849ad6cec0b3fe6848a4ac1106a708535af Mon Sep 17 00:00:00 2001 From: Diana Date: Thu, 2 Jul 2015 21:06:24 -0400 Subject: [PATCH 5/5] latest version --- TicTacToe/TicTacToe/main.m | 266 +++++++++++++++++++++++++++++++------ 1 file changed, 224 insertions(+), 42 deletions(-) diff --git a/TicTacToe/TicTacToe/main.m b/TicTacToe/TicTacToe/main.m index b439bb3..3d1ebb1 100644 --- a/TicTacToe/TicTacToe/main.m +++ b/TicTacToe/TicTacToe/main.m @@ -6,6 +6,7 @@ // Copyright (c) 2015 Mike Kavouras. All rights reserved. #import +#import @interface TicTacToe : NSObject @@ -50,6 +51,7 @@ -(void) printBoard: (NSString *)gridSize { _gridSize = gridSize; if ([_gridSize isEqual: @"1"]) { + NSLog (@" %@ | %@ | %@ ", boxes[0],boxes[1],boxes[2]); NSLog (@"-----------"); NSLog (@" %@ | %@ | %@ ", boxes[3],boxes[4],boxes[5]); @@ -57,7 +59,6 @@ -(void) printBoard: (NSString *)gridSize { NSLog (@" %@ | %@ | %@ ", boxes[6],boxes[7],boxes[8]); NSLog (@"\n\n\n\n"); } - else if ([_gridSize isEqual: @"2"]) { //working grid for playing the game NSLog (@" %@ | %@ | %@ | %@ ", boxes[0],boxes[1],boxes[2],boxes[3]); @@ -72,7 +73,7 @@ -(void) printBoard: (NSString *)gridSize { } else if ([_gridSize isEqual: @"3"]) { - NSLog (@"Don't forget to write the code"); + printf("\nDon't forget to write the code"); // write codeeeeeeeeee } @@ -109,12 +110,12 @@ - (void)first:(NSString *)singleOrMultiMode second:(NSString *)gameLevel third: } else { - NSLog(@"Enter a number "); + printf("\nEnter a number \n"); scanf("%d", &number); fpurge(stdin); if ((number <1) || (number > (*_boardSize + 1) )) { - NSLog(@"Wrong choice! "); + printf("\nWrong choice! "); continue; } } @@ -124,7 +125,7 @@ - (void)first:(NSString *)singleOrMultiMode second:(NSString *)gameLevel third: adjInputForOffset = number-1; if ([boxes[adjInputForOffset] isNotEqualTo:@" "]){ - NSLog(@"please choose another box"); + printf("\nPlease choose another box\n"); // transpose x's and o's if ([_oXchoice isEqualToString:@"x"]){ _oXchoice = @"o"; @@ -287,22 +288,21 @@ - (void)first:(NSString *)singleOrMultiMode second:(NSString *)gameLevel third: } else { - NSLog(@"Enter a number "); + printf("\nEnter a number \n"); scanf("%d", &number); fpurge(stdin); if ((number <1) || (number > (*_boardSize + 1) )) { - NSLog(@"Wrong choice! "); + printf("\nWrong choice! "); continue; } } /* variable for storing offset (better to fix it once here than possibly 100 other palces later ) check for empty boxes before entering user selected option if box is NOT "empty" tell user to slect a different box */ - NSLog(@"%d number nowwww", number); adjInputForOffset = number-1; if ([boxes[adjInputForOffset] isNotEqualTo:@" "]){ - NSLog(@"please choose another box"); + printf("\nPlease choose another box \n"); // transpose x's and o's if ([_oXchoice isEqualToString:@"x"]){ _oXchoice = @"o"; @@ -369,12 +369,12 @@ - (void)first:(NSString *)singleOrMultiMode second:(NSString *)gameLevel third: //run game until all boxes are filled up while ([boxes[i] isEqualTo:@" "]) { - NSLog(@"Enter a number "); + printf("\nEnter a number \n"); scanf("%d", &number); fpurge(stdin); if ((number <1) || (number > (*_boardSize + 1) )) { - NSLog(@"Wrong choice! "); + printf("\nWrong choice! "); continue; } @@ -384,7 +384,7 @@ - (void)first:(NSString *)singleOrMultiMode second:(NSString *)gameLevel third: adjInputForOffset = number-1; if ([boxes[adjInputForOffset] isNotEqualTo:@" "]){ - NSLog(@"please choose another box"); + printf("\nPlease choose another box\n"); // transpose x's and o's @@ -466,7 +466,47 @@ -(BOOL) winner: (NSString *) gridSize { theWinner = i; - NSLog(@"%@ won this round!", theWinner); + NSLog (@"* * * * %@ * * * *", theWinner); + usleep(100000); + printf("W "); + usleep(100000); + printf("O "); + + usleep(100000); + printf("N "); + + usleep(100000); + printf("T "); + + usleep(100000); + printf("H "); + + usleep(100000); + printf("I "); + + usleep(100000); + printf("S "); + + usleep(100000); + printf("R "); + + usleep(100000); + printf("O "); + + usleep(100000); + printf("U "); + + usleep(100000); + printf("N "); + + usleep(100000); + printf("D "); + + usleep(100000); + printf(" ! !"); + + + return YES; } @@ -488,7 +528,45 @@ -(BOOL) winner: (NSString *) gridSize { theWinner = j; - NSLog(@"%@ won this round!", theWinner); + NSLog (@"* * * * %@ * * * *", theWinner); + usleep(100000); + printf("W "); + usleep(100000); + printf("O "); + + usleep(100000); + printf("N "); + + usleep(100000); + printf("T "); + + usleep(100000); + printf("H "); + + usleep(100000); + printf("I "); + + usleep(100000); + printf("S "); + + usleep(100000); + printf("R "); + + usleep(100000); + printf("O "); + + usleep(100000); + printf("U "); + + usleep(100000); + printf("N "); + + usleep(100000); + printf("D "); + + usleep(100000); + printf(" ! !"); + return YES; } @@ -521,7 +599,45 @@ -(BOOL) winner: (NSString *) gridSize { theWinner = i; - NSLog(@"%@ won this round!", theWinner); + NSLog (@"* * * * %@ * * * *", theWinner); + usleep(100000); + printf("W "); + usleep(100000); + printf("O "); + + usleep(100000); + printf("N "); + + usleep(100000); + printf("T "); + + usleep(100000); + printf("H "); + + usleep(100000); + printf("I "); + + usleep(100000); + printf("S "); + + usleep(100000); + printf("R "); + + usleep(100000); + printf("O "); + + usleep(100000); + printf("U "); + + usleep(100000); + printf("N "); + + usleep(100000); + printf("D "); + + usleep(100000); + printf(" ! !"); + return YES; } @@ -554,7 +670,45 @@ -(BOOL) winner: (NSString *) gridSize { theWinner = j; - NSLog(@"%@ won this round!", theWinner); + NSLog (@"* * * * %@ * * * *", theWinner); + usleep(100000); + printf("W "); + usleep(100000); + printf("O "); + + usleep(100000); + printf("N "); + + usleep(100000); + printf("T "); + + usleep(100000); + printf("H "); + + usleep(100000); + printf("I "); + + usleep(100000); + printf("S "); + + usleep(100000); + printf("R "); + + usleep(100000); + printf("O "); + + usleep(100000); + printf("U "); + + usleep(100000); + printf("N "); + + usleep(100000); + printf("D "); + + usleep(100000); + printf(" ! !"); + return YES; } else @@ -601,7 +755,7 @@ int main(int argc, const char * argv[]) { while (true) { - NSLog(@"Choose x or o: "); + printf("Choose x or o: \n"); scanf("%s", oXchoice); fpurge(stdin); @@ -610,11 +764,11 @@ int main(int argc, const char * argv[]) { //check nsConversion for good input x/o, reject everything else if ([ns_oXchoice length] == 1 && ([ns_oXchoice isEqualToString:@"x"] || [ns_oXchoice isEqualToString:@"X"] || [ns_oXchoice isEqualToString:@"o"] || [ns_oXchoice isEqualToString:@"O"])) { - NSLog(@"This is your choice: %@",ns_oXchoice); break; } else { - NSLog (@"Wrong choice! "); + + printf("\nWrong choice! "); continue; } //end nsConversion filter check @@ -626,7 +780,7 @@ int main(int argc, const char * argv[]) { //ask user for board size while (true) { - NSLog(@"Choose board size:\n 1:: Play On 3x3 Grid \n 2:: Play On 4x4 grid \n 3:: Mega tt"); + printf("\nChoose board size:\n 1:: Play On 3x3 Grid \n 2:: Play On 4x4 grid \n 3:: Mega ttt\n"); scanf("%s", gridSize); fpurge(stdin); @@ -635,7 +789,7 @@ int main(int argc, const char * argv[]) { if ([ns_gridSize length] == 1 && ([ns_gridSize isEqualToString:@"1"] || [ns_gridSize isEqualToString:@"2"] || [ns_gridSize isEqualToString:@"3"])) break; else { - NSLog (@"Wrong choice! "); + printf("\nWrong choice! "); continue; } }//end of while loop @@ -644,7 +798,7 @@ int main(int argc, const char * argv[]) { //ask user for single or multiplayer mode while (true) { - NSLog(@"Choose playerMode: 1 - Single Player \n2 - 2 Players "); + printf("\nChoose playerMode: \n 1:: Player Vs CPU \n 2:: Player Vs Player \n"); scanf("%s", singleOrMultiMode); fpurge(stdin); @@ -655,15 +809,15 @@ int main(int argc, const char * argv[]) { break; else { - NSLog (@"Wrong choice! "); + printf("\nWrong choice! "); continue; } } //end of while loop while ([ns_singleOrMultiMode isEqual: @"1"]) { // ask use for game level { - NSLog (@"1. Level 1: Computer is totally dumb."); - NSLog (@"2. Level 2: Computer is smarter."); + printf(" \n 1:: Level 1: Computer is totally dumb."); + printf(" \n 2:: Level 2: Computer is smarter.\n"); scanf ("%s", gameLevel); fpurge(stdin); @@ -674,15 +828,15 @@ int main(int argc, const char * argv[]) { break; else { - NSLog (@"Wrong choice! "); + printf("\nWrong choice! "); continue; } // end of if } //end of while loop while ([ns_singleOrMultiMode isEqual: @"2"]) { - NSLog (@"1. Level 1: Easy level"); - NSLog (@"2. Level 2: Loose your turn if you pick up an occupied box"); + printf("\n 1:: Level 1: Easy level"); + printf("\n 2:: Level 2: Loose your turn if you pick up an occupied box\n"); scanf ("%s", gameLevel); fpurge(stdin); @@ -694,7 +848,7 @@ int main(int argc, const char * argv[]) { break; } else { - NSLog (@"Wrong choice! "); + printf("\nWrong choice! "); continue;; } // end of if @@ -703,7 +857,7 @@ int main(int argc, const char * argv[]) { if([ns_gridSize isEqual: @"1"]){ //display grid numbers for users and instructions for selecting a box on the grid - NSLog(@"You have selected the 3x3 grid, good luck. To select a box on the grid please select its corresponding number on your keyboard"); + printf("\nYou have selected the 3x3 grid, good luck. To select a box on the grid please select its corresponding number on your keyboard\n"); NSLog (@" 1 | 2 | 3"); NSLog (@"-----------"); NSLog (@" 4 | 5 | 6"); @@ -714,7 +868,7 @@ int main(int argc, const char * argv[]) { else if([ns_gridSize isEqual: @"2"]){ //display grid numbers for users and instructions for selecting a box on the grid - NSLog(@"You have selected the 4x4 grid LoL!! GOOD LUCK. To select a box on the grid please select its corresponding number on your keyboard"); + printf("\nYou have selected the 4x4 grid LoL!! GOOD LUCK. To select a box on the grid please select its corresponding number on your keyboard\n"); NSLog (@" 1 | 2 | 3 | 4"); NSLog (@"-------------------"); NSLog (@" 5 | 6 | 7 | 8"); @@ -728,14 +882,42 @@ int main(int argc, const char * argv[]) { else if([ns_gridSize isEqual: @"3"]){ //display grid numbers for users and instructions for selecting a box on the grid - NSLog(@"You have selected the Mega grid, good luck. To select a box on the grid please select its corresponding number on your keyboard"); - NSLog (@" 1 | 2 | 3"); - NSLog (@"-----------"); - NSLog (@" 4 | 5 | 6"); - NSLog (@"-----------"); - NSLog (@" 7 | 8 | 9"); - NSLog (@"\n"); - } + printf("\nYou have selected the Mega grid, good luck. To select a box on the grid please select its corresponding number on your keyboard\n"); + NSLog (@" 1 | 2 | 3 | 1 | Z | 3 | 1 | 2 | 3 "); + + NSLog (@"----------- | ----------- | ------------"); + + NSLog (@" 4 | 5 | 6 | 4 | 5 | 6 | 4 | 5 | 6 "); + + NSLog (@"----------- | ----------- | ------------"); + + NSLog (@" 7 | 8 | 9 | 7 | 8 | 9 | 7 | 8 | 9 "); + + NSLog (@"----------------------------------------------"); + + NSLog (@" 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 "); + + NSLog (@"----------- | ----------- | ------------"); + + NSLog (@" 4 | 5 | 6 | 4 | 5 | 6 | 4 | 5 | 6 "); + + NSLog (@"----------- | ------------ | ------------"); + + NSLog (@" 7 | 8 | 9 | 7 | 8 | 9 | 7 | 8 | 9 "); + + NSLog (@"----------------------------------------------"); + + NSLog (@" 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 "); + + NSLog (@"----------- | ----------- | ------------"); + + NSLog (@" 4 | 5 | 6 | 4 | 5 | 6 | 4 | 5 | 6 "); + + NSLog (@"----------- | ----------- | ------------"); + + NSLog (@" 7 | 8 | 9 | 7 | 8 | 9 | 7 | 8 | 9 "); + + NSLog (@"----------------------------------------------"); } @@ -767,7 +949,7 @@ int main(int argc, const char * argv[]) { while (true) { char playAgain[0]; NSString * ns_playAgain; - NSLog(@"Start another game? \n1: YES \n2: NO"); + printf("\nStart another game? \n1: YES \n2: NO\n"); fpurge(stdin); scanf("%s", playAgain); @@ -776,7 +958,7 @@ int main(int argc, const char * argv[]) { if ([ns_playAgain isEqualToString:@"2"]) { playingAgainRepeat = NO; - NSLog (@"Thank you for playing!! "); + printf("\nThank you for playing!! "); break; } else if ([ns_playAgain isEqualToString:@"1"]) { @@ -784,7 +966,7 @@ int main(int argc, const char * argv[]) { break; } else{ - NSLog (@"Wrong choice! "); + printf("\nWrong choice! "); continue; }