خونه های تحت وزیر (سوال جذاب با پایتون)
تئوری :
ما یک صفحه شطرنج خالی داریم(۸ در ۸) ، اولین خانه را خانه ۰,۰ ، دومین خانه را ۱,۰ ، … و آخرین خانه را با ۷,۷ نشان می دهیم(هر ستون و عرض را یکی کم می کنیم)
خانه های که وزیر آنها را پوشش می دهد ، تمام خانه های افقی آن ردیف و تمام خانه های عمودی آن ستون و بعلاوه تمام خانه های مورب ان را .
نحوه کدنویسی برنامه :
یک تابع تعریف کنید که مختصات وزیر را بگیرد (اگر مختصات ها از ۰ کوچک تر و از ۷ بزرگ تر بود ، برنامه error بدهد) و در قالب یک لیست ، تمام خانه های تحت نظر وزیر را برای ما برگرداند.
نکته : هر مختصاتی در این برنامه خودش یک لیست است که به ترتیب yوx را مشخص می کند.
مثال :
اگه به این تابع مختصات [۱,۱] را بدهیم ، خانه های تحت کیش می شوند :
- ۰,۱
- ۱,۱
- ۲,۱
- ۳,۱
- ۴,۱
- ۵,۱
- ۶,۱
- ۷,۱
- ۱,۰
- ۱,۲
- ۱,۳
- ۱,۴
- ۱,۵
- ۱,۶
- ۱,۷
- ۰,۰
- ۲,۲
- ۳,۳
- ۴,۴
- ۵,۵
- ۶,۶
- ۷,۷
پاسخ ( ۱ )
def getLocation(row,col):
temp=[]
location=[]
if row>7 or row<0 or col>7 or col<0:
print(‘Error’)
else:
location=[row,col]
print(f’Vazir dar khaneye {location} mibahsd’)
# ofoghi haye chap
i=row
j=col
while j>0:
str1=i,j-1
temp.append(str1)
j-=1
# ofoghi haye rast
i=row
j=col
while j<7:
str2=(i,j+1)
temp.append(str2)
j+=1
# amodi haye bala
i=row
j=col
while i<7:
str3=i+1,j
temp.append(str3)
i+=1
# amodi haye paeen
i=row
j=col
while i>0:
str4=i-1,j
temp.append(str4)
i-=1
#movarab rast bala
i=row
j=col
while i<7 and j<7:
str5=i+1,j+1
temp.append(str5)
i+=1
j+=1
#movarab rast paeen
i=row
j=col
while i>0 and j>0:
str6=i-1,j-1
temp.append(str6)
i-=1
j-=1
#movarab chap bala
i=row
j=col
while i<7 and j>0:
str7=i+1,j-1
temp.append(str7)
i+=1
j-=1
#movarab chap paeen
i=row
j=col
while i>0 and j<7:
str8=i-1,j+1
temp.append(str8)
i-=1
j+=1
return temp
row=int(input(‘Enter number of row: (0-7) :’))
col=int(input(‘Enter number of column: (0-7) :’))
result=getLocation(row,col)
print(f’result is :n{result}’)