برنامه شطرنج در c

scooter2005

Member
یه برنامه می خوام که یک شطرنج 8 در 8 رو از بالا به پایین و از چپ به راست شمارش کند بعد اگر هر عددی از 1 تا 68 بهش دادیم بگه سیاه هست یا سفید بعد سطر و ستونش رو هم بگه
 

the_king

مدیرکل انجمن
یه برنامه می خوام که یک شطرنج 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 + (n - 1) / 8) % 2)?"white":"black");
	printf ("Row = %d\nColumn = %d\n", (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\n", (k == 1)?"white":"black");
	printf ("Row = %d\nColumn = %d\n", i + 1, j + 1);
	getch();
}
 
آخرین ویرایش توسط مدیر:

the_king

مدیرکل انجمن
برای بدست آوردن شماره سطر یک خانه کافیست شماره خانه (n) را یک واحد کاهش داده و بر 8 تقسیم کنیم
(تقسیم با حذف اعشار) و حاصل را با عدد 1 جمع کنیم.
مثلا اگر شماره خانه 12 است، آنرا یک واحد کاهش داده (11) و بر 8 تقسیم کنیم (1.375 که اعشار آن حذف می شود (1) )
و حاصل را یک واحد افزایش دهیم (2).

برای بدست آوردن شماره ستون یک خانه کافیست شماره خانه (n) را یک واحد کاهش داده و باقیمانده تقسیم
آن بر 8 را یک واحد افزایش دهیم، مثلا اگر شماره خانه 12 است، آنرا یک واحد کاهش داده (11) و باقیمانده تقسیم
آنرا بر 8 بدست می آوریم (3) و حاصل را یک واحد افزایش دهیم (4).

Chess.gif


در سطر های فرد (سطر اول، سوم، پنجم و هفتم) شماره های فرد در خانه های سفید قرار دارند و در سطر های
زوج (سطر دوم، چهارم، ششم و هشتم) در خانه های سیاه. پس نمی توان در این حالت روی زوج و فرد بودن
شماره قضاوت کرد. حال اگر شماره سطر هر خانه را به شماره خانه آن اضافه کنیم (به شماره خانه های موجود در
سطر اول عدد 1 و به شماره خانه های موجود در سطر دوم عدد 2 و به شماره خانه های موجود در سطر سوم عدد 3 و ...
را اضافه کنیم) خواهیم داشت :

Chess2.gif


اکنون یک رابطه منطقی میان زوج و فرد بودن شماره و رنگ خانه مورد نظر برقرار شده است.
کد برنامه اول دقیقا بر اساس این سه فرمول عمل می کند.
 

جدیدترین ارسال ها

بالا