Merge pull request 'perfect' (#2) from print into main

Reviewed-on: #2
This commit is contained in:
2023-07-02 17:54:29 +02:00

View File

@ -9,32 +9,47 @@ def makeFeld ():
return feld
def printFeld (spielerFeld, modus):
print ("\n"+ spielerFeld [matrixgr])
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:
print ('\n' + NZeile + ' ' + zeile)
else:
print ('\n' + ' ' + zeile)
def printFelder():
# Von Feld1 werden nur die abgeschossenen Felder gezeigt, von Feld2 alle.
NZeile = chr(ord(NZeile)+1)
print ('\n')
output = [[gegnerFeld [matrixgr]],[' ' + eigenFeld [matrixgr]]]
for i in output:
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):
@ -172,7 +187,6 @@ def fuellFeld (Feld):
def feldWahl (spielerFeld):
printFeld (spielerFeld, 't')
feld = str(input("Wähle das Feld, das abgeschossen werden soll! "))
feld.replace (" ", "")
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
setFeld (spielerFeld, feld[0],feld[1], 5) # Treffer wird eingetragen
printFeld (spielerFeld, 't')
printFelder()
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)
else:
print ("Leider kein Treffer! Der Bot zieht nun...")
@ -214,20 +228,19 @@ def Initialisiere ():
gegnerFeld= makeFeld ()
fuellFeld (gegnerFeld)
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
eing = ''
while eing != ('J' or 'j'):
if eing != '':
print ("Neues Feld wird generiert. Das kann etwas dauern...")
eigenFeld = makeFeld ()
fuellFeld (eigenFeld)
while summeFeld (eigenFeld) != 34:
eigenFeld= makeFeld ()
fuellFeld (eigenFeld)
eigenFeld += ['Eigenes Feld:']
printFeld (eigenFeld, 'a')
printFelder()
eing = str(input("Ist dieses Feld akzeptabel? [J: Ja / Irgendwas: Nein, Neues!] "))
print ("\n\n\n")
def SchwierigkeitsWahl ():
@ -246,6 +259,7 @@ def SchwierigkeitsWahl ():
def botwahl (spielerFeld, diff):
print (diff)
diff *= 10
wurf = random.randint (-5, 105)
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)]
setFeld (spielerFeld, feld[0], feld[1], 5)
printFeld (spielerFeld, 'a')
printFelder()
if treffer:
print ("Der Bot hat getroffen! Er darf noch ein Feld wählen!")
time.sleep (1)
botwahl (spielerFeld, diff/11)
time.sleep (2)
botwahl (spielerFeld, diff/10.25)
else:
print ("Der Bot hat nicht getroffen! Du bist nun dran!")
@ -274,11 +288,11 @@ def botwahl (spielerFeld, diff):
def start ():
level = SchwierigkeitsWahl ()
Initialisiere ()
printFelder ()
while zweicheck (eigenFeld) and zweicheck (gegnerFeld):
feldWahl (gegnerFeld)
time.sleep (1)
botwahl (eigenFeld, level)
time.sleep (2)
botwahl (eigenFeld, level)
start ()