lehrkraefte:blc:informatik:ffprg1-2019:arrays-anwendung2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:ffprg1-2019:arrays-anwendung2 [2019/03/26 09:30]
Ivo Blöchliger created
lehrkraefte:blc:informatik:ffprg1-2019:arrays-anwendung2 [2019/03/26 09:35] (current)
Ivo Blöchliger [Variante Vektorgeometrie]
Line 19: Line 19:
 Die Grundidee ist die gleiche wie bei der Parameterdarstellung der Geraden in der Vektorgeometrie. Man definiert einen Startpunkt und einen Richtungsvektor, der die Verschiebung angibt. Die Grundidee ist die gleiche wie bei der Parameterdarstellung der Geraden in der Vektorgeometrie. Man definiert einen Startpunkt und einen Richtungsvektor, der die Verschiebung angibt.
  
-D.h. Man startet z.B. im Punkt (0,2) und verschiebt dann schrittweise um den Vektor $\binom{1,-1}$, um die Punkte (1,1) und (2,0) zu erhalten. Auf diesem Weg zählt man, wie viele Male man hintereinander den gleichen Eintrag findet:+D.h. Man startet z.B. im Punkt (0,2) und verschiebt dann schrittweise um den Vektor $\binom{1}{-1}$, um die Punkte (1,1) und (2,0) zu erhalten. Auf diesem Weg zählt man, wie viele Male man hintereinander den gleichen Eintrag findet. **Achtung**, der folgende Code ist ein **Pseudo-Code**, der aber an Python angelehnt ist:
  
   punkt = startpunkt   punkt = startpunkt
Line 43: Line 43:
  
 ==== Variante "noch ein bisschen effizienter" ==== ==== Variante "noch ein bisschen effizienter" ====
-Es muss nicht jedes Mal das ganze Feld überprüft werden. Es reicht, von der Position aus zu zählen, wo das Feld verändert wurde. Dazu muss in die vier Richtungen vorwärts **und** rückwärts gezählt werden.+Es muss nicht jedes Mal das ganze Feld überprüft werden. Es reicht, von der Position aus zu zählen, wo das Feld verändert wurde. Dazu muss in die vier Richtungen (d.h. horizontal, vertikal und 2 diagonal) vorwärts **und** rückwärts gezählt werden.
  
 +Dazu schreibt man am einfachsten eine for-Schleife über die möglichen Richtungen:
 +
 +  for dir in [[1,0],[1,1], [0,1], [-1,1]]:
 +    anzahl = In Richtung ''dir'' zählen
 +    anzahl += In Richtung ''-dir'' zählen
 +    anzahl +=1  # Die Position selbst zählen
 +    if anzahl==3:  # Oder was auch immer
 +       return True  # Sieg melden
 +  return False  # Kein Sieg
  • lehrkraefte/blc/informatik/ffprg1-2019/arrays-anwendung2.1553589041.txt.gz
  • Last modified: 2019/03/26 09:30
  • by Ivo Blöchliger