واضح آرشیو وب فارسی:سایت ریسک: برنامه شطرنج در c scooter2005 04 بهمن 1387, 12:59یه برنامه می خوام که یک شطرنج 8 در 8 رو از بالا به پایین و از چپ به راست شمارش کند بعد اگر هر عددی از 1 تا 68 بهش دادیم بگه سیاه هست یا سفید بعد سطر و ستونش رو هم بگه the_king 04 بهمن 1387, 19:13یه برنامه می خوام که یک شطرنج 8 در 8 رو از بالا به پایین و از چپ به راست شمارش کند بعد اگر هر عددی از 1 تا 68 بهش دادیم بگه سیاه هست یا سفید بعد سطر و ستونش رو هم بگه منظورتون اعداد بین 1 الی 64 است دیگه؟ شیوه اول ، بدون استفاده از حلقه for : #include <stdio.h> #include <conio.h> void main() { int n; printf("Please enter a number (1 to 64) : "); scanf("%d", &n); printf ("Color = %s ", ((n + (n - 1) / 8) % 2)?"white":"black"); printf ("Row = %d Column = %d ", (n - 1) / 8 + 1, (n - 1) % 8 + 1); getch(); } شیوه دوم، با استفاده از حلقه for : #include <stdio.h> #include <conio.h> void main() { int n, i = 0, j = 0, k = 1; printf("Please enter a number (1 to 64) : "); scanf("%d", &n); for (; n > 1; n--) { j = (j + 1) % 8; if (j != 0) k = -k ; else i++; } printf ("Color = %s ", (k == 1)?"white":"black"); printf ("Row = %d Column = %d ", i + 1, j + 1); getch(); } scooter2005 04 بهمن 1387, 21:47ممنون امکانش هست یه توضیح خلاصه هم ارائه بدید ؟ the_king 05 بهمن 1387, 01:30برای بدست آوردن شماره سطر یک خانه کافیست شماره خانه (n) را یک واحد کاهش داده و بر 8 تقسیم کنیم (تقسیم با حذف اعشار) و حاصل را با عدد 1 جمع کنیم. مثلا اگر شماره خانه 12 است، آنرا یک واحد کاهش داده (11) و بر 8 تقسیم کنیم (1.375 که اعشار آن حذف می شود (1) ) و حاصل را یک واحد افزایش دهیم (2). برای بدست آوردن شماره ستون یک خانه کافیست شماره خانه (n) را یک واحد کاهش داده و باقیمانده تقسیم آن بر 8 را یک واحد افزایش دهیم، مثلا اگر شماره خانه 12 است، آنرا یک واحد کاهش داده (11) و باقیمانده تقسیم آنرا بر 8 بدست می آوریم (3) و حاصل را یک واحد افزایش دهیم (4). در سطر های فرد (سطر اول، سوم، پنجم و هفتم) شماره های فرد در خانه های سفید قرار دارند و در سطر های زوج (سطر دوم، چهارم، ششم و هشتم) در خانه های سیاه. پس نمی توان در این حالت روی زوج و فرد بودن شماره قضاوت کرد. حال اگر شماره سطر هر خانه را به شماره خانه آن اضافه کنیم (به شماره خانه های موجود در سطر اول عدد 1 و به شماره خانه های موجود در سطر دوم عدد 2 و به شماره خانه های موجود در سطر سوم عدد 3 و ... را اضافه کنیم) خواهیم داشت : اکنون یک رابطه منطقی میان زوج و فرد بودن شماره و رنگ خانه مورد نظر برقرار شده است. کد برنامه اول دقیقا بر اساس این سه فرمول عمل می کند.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 760]