Bu işlem için karakter dizisi yerine iç içe liste yapısını kullanmanız daha doğru olacaktır. İç içe liste örneğinde her satır için bir liste açarak ve bu satır listelerinide ayrı bir liste içine alarak kolonlara da erişebilirsiniz. Örneğin 3x3 bir tahta örneği için;
[[x, o, x],
[x, o, x],
[o, x. o]]
Gibi bir liste yapısı kullanılabilir. Örneğin 2.satır 3.kolondaki harfe liste[2][3] şeklinde erişebilirsiniz.
sema = [["1","0","4","7","6","8"],
["0","5","4","4","5","5"],
["2","1","4","4","4","6"],
["4","1","3","7","4","4"],
["1","1","1","7","4","5"]]
def icerikEsitKontrol(rakam,arananDeger):
silinecekTablo ={}
disDonguArti =0
for icList in rakam:
icDonguArti = 0
silinecekTablo[disDonguArti] =[]
for i in icList:
if i == arananDeger:
#Aynı Sırada bir Sonrakinde ile eşit mi (?) Kontrolü
if len(rakam[disDonguArti])-1 > icDonguArti:
if (rakam[disDonguArti][icDonguArti+1] == arananDeger):
if silinecekTablo[disDonguArti].count(icDonguArti) ==0:
silinecekTablo[disDonguArti].append(icDonguArti)
# Aynı Sırada bir Öncedinde ki ile eşit mi (?) KontrolÜ
if (icDonguArti>0):
if(rakam[disDonguArti][icDonguArti-1]==arananDeger):
if silinecekTablo[disDonguArti].count(icDonguArti) ==0:
silinecekTablo[disDonguArti].append(icDonguArti)
# Bir altindaki ile eşit mi (?) Kontrolü
if(len(rakam)-1>disDonguArti):
if not (len(rakam[disDonguArti+1])-1 < icDonguArti):
if rakam[disDonguArti+1][icDonguArti]==arananDeger:
if silinecekTablo[disDonguArti].count(icDonguArti) ==0:
silinecekTablo[disDonguArti].append(icDonguArti)
# Bir yukarısındaki ile eşit mi (?) Kontrolü
if(len(rakam)-1==disDonguArti):
if not (len(rakam[disDonguArti-1])-1 < icDonguArti):
if rakam[disDonguArti-1][icDonguArti]==arananDeger:
if silinecekTablo[disDonguArti].count(icDonguArti) ==0:
silinecekTablo[disDonguArti].append(icDonguArti)
icDonguArti +=1
disDonguArti += 1
return silinecekTablo
def rakamlar(gelen):
print("="*11)
for i in gelen:
for v in i:
print(v , end=" ")
print()
print("="*11)
while True:
rakamlar(sema)
print("Çıkış için : (Q) -(q)")
girdi = input("Rakam Giriniz :")
if girdi == "Q" or girdi == "q":
break
silinecekVeriler = icerikEsitKontrol(sema, girdi)
for icdizi in silinecekVeriler:
for i in reversed(silinecekVeriler[icdizi]):
del sema[icdizi][i]