perfect
This commit is contained in:
@ -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 ()
|
||||
Reference in New Issue
Block a user