خونه های تحت وزیر (سوال جذاب با پایتون)

سوال

تئوری : 

ما یک صفحه شطرنج خالی داریم(۸ در ۸) ، اولین خانه را خانه ۰,۰  ، دومین خانه را ۱,۰ ، … و آخرین خانه را با ۷,۷ نشان می دهیم(هر ستون و عرض را یکی کم می کنیم)

خانه های که وزیر آنها را پوشش می دهد ، تمام خانه های افقی آن ردیف و تمام خانه های عمودی آن ستون و بعلاوه تمام خانه های مورب ان را .

 

نحوه کدنویسی برنامه : 

یک تابع تعریف کنید که مختصات وزیر را بگیرد (اگر مختصات ها از ۰ کوچک تر و از ۷ بزرگ تر بود ، برنامه error بدهد) و در قالب یک لیست ، تمام خانه های تحت نظر وزیر را برای ما برگرداند.

 

نکته : هر مختصاتی در این برنامه خودش یک لیست است که به ترتیب yوx را مشخص می کند.

 

مثال :

اگه به این تابع مختصات [۱,۱] را بدهیم ، خانه های تحت کیش می شوند :

  1.    ۰,۱
  2.    ۱,۱
  3.    ۲,۱
  4.    ۳,۱
  5.    ۴,۱
  6.    ۵,۱
  7.    ۶,۱
  8.    ۷,۱
  9.    ۱,۰
  10.    ۱,۲
  11.    ۱,۳
  12.    ۱,۴
  13.    ۱,۵
  14.    ۱,۶
  15.    ۱,۷
  16.    ۰,۰
  17.    ۲,۲
  18.    ۳,۳
  19.    ۴,۴
  20.    ۵,۵
  21.    ۶,۶
  22.    ۷,۷

 

 

بسته شده 0
parsiya 10 ماه 1 پاسخ 232 دیده شده 0

پاسخ ( ۱ )

  1. 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}’)

ارسال یک پاسخ