Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
M

mike4403

@mike4403
About
Posts
1
Topics
1
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • I want to make a hanoi tower to graphic but I have a problem
    M mike4403

    I want to make a hanoi tower to graphic but I have a problem

    the tower don't work well, So I wan't to get some help of you.

    I made this by C, and I take my code under this article

    thank you.

    #define _CRT_SECURE_NO_WARNINGS #include #define FROM 0 #define TEMP 1 #define TO 2 #define MAXDISK 10 typedef struct { int count; int buffer[MAXDISK]; } ROD; ROD rod[3] = { 0,}; void hanoi(int n, int disknum, int rodFrom, int rodTemp, int rodTo); void moveDisk(int diskNum, int rodFrom, int rodTo); void removeDisk(int diskNum, int rodFrom); void addDisk(int diskNum, int rodTo); void printProcess(int diskNum); int main() { int n = 0; printf("number of disk : "); scanf("%d", &n); for (int i = 0; i < 3; i++) { for (int j = 0; j < n; j++) { rod[i].buffer[j] = 0; } } rod[0].count = n; for (int i = 0; i < n; i++) { rod[0].buffer[i] = i+1; } rod[1].count = 0; rod[2].count = 0; printProcess(n); hanoi(n, n, FROM, TEMP, TO); return 0; } void hanoi(int n, int disknum, int rodFrom, int rodTemp, int rodTo) { moveDisk(n, rodFrom, rodTo); hanoi(n, disknum-1 , rodFrom, rodTo, rodTemp); hanoi(n, disknum-1 , rodTemp, rodFrom, rodTo); } void moveDisk(int diskNum, int rodFrom, int rodTo) { removeDisk(diskNum, rodFrom); addDisk(diskNum, rodTo); printProcess(diskNum); } void removeDisk(int diskNum, int rodFrom) { rod[rodFrom].count -= 1; rod[rodFrom].buffer[rod[rodFrom].count] = 0; } void addDisk(int diskNum, int rodTo) { rod[rodTo].buffer[rod[rodTo].count] = diskNum ; rod[rodTo].count += 1; } void printProcess(int diskNum) { for (int i = 9; i >= 0; i--) { for (int m = 0; m < 3; m++) { if (rod[m].buffer[i] == 0) { printf(" + "); } else { for (int q = 0; q < 10 - diskNum + rod[m].buffer[i] - 1; q++) { printf(" "); } for (int q = 0; q < diskNum - rod[m].buffer[i] + 1; q++) { printf("-"); } printf("+"); for (int q = 0; q < diskNum - rod[m].buffer[i] + 1; q++) { printf("-"); } for (int q = 0; q < 10 - diskNum + rod[m].buffer[i] - 1; q++) { printf(" "); } } } printf("\n"); } printf("\n"); }

    Managed C++/CLI help
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups