Benutzer:Flikkes

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

=Eigene Projekte=
==Game of (text) Life - Source==
<code>import time
from random import choice
from sys import argv

preMap = []
filename = argv[1]
times = int(argv[2])
rawMap = open(filename, 'r')
for line in rawMap:
    preMap.append(line.replace("\n", ""))
positions = ((0, -1), (0, 1), (-1, -1), (-1, 0), (-1, 1), (1, -1), (1, 0), (1, 1))


def processMap(inMap):
    retMap = []
    l = getLongestLine(inMap)
    for line in inMap:
        newLine = line
        if len(line) < l:
            for i in range(0, l - len(line)):
                newLine += " "
        retMap.append(newLine)
    return retMap


def getLongestLine(lines):
    longest = 0
    for line in lines:
        if len(line) > longest:
            longest = len(line)
    return longest


def live(cell):
    if cell != " ":
        return True
    return False


def dead(cell):
    if cell == " ":
        return True
    return False


def isValidNeighbor(cell):
    if cell != " ":
        return True
    return False


def isInBounds(i, j, iP, jP, inMap):
    if i + iP >= 0 and i + iP <= len(inMap) - 1 and j + jP >= 0 and j + jP <= len(inMap[i]) - 1:
        return True
    return False


def getNeighbors(i, j, inMap):
    n = []
    for p in positions:
        if isInBounds(i, j, p[0], p[1], inMap):
            if isValidNeighbor(inMap[i + p[0]][j + p[1]]):
                n.append(inMap[i + p[0]][j + p[1]])
    return n


gameMap = processMap(preMap)
for line in gameMap:
    print(line)


def main(inMap, iterations):
    newMap = []
    if iterations == 0:
        return 0

    for i in range(0, len(inMap)):
        newLine = ""
        for j in range(0, len(inMap[i])):
            neighbors = getNeighbors(i, j, inMap)
            if len(neighbors) < 2 and live(inMap[i][j]):
                newLine += " "
            if len(neighbors) < 4 and len(neighbors) >= 2 and live(inMap[i][j]):
                newLine += inMap[i][j]
            if len(neighbors) >= 4 and live(inMap[i][j]):
                newLine += " "
            if len(neighbors) == 3 and dead(inMap[i][j]):
                newLine += neighbors[choice(range(0, len(neighbors)))]
            if len(neighbors) < 3 and dead(inMap[i][j]):
                newLine += " "
            if len(neighbors) > 3 and dead(inMap[i][j]):
                newLine += " "
        newMap.append(newLine)

    for i in range(0, 5):
        print("")
    time.sleep(0.5)
    for line in newMap:
        print(line)
    main(processMap(newMap), iterations - 1)

main(gameMap, times)</code>
==Angewandt auf sich selbst==
<code>i    t    ee moor   hioc
                   choic
f  m s             v oii
       y    ro   rv
p      = []rar[11

                     m   r'
                    me   r'
f                            ee"nnn   ))
                                   ,    ) 1   )   1,   1   (   -,   (   ,   (   )
 osi      =                        -    (-1   )   -1   )   1   1)   1   )   1   )
 oiiitio     0,   )1   ,   )   (,   ),   1,   0   11   1   (   -)   1   ,   (   )
 d   rrcessaa(((Mnpp:
 e pp      M   inMap)
 e                     (MMa)
   f                  (inMap
    f r                nMaMp
     f
        i                 ((       n((ilee))
           l               0,,     en(line))
         rM                   "    nn(ine)):
     re                    n )
     etu          en(d(nwinn)
     ttuu   rtMM
 f   gtoLgessLLLie(liiss)
 e fg       s Line(lines)
 f                     e:
    f                :> nnnst:
     o ii                     :
     rt             ==l       )
     etur  l      s    een(nen
     teun   ooget
 e   ivecelel)
 e ll         :
 f ii          "  :
                  e
     etu       e u
     euuu   ale
 f   adac(le))
 e id         :
 f fi          "  :
                  e
     etu       e r
     retr   Fss
 d   VsaadNNieghbbo(ecell
 e fi          h   (cell)
 e ii               ele)l
                  e
     etu       e e
     ttun   Fll
 d   InIBuuns(i,      i   ,   MnMap
 e ii  n o      ,0j, i , j , i       nMMpp       d               a             e(niMnapiii
 f ii                d i + iP       (inMap       n               n             en(inMap[i]
                 uenn             e(i(Map)       n               n             l(niMaM[p[]
     etu       e r
     ettu   Fas
 d   gteNiigbrs((i      Mnap:
 e ng t   ghbors(i      nMap)
 d                     iiap))
    f r    n           :     [[,   [1]   nMaa:
     r rif                            ,ii      [    1]1)]
           i                                     + p[1]])
     reun   i  n                 +     ] j +     ])[[11)]
     etur        ..ppndndnMMaa[     p[][j     p]1]
     ettr
 mmeea     ocossMsM(pprMMap
g       = p         (preMap
f                    reeaM)
 f rp           eap
     prtttini)
 d   anii(Mnpp   ieratinss)
 e nm      M  ,] terations)
 e                      ons
    i           s
       t       0n
     f rr        (0,   e(inMMa)p)
     o ii       g   ,  en(inMap))
     f                             []]))
        f             ( ,               :,  iapa
         o                                        ]]jj]
            i                   2     l          i][j])
                              <                            a   ieeinMnp[[]]]j):
               l                4     len(neighbors        n   ive(inMap[i][j])
                                                        22 n   ivv(nnMMai[]j[):
               l                 4   d] ive(inMap[i][j])

               l                 3                        negghoss)))
                                                         neighbors)))
               l                3                        neiigbrsr)))
                              <
               l              >    n   ead(inMap[i][j])
         ww                   "    n   aa((inMMpp][jjj)
         ewMap.a           n )
     f ne                 Le)
     o ii        e(0   )
                       :
    t               p:
    f               ap
                        pa,   eraaains
     ain           (newMap)   teration
 mn                  nwMa),   etrrioin
 ain(gameMap   imes</code>