Python üzerinde basit bir space invader oyunu yazmam gerek nasıl yapabilirim kaynak vs atar mısınız nasıl yapabileceğimi bilmiyorum. Oyun terminal içinde olacak bu yüzden kaynak bulamadım.
Bu tarzda bir oyun.
Python üzerinde basit bir space invader oyunu yazmam gerek nasıl yapabilirim kaynak vs atar mısınız nasıl yapabileceğimi bilmiyorum. Oyun terminal içinde olacak bu yüzden kaynak bulamadım.
Kaynak bulamaman normal. Python temelleri ile yapılabilecek bir oyun.
Frame şeklinde Action alıyorsun. Dizin şeklinde görünsün oyun.
dizi = [
["0","0","0","0"],
["0","0","0","0"],
[" "," "," "," "],
[" "," "," "," "],
[" "," "," "," "],
[" "," ","P"," "],
]
Her işlem yapıldığında dizi içerisinde yer değiştiriceksin. Mesela ateş ettim diyelim. P üstüne mermi koyacaksın. Mermi vurdu diyelim bakıcaksın bak mermi hedefin olduğu dizine mi geldi?
Not : Yapıcam hoşuma gitti. Atarım kodu buraya
Zihinsel Sorun kodu ektedir.(gerçekten berbat durumda kod düzenlemek isteyen düzenlesin ben yaparken gözüm kanadı yorgunluktan). Bazı hatalar mevcut kod içinde. Sağa basınca sola gidiyor falan onları ayarlarsınız
import os
os.system('cls')
def RightMove(dizi):
dizi = Bullet_Go(dizi)
y,x = Find_Item(dizi,'P')
if(y == 5 and x == 0):
WarningPr()
return dizi
else:
dizi[y][x] = " "
dizi[y][x-1] = "P"
return dizi
def LeftMove(dizi):
dizi = Bullet_Go(dizi)
y,x = Find_Item(dizi,'P')
if(y == 5 and x == 7):
WarningPr()
return dizi
else:
dizi[y][x] = " "
dizi[y][x+1] = "P"
return dizi
def Shoot(dizi):
dizi = Bullet_Go(dizi)
y,x = Find_Item(dizi,'P')
dizi[y-1][x] = "I"
return dizi
def Stand(dizi):
return Bullet_Go(dizi)
def Find_Item(dizi,Item_N):
y = -1
for list in dizi:
y = y + 1
x = -1
for z in list:
x = x +1
if z == Item_N:
return y,x
def Bullet_Go(dizi):
y = -1
for list in dizi:
y = y + 1
x = -1
for z in list:
x = x +1
if z == 'I':
if dizi[y-1][x] == '0':
dizi[y-1][x] = ' '
dizi[y][x] = ' '
elif dizi[0][x] == 'I':
dizi[y][x] = ' '
else:
dizi[y][x] = " "
dizi[y-1][x]= "I"
return dizi
def Statement(metin,dizi):
if metin == 'D':RightMove(dizi)
elif metin == 'A':LeftMove(dizi)
elif metin =='L':Shoot(dizi)
elif metin =='S':Stand(dizi)
else: print("Doğru basarmısın karşim")
def WarningPr():
print("\033[1;31;40m \n")
print("Sondasın")
print("\033[1;37;40m\n")
def Yazdır(dizi):
print("\033[1;32;40m\n")
print("-"*20)
for list in dizi :
metin =""
for x in list:
metin = metin+x
print(metin)
print("-"*20)
print("\033[1;37;40m\n")
def win(dizi):
y = -1
for list in dizi:
y = y + 1
x = -1
for z in list:
x = x +1
if z == '0':
return False
return True
dizi = [
["0","0","0","0","0","0","0","0"],
["0","0","0","0","0","0","0","0"],
[" "," "," "," "," "," "," "," "],
[" "," "," "," "," "," "," "," "],
[" "," "," "," "," "," "," "," "],
[" "," ","P"," "," "," "," "," "]]
while True:
Yazdır(dizi)
if win(dizi):
print("/"*10)
print("YOU WIN")
print("/"*10)
break
metin = input("\n"*2+"Sağa gitmek için 'D' \nSola gitmek için 'A' \nAteş etmek için L\n Hareketsiz kalmak için S tuşlayınız => ")
Statement(metin.upper(),dizi)
if(metin.upper() == "Q"):
break
iyi çalışmalar