@ -9,32 +9,47 @@ def makeFeld ():
|
|||||||
return feld
|
return feld
|
||||||
|
|
||||||
|
|
||||||
def printFeld (spielerFeld, modus):
|
def printFelder():
|
||||||
print ("\n"+ spielerFeld [matrixgr])
|
# Von Feld1 werden nur die abgeschossenen Felder gezeigt, von Feld2 alle.
|
||||||
print ("\n 1 2 3 4 5 6 7")
|
|
||||||
NZeile = 'A'
|
|
||||||
for i in spielerFeld:
|
|
||||||
zeile = ''
|
|
||||||
for n in i:
|
|
||||||
if n == [0]:
|
|
||||||
zeile+=' [ ] ' # Feld ist leer
|
|
||||||
elif n== [1]:
|
|
||||||
zeile+=' [ . ] ' # Feld wurde abgeschossen
|
|
||||||
elif n==[2]:
|
|
||||||
if modus == 'a': # Zeige ALLE Felder an
|
|
||||||
zeile+=' [ ■ ] ' # Auf dem Feld ist ein ungetroffenes Schiff
|
|
||||||
elif modus == 't': # Zeige NUR TREFFER an
|
|
||||||
zeile+=' [ ] '
|
|
||||||
elif n==[3]:
|
|
||||||
zeile+=' [ X ] ' # Das Schiff auf dem Feld wurde getroffen
|
|
||||||
|
|
||||||
if ord(NZeile.lower())-97 < matrixgr:
|
output = [[gegnerFeld [matrixgr]],[' ' + eigenFeld [matrixgr]]]
|
||||||
print ('\n' + NZeile + ' ' + zeile)
|
|
||||||
else:
|
|
||||||
print ('\n' + ' ' + zeile)
|
|
||||||
|
|
||||||
NZeile = chr(ord(NZeile)+1)
|
for i in output:
|
||||||
print ('\n')
|
i+= [" 1 2 3 4 5 6 7 "]
|
||||||
|
|
||||||
|
|
||||||
|
if len (gegnerFeld) != len(eigenFeld):
|
||||||
|
return ("Error: Listen nicht gleich lang!!")
|
||||||
|
felder = [gegnerFeld, eigenFeld]
|
||||||
|
for f in range (2):
|
||||||
|
NZeile = 'A'
|
||||||
|
for i in felder[f]:
|
||||||
|
zeile = ''
|
||||||
|
for n in i:
|
||||||
|
if n == [0]:
|
||||||
|
if f == 1: # Zeige ALLE Felder an
|
||||||
|
zeile+=' [ ] ' # Feld ist leer
|
||||||
|
elif f==0: # Zeige NUR TREFFER an, ~ um vom eigenen Feld zu differenzieren
|
||||||
|
zeile+=' [ ~ ] '
|
||||||
|
elif n== [1]:
|
||||||
|
zeile+=' [ . ] ' # Feld wurde abgeschossen
|
||||||
|
elif n==[2]:
|
||||||
|
if f == 1: # Zeige ALLE Felder an
|
||||||
|
zeile+=' [ ■ ] ' # Auf dem Feld ist ein ungetroffenes Schiff
|
||||||
|
elif f== 0: # Zeige NUR TREFFER an
|
||||||
|
zeile+=' [ ~ ] '
|
||||||
|
elif n==[3]:
|
||||||
|
zeile+=' [ X ] ' # Das Schiff auf dem Feld wurde getroffen
|
||||||
|
|
||||||
|
if ord(NZeile.lower())-97 < matrixgr:
|
||||||
|
output [f] += [NZeile + ' ' + zeile]
|
||||||
|
else:
|
||||||
|
output [f] += [' ' + zeile]
|
||||||
|
NZeile = chr(ord(NZeile)+1)
|
||||||
|
|
||||||
|
for i in range (0,len(output[0])):
|
||||||
|
print (output [0][i], ' ' + output [1][i])
|
||||||
|
print ("")
|
||||||
|
|
||||||
|
|
||||||
def setFeld (spielerFeld, zeile, spalte, wert):
|
def setFeld (spielerFeld, zeile, spalte, wert):
|
||||||
@ -172,7 +187,6 @@ def fuellFeld (Feld):
|
|||||||
|
|
||||||
|
|
||||||
def feldWahl (spielerFeld):
|
def feldWahl (spielerFeld):
|
||||||
printFeld (spielerFeld, 't')
|
|
||||||
feld = str(input("Wähle das Feld, das abgeschossen werden soll! "))
|
feld = str(input("Wähle das Feld, das abgeschossen werden soll! "))
|
||||||
feld.replace (" ", "")
|
feld.replace (" ", "")
|
||||||
if (len(feld) != 2 ) or (not feld[0].isalpha ()) or (not feld[1].isdigit()):
|
if (len(feld) != 2 ) or (not feld[0].isalpha ()) or (not feld[1].isdigit()):
|
||||||
@ -196,11 +210,11 @@ def feldWahl (spielerFeld):
|
|||||||
return 0 # Rückgabe, damit die Funktion nicht mit falschem Wert weiterläuft
|
return 0 # Rückgabe, damit die Funktion nicht mit falschem Wert weiterläuft
|
||||||
|
|
||||||
setFeld (spielerFeld, feld[0],feld[1], 5) # Treffer wird eingetragen
|
setFeld (spielerFeld, feld[0],feld[1], 5) # Treffer wird eingetragen
|
||||||
printFeld (spielerFeld, 't')
|
printFelder()
|
||||||
|
|
||||||
|
|
||||||
if wert+1 == 3:
|
if wert+1 == 3:
|
||||||
print ("TREFFER! \n Es darf direkt ein neues Feld gewählt werden!")
|
print ("TREFFER!\nEs darf direkt ein neues Feld gewählt werden!")
|
||||||
feldWahl (spielerFeld)
|
feldWahl (spielerFeld)
|
||||||
else:
|
else:
|
||||||
print ("Leider kein Treffer! Der Bot zieht nun...")
|
print ("Leider kein Treffer! Der Bot zieht nun...")
|
||||||
@ -214,20 +228,19 @@ def Initialisiere ():
|
|||||||
gegnerFeld= makeFeld ()
|
gegnerFeld= makeFeld ()
|
||||||
fuellFeld (gegnerFeld)
|
fuellFeld (gegnerFeld)
|
||||||
gegnerFeld += ['Gegnerisches Feld:']
|
gegnerFeld += ['Gegnerisches Feld:']
|
||||||
print ("Das gegnerische Feld wurde generiert!\nDieses wurde für dich zufällig generiert: ")
|
print ("Das gegnerische Feld wurde generiert!")
|
||||||
akzeptiert = False
|
akzeptiert = False
|
||||||
eing = ''
|
eing = ''
|
||||||
while eing != ('J' or 'j'):
|
while eing != ('J' or 'j'):
|
||||||
if eing != '':
|
|
||||||
print ("Neues Feld wird generiert. Das kann etwas dauern...")
|
|
||||||
eigenFeld = makeFeld ()
|
eigenFeld = makeFeld ()
|
||||||
fuellFeld (eigenFeld)
|
fuellFeld (eigenFeld)
|
||||||
while summeFeld (eigenFeld) != 34:
|
while summeFeld (eigenFeld) != 34:
|
||||||
eigenFeld= makeFeld ()
|
eigenFeld= makeFeld ()
|
||||||
fuellFeld (eigenFeld)
|
fuellFeld (eigenFeld)
|
||||||
eigenFeld += ['Eigenes Feld:']
|
eigenFeld += ['Eigenes Feld:']
|
||||||
printFeld (eigenFeld, 'a')
|
printFelder()
|
||||||
eing = str(input("Ist dieses Feld akzeptabel? [J: Ja / Irgendwas: Nein, Neues!] "))
|
eing = str(input("Ist dieses Feld akzeptabel? [J: Ja / Irgendwas: Nein, Neues!] "))
|
||||||
|
print ("\n\n\n")
|
||||||
|
|
||||||
|
|
||||||
def SchwierigkeitsWahl ():
|
def SchwierigkeitsWahl ():
|
||||||
@ -246,6 +259,7 @@ def SchwierigkeitsWahl ():
|
|||||||
|
|
||||||
|
|
||||||
def botwahl (spielerFeld, diff):
|
def botwahl (spielerFeld, diff):
|
||||||
|
print (diff)
|
||||||
diff *= 10
|
diff *= 10
|
||||||
wurf = random.randint (-5, 105)
|
wurf = random.randint (-5, 105)
|
||||||
feld = [random.randint (0, matrixgr-1), random.randint (0, matrixgr-1)]
|
feld = [random.randint (0, matrixgr-1), random.randint (0, matrixgr-1)]
|
||||||
@ -259,11 +273,11 @@ def botwahl (spielerFeld, diff):
|
|||||||
feld = [random.randint (0, matrixgr-1), random.randint (0, matrixgr-1)]
|
feld = [random.randint (0, matrixgr-1), random.randint (0, matrixgr-1)]
|
||||||
|
|
||||||
setFeld (spielerFeld, feld[0], feld[1], 5)
|
setFeld (spielerFeld, feld[0], feld[1], 5)
|
||||||
printFeld (spielerFeld, 'a')
|
printFelder()
|
||||||
if treffer:
|
if treffer:
|
||||||
print ("Der Bot hat getroffen! Er darf noch ein Feld wählen!")
|
print ("Der Bot hat getroffen! Er darf noch ein Feld wählen!")
|
||||||
time.sleep (1)
|
time.sleep (2)
|
||||||
botwahl (spielerFeld, diff/11)
|
botwahl (spielerFeld, diff/10.25)
|
||||||
else:
|
else:
|
||||||
print ("Der Bot hat nicht getroffen! Du bist nun dran!")
|
print ("Der Bot hat nicht getroffen! Du bist nun dran!")
|
||||||
|
|
||||||
@ -274,11 +288,11 @@ def botwahl (spielerFeld, diff):
|
|||||||
def start ():
|
def start ():
|
||||||
level = SchwierigkeitsWahl ()
|
level = SchwierigkeitsWahl ()
|
||||||
Initialisiere ()
|
Initialisiere ()
|
||||||
|
printFelder ()
|
||||||
while zweicheck (eigenFeld) and zweicheck (gegnerFeld):
|
while zweicheck (eigenFeld) and zweicheck (gegnerFeld):
|
||||||
feldWahl (gegnerFeld)
|
feldWahl (gegnerFeld)
|
||||||
time.sleep (1)
|
|
||||||
botwahl (eigenFeld, level)
|
|
||||||
time.sleep (2)
|
time.sleep (2)
|
||||||
|
botwahl (eigenFeld, level)
|
||||||
|
|
||||||
|
|
||||||
start ()
|
start ()
|
||||||
Reference in New Issue
Block a user