الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج لعبة Tower Hanoiبواسطة Loop

مغلق
بدأه مبارك في 8 مايو 2003 · 2 رد · 778 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

من منا لا يعرف لعبة Tower Hanoi فهي من الألعاب المشهورة ومن أراد أن يلعبها http://thinks.com/java/hanoi/hanoi.htm

حاولت أكتب برنامجها بواسطة recursion بلغة السي وتمكنت ولله الحمد من ذلك ولكن عندما أردت كتابتها بواسطة الـ Loop لم أستطع ذلك فهل هناك أحد قد قام بكتابتها أو مرت عليه في أحد المواقع فليدلني عليها ....

وله مني جزيل الشكر والعرفان ....

البرنامج بواسطة recursion

#include <assert.h>

#include <stdio.h>

#include <stdlib.h>

extern long cnt;

int get_n_from_user(void);

void move(int n,char a,char b,char c);

long cnt=0; /* THIS AS AN EXTERN VARIABLE*/

void move (int n,char a,char b,char c) /* DEFINITION OF RECURSION FUNCTION MOVE()*/

{	

       if (n==1)

{

  ++cnt;

printf("%ldt%st%dt%st%ct%st%cn",cnt," move disk ",1," from tower ",a," to tower ",c);

}

	else

  {

  move (n-1,a,c,b);

  ++cnt;

printf("%ldt%st%dt%st%ct%st%cn", cnt," move disk ",n," from tower ",a," to tower ",c);

  move (n-1,b,a,c);

  }

} /* DEFINITION OF RECURSION FUNCTION MOVE() END HERE */

int get_n_from_user (void)

{

	int n;

printf("n please give value of n n");

	scanf("%d",&n);

	if (n<=0)

  {

printf("n error the value of n should be>0n");

  exit(1);

	} return n;

	}

int main (void)

{

	int n;

	n=get_n_from_user();

	assert(n>0);

	move(n,'a','b','c');

	return 0;

	}
#2

السلام عليكم ورحمة الله وبركاته

ان عمل البرنامج كحلاقات صعب الجد ولا اعتقد من السهل عمل

اختكم

لغة سي

#3

أنا أعلم أنه صعب لذلك طرحت السؤال لعلي أجد أحد وجد له طريقة ...

وأشكرك أختي لغة سي على متابعتك للموضوع

هذا الموضوع مغلق.

مواضيع مشابهة