烟雨江湖吧 关注:222,393贴子:7,369,864
  • 3回复贴,共1

千机遗迹星图关卡 python解决

取消只看楼主收藏回复

星图我是真的不想sl了,写了一个python脚本,可以在网页上运行将第三行的deng里的坐标改为自己的坐标,以东南角为原点(坐标1,1),东西轴为x轴坐标(西为正方向),南北为y轴(北为正方向)。
然后百度在线python运行网站见图,
代码我放在评论里


IP属地:江苏来自iPhone客户端1楼2023-07-31 14:57回复
    算了,评论里缩进有问题,私我吧,


    IP属地:江苏来自iPhone客户端5楼2023-07-31 15:02
    回复
      import itertools
      nums = [i for i in range(9)]
      deng=[(1,1),(2,5),(3,3),(4,7),(5,9),(6,6),(7,8),(8,2),(9,4)]
      def bianli(i,j):
      i_=i
      temp=i
      j_=j
      while(i_<8):
      if matrix[i_+1][j]==1:
      break
      else:
      matrix[i_+1][j]=1
      i_+=1
      while (i > 0):
      if matrix[i -1][j] == 1:
      break
      else:
      matrix[i -1][j] = 1
      i -= 1
      while (j_ < 8):
      if matrix[temp][j_+1] == 1:
      break
      else:
      matrix[temp][j_+1] = 1
      j_ += 1
      while (j > 0):
      if matrix[temp][j-1] == 1:
      break
      else:
      matrix[temp][j-1] = 1
      j -= 1
      def isfull():
      for i in range(len(matrix)):
      for j in range(len(matrix[0])):
      if matrix[i][j]==0:
      return False
      return True
      for num in itertools.permutations(nums):
      matrix = [[0 for i in range(9)] for i in range(9)]
      for i in num:
      matrix[deng[i][0]-1][deng[i][1]-1]=1
      bianli(deng[i][0]-1,deng[i][1]-1)
      if isfull():
      for i in num:
      print(i+1,end=",")
      break


      IP属地:江苏来自iPhone客户端6楼2023-07-31 15:02
      收起回复
        注意缩进,四个空格为一组


        IP属地:江苏来自iPhone客户端7楼2023-07-31 15:26
        收起回复