2022年9月3日 星期六

Python a746: 画蛇添足

 a746: 画蛇添足



print('a746: 畫蛇添足')

print(' n 和 m 兩個數字,n 表示一個 nxn 的矩陣,m 表示矩陣上會出現幾個點,')

print(' 接著會依序出現這些點的「座標」,根據座標使用「*」進行連線。')

n,m=map(int, input('請輸入n 和 m 兩個數字 -->').split())

output = []                        # 建立輸出的空串列

for i in range(n):

    output.append([])                # 根據矩陣大小,讓串列的第一層數量 ( y 軸 )


for i in range(n):

    for j in range(n):

        output[i].append(' ')  # 根據矩陣大小,讓串列的第二層數量 ( x 軸 ),預設一個空白字元


for i in range(n):

    print(output[i])

print('第1...m个点在地(x,y)上。 保证前一个点和后一个点所确定的线段一定平行于围栏的一边。')


x,y=[],[]

for i in range(m):

    x.append(i)

    y.append(i)

    

for i in range (m):

    x[i],y[i]=map(int, input('請輸入x 和y 兩個數字 (x,y) 座標-->').split())


for i in range (m-1):

    #print (i,end=' ')

    if(x[i] <= x[i+1] and y[i] <= y[i+1])  :

        for j in range (int (x[i]-1) , int ( x[i+1])) :

            #print (j,end=' ')

            for k in range (int (y[i]-1) , int ( y[i+1])) :

                #print(k,end='-')

                output[j][k] = '*';


    if(x[i] >= x[i+1] and y[i] >= y[i+1])  :

        for j in range (int (x[i+1]-1) , int ( x[i])) :

            for k in range (int (y[i+1]-1) , int ( y[i])) :

                output[j][k] = '*';



print('-'*(n+2))        # 根據矩陣大小,上方放上橫線 ( 長度多出 2 )

for i in output:

    o = ''.join(i)

    print('|' + o + '|')  # 根據矩陣大小,左右上橫線

print('-'*(n+2))        # 根據矩陣大小,下方放上橫線 ( 長度多出 2 )

    


>>> %Run a746.py

a746: 畫蛇添足

 n 和 m 兩個數字,n 表示一個 nxn 的矩陣,m 表示矩陣上會出現幾個點,

 接著會依序出現這些點的「座標」,根據座標使用「*」進行連線。

請輸入n 和 m 兩個數字 -->4 5

[' ', ' ', ' ', ' ']

[' ', ' ', ' ', ' ']

[' ', ' ', ' ', ' ']

[' ', ' ', ' ', ' ']

第1...m个点在地(x,y)上。 保证前一个点和后一个点所确定的线段一定平行于围栏的一边。

請輸入x 和y 兩個數字 (x,y) 座標-->1 1

請輸入x 和y 兩個數字 (x,y) 座標-->1 4

請輸入x 和y 兩個數字 (x,y) 座標-->4 4

請輸入x 和y 兩個數字 (x,y) 座標-->4 1

請輸入x 和y 兩個數字 (x,y) 座標-->1 1

------

|****|

|*  *|

|*  *|

|****|

------

>>> 

>>> %Run a746.py

a746: 畫蛇添足

 n 和 m 兩個數字,n 表示一個 nxn 的矩陣,m 表示矩陣上會出現幾個點,

 接著會依序出現這些點的「座標」,根據座標使用「*」進行連線。

請輸入n 和 m 兩個數字 -->5 5

[' ', ' ', ' ', ' ', ' ']

[' ', ' ', ' ', ' ', ' ']

[' ', ' ', ' ', ' ', ' ']

[' ', ' ', ' ', ' ', ' ']

[' ', ' ', ' ', ' ', ' ']

第1...m个点在地(x,y)上。 保证前一个点和后一个点所确定的线段一定平行于围栏的一边。

請輸入x 和y 兩個數字 (x,y) 座標-->1 1

請輸入x 和y 兩個數字 (x,y) 座標-->1 5

請輸入x 和y 兩個數字 (x,y) 座標-->5 5

請輸入x 和y 兩個數字 (x,y) 座標-->5 1

請輸入x 和y 兩個數字 (x,y) 座標-->1 1

-------

|*****|

|*   *|

|*   *|

|*   *|

|*****|

-------

>>> 


沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...