Zählen Sie Schnittpunkte eines Android-Swipe-CodesPython

Python-Programme
Anonymous
 Zählen Sie Schnittpunkte eines Android-Swipe-Codes

Post by Anonymous »

Ich versuche, die Schnittpunkte in einem Wischcode im Android-Stil in Python zu zählen. Mit „Swipe-Code“ meine ich die Liniensegmente, die durch Verbinden eines Pfads (Tupellänge 9) der Ziffern von 0 bis 9 in einem 3x3-Raster erstellt werden:

Code: Select all

0  1  2

3  4  5

6  7  8
Ich habe den folgenden Code, um ein bestimmtes 9-Tupel zu visualisieren:

Code: Select all

def coords(number):
y, x = divmod(number, 3)
return x, y

def draw_arrow(i, j):
x1, y1 = coords(i)
x2, y2 = coords(j)
dx = x2 - x1
dy = y2 - y1
plt.arrow(x1, y1, dx, dy,
head_width = 0.04,
width = 0.01,
ec ='green')

def draw(path):
# By default, the input is a length 9 tuple
plt.clf()
for i in range(0,3):
for j in range(0,3):
plt.scatter(i, j, s=200, c='black',  edgecolors='black')
plt.ylim(2.1, -0.1)
for i in range(len(path)-1):
draw_arrow(path[i], path[i+1])
plt.show()
Beachten Sie, dass ich der Vereinfachung der Frage halber den Pfad zwischen beispielsweise 2 und 8 oder den Pfad zwischen 0 und 2 nicht berücksichtigen würde. Nachfolgend finden Sie einige Beispiele für Wischcodes:

Code: Select all

draw((2, 7, 5, 0, 3, 6, 4, 8, 1))
Image

Code: Select all

draw((0, 4, 6, 3, 7, 2, 5, 8, 1))
Image

Wie kann ich die Schnittpunkte in einem solchen Wischcode zählen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post