Towers of Hanoi: Difference between revisions

no edit summary
(VB.NET code)
No edit summary
Line 529:
END Hanoi.</lang>
 
 
=={{header|Objective-C}}==
From [http://sites.google.com/site/vinodkshukla/code-snippets/objectivec-towersofhanoi here]
 
This has been tested on GNUstep compiler. But it should be compatible with XCode/Cocoa on MacOS too.
 
The Interface - TowersOfHanoi.h:
<lang objective-c>
#import <Foundation/NSObject.h>
 
@interface TowersOfHanoi: NSObject {
int pegFrom;
int pegTo;
int pegVia;
int numDisks;
}
 
-(void) setPegFrom: (int) from andSetPegTo: (int) to andSetPegVia: (int) via andSetNumDisks: (int) disks;
-(void) movePegFrom: (int) from andMovePegTo: (int) to andMovePegVia: (int) via andWithNumDisks: (int) disks;
@end
</lang>
 
The Implementation - TowersOfHanoi.m:
 
<lang objective-c>
#import "TowersOfHanoi.h"
@implementation TowersOfHanoi
 
-(void) setPegFrom: (int) from andSetPegTo: (int) to andSetPegVia: (int) via andSetNumDisks: (int) disks {
pegFrom = from;
pegTo = to;
pegVia = via;
numDisks = disks;
}
 
-(void) movePegFrom: (int) from andMovePegTo: (int) to andMovePegVia: (int) via andWithNumDisks: (int) disks {
if (disks == 1) {
printf("Move disk from pole %i to pole %i", from, to);
printf("\n");
} else {
[self movePegFrom: from andMovePegTo: via andMovePegVia: to andWithNumDisks: disks-1];
[self movePegFrom: from andMovePegTo: to andMovePegVia: via andWithNumDisks: 1];
[self movePegFrom: via andMovePegTo: to andMovePegVia: from andWithNumDisks: disks-1];
}
}
 
@end
</lang>
 
Test code: TowersTest.m:
 
<lang objective-c>
#import <stdio.h>
#import "TowersOfHanoi.h"
 
int main( int argc, const char *argv[] ) {
TowersOfHanoi *tower = [[TowersOfHanoi alloc] init];
 
int from = 1;
int to = 3;
int via = 2;
int disks = 3;
 
[tower setPegFrom: from andSetPegTo: to andSetPegVia: via andSetNumDisks: disks];
 
[tower movePegFrom: from andMovePegTo: to andMovePegVia: via andWithNumDisks: disks];
 
return 0;
}
</lang>
=={{header|OCaml}}==
 
Anonymous user