fixSchiff #3

Merged
paul merged 2 commits from fixSchiff into main 2023-07-14 10:14:50 +02:00
Showing only changes of commit a3f5f043b6 - Show all commits

View File

@ -1,5 +1,3 @@
# TO DO: Benachritigung bei komplettem Schiff-Abschuss?
import random, time import random, time
matrixgr = 7 # Größe des Spielfeldes (7x7) matrixgr = 7 # Größe des Spielfeldes (7x7)
@ -190,13 +188,22 @@ def fuellFeld (Feld, belegFeld):
def schiffVersenkt (spielerFeld, belegFeld, treffer): def schiffVersenkt (spielerFeld, belegFeld, treffer):
gr = getFeld (belegFeld, treffer [0], treffer [1]) gr = getFeld (belegFeld, treffer [0], treffer [1])
if gr == 1:
for i in range (-1, 2, 2):
if 0 <= treffer [0] + i < matrixgr:
setFeld (spielerFeld, treffer [0]+i, treffer [1], 1)
for i in range (-1, 2, 2):
if 0 <= treffer [1] + i < matrixgr:
setFeld (spielerFeld, treffer [0], treffer [1]+i, 1)
return True
schiff = [treffer] schiff = [treffer]
for i in range (-1, 2, 2): for i in range (-1, 2, 2):
if 0 <= treffer [0] + i < matrixgr: if 0 <= treffer [0] + i < matrixgr:
if getFeld(belegFeld, treffer [0] + i, treffer [1]) == gr: if getFeld(belegFeld, treffer [0] + i, treffer [1]) == gr:
e = 1 e = 1
while getFeld (belegFeld, treffer [0] + e*i, treffer [1]) == gr: while 0<= treffer [0] + e*i < matrixgr and getFeld (belegFeld, treffer [0] + e*i, treffer [1]) == gr:
schiff += [[treffer[0]+e*i, treffer [1]]] schiff += [[treffer[0]+e*i, treffer [1]]]
e += 1 e += 1
@ -204,7 +211,7 @@ def schiffVersenkt (spielerFeld, belegFeld, treffer):
if 0 <= treffer [1] + i < matrixgr: if 0 <= treffer [1] + i < matrixgr:
if getFeld(belegFeld, treffer [0], treffer [1] + i) == gr: if getFeld(belegFeld, treffer [0], treffer [1] + i) == gr:
e = 1 e = 1
while getFeld (belegFeld, treffer [0], treffer [1] + e*i) == gr: while 0<= treffer [1] + e*i < matrixgr and getFeld (belegFeld, treffer [0], treffer [1] + e*i) == gr:
schiff += [[treffer[0], treffer [1]+e*i]] schiff += [[treffer[0], treffer [1]+e*i]]
e += 1 e += 1
@ -248,7 +255,7 @@ def feldWahl (spielerFeld, belegSpFeld):
if wert == 1 or wert == 3: if wert == 1 or wert == 3:
print ("Dieses Feld wurde schon abgeschossen! Bitte ein anderes wählen!") print ("Dieses Feld wurde schon abgeschossen! Bitte ein anderes wählen!")
feldWahl (spielerFeld) feldWahl (spielerFeld, belegSpFeld)
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
@ -270,8 +277,7 @@ def feldWahl (spielerFeld, belegSpFeld):
print ("["+chr(feld[0]+65)+str(feld[1]+1)+"]","Leider kein Treffer! Der Bot zieht nun...") print ("["+chr(feld[0]+65)+str(feld[1]+1)+"]","Leider kein Treffer! Der Bot zieht nun...")
def Initialisiere (): # Erstellt die beiden Felder def Initialisiere (): # Erstellt die beiden Felder
global gegnerFeld, eigenFeld global gegnerFeld, eigenFeld, belegEigFeld, belegGegFeld
global gegnerFeld, eigenFeld
gegnerFeld= makeFeld () gegnerFeld= makeFeld ()
belegGegFeld = makeFeld () belegGegFeld = makeFeld ()
fuellFeld (gegnerFeld, belegGegFeld) fuellFeld (gegnerFeld, belegGegFeld)
@ -334,7 +340,7 @@ def botwahl (spielerFeld, belegSpFeld, diff):
printFelder () printFelder ()
print ("["+chr(feld[0]+65)+str(feld[1]+1)+"]","Der Bot hat getroffen! Er darf noch ein Feld wählen!") print ("["+chr(feld[0]+65)+str(feld[1]+1)+"]","Der Bot hat getroffen! Er darf noch ein Feld wählen!")
time.sleep (1) time.sleep (1)
botwahl (spielerFeld, diff/10.25) botwahl (spielerFeld, belegSpFeld, diff/10.25)
else: else:
print ("["+chr(feld[0]+65)+str(feld[1]+1)+"]","Der Bot hat nicht getroffen! Du bist nun dran!") print ("["+chr(feld[0]+65)+str(feld[1]+1)+"]","Der Bot hat nicht getroffen! Du bist nun dran!")
@ -358,7 +364,7 @@ def start ():
print ("Das Spiel hat", int((time.time()-startzeit)//60), "Minuten", int(((time.time()-startzeit)%60)//1), "Sekunden gedauert.") print ("Das Spiel hat", int((time.time()-startzeit)//60), "Minuten", int(((time.time()-startzeit)%60)//1), "Sekunden gedauert.")
w = str (input ("Noch eine Runde? [J: Ja/Irgendwas: Nein] ")) w = str (input ("Noch eine Runde? [J: Ja/Irgendwas: Nein] "))
if w == 'J': if w.lower() == 'j':
start () start ()
start () start ()