Anonymous user
Towers of Hanoi: Difference between revisions
→{{header|C}}
Line 196:
typedef struct { int *x, n; } tower;
tower *new_tower(int cap
{
int i = 0;▼
▲ tower *t = malloc(sizeof(tower) + sizeof(int) * cap);
t->x = (int*)(t + 1);
return t;
}
int height;▼
tower *t[3];
{
printf("\033[%d;%dH", height - y + 1, (height + 1) * (2 * i + 1) - d);
while (d--) printf(
void add_disk(int i, int d)
{
text(t[i]->n, i, d, "==");
▲ }
usleep(100000);
fflush(stdout);
}
int remove_disk(int i)
▲void move(int n, tower *from, tower *to, tower *via)
{
int
text(t[i]->n + 1, i, d, " ");
if (n) {▼
return d;
move(n - 1, from, via, to);▼
void move(int n, int from, int to, int via)
{
add_disk(to, remove_disk(from));
▲ }
}
int main(int c, char *v[])
{
for (c = 0; c < 3; c++) t[
for (c = height; c; c--) add_disk(0, c);
▲ printf("\033[H\033[J");
▲ move(height, t[0], t[2], t[1]);
text(1, 0, 1, "\n");
return 0;
}</lang>
|