Kezdőoldal » Számítástechnika » Programozás » Miért nem működik a Python...

Miért nem működik a Python programom?

Figyelt kérdés

Röviden: a program grafikusan megjelenit két kort (azaz ket bolygót), ezeket gombbal lehet mozgatni. Eddig oké. De amint beteszem az első függvenybe, hogy számoljon távolságot minden mozdulasnal, megakad és hibaként a következő függvenydefiniciót dobja, amivel addig nem volt gond, és én a kapcsolatot se látom.


A program:


from Tkinter import *

from math import sqrt


def mozog (ab,cd):

- global x1,y1,x2,y2,bolygo,mf,mm

- if bolygo == 0:

-- x1,y1=x1+ab,y1+cd

-- can1.coords(oval1,x1,y1,x1+50,y1+50)

- elif bolygo == 1:

-- x2,y2=x2+ab,y2+cd

-- can1.coords(oval2,x2,y2,x2+30,y2+30)


#HA EZT BEIROM, A KOVETKEZO FUGGVENYDEFINICIORA AZT IRJA, HOGY INVALID. NEM ÉRTEM....

- t = sqrt((x2-x1)**2 + (y2-y1)**2)

- tav.configure(text="A ket bolygo tavolsaga: " + str(t)


#EZZEL A GRAVITACIOS EROT SZAMOLNAM, DE EZ SEM JÓ, SZINTEN INVALID

# g = 6,67e-11 * (mf*mm/t**2)

# grav.configure(text="A gravitacios ero: " +str(g) + " Newton"


def foldvalaszto():

- global bolygo

- bolygo = 0

def marsvalaszto():

- global bolygo

- bolygo = 1


def mozdit_bal():

- mozog(-10,0)

def mozdit_jobb():

- mozog(10,0)

def mozdit_fel():

- mozog(0,-10)

def mozdit_le():

- mozog(0,10)


#--------Foprogram-------

x1,y1=50,150 #koordinatak Fold

x2,y2 = 260,180 #koordinatak Mars

bolygo = 0 #0=Fold, 1=Mars

mf,mm=5.972e24,6.39e23 #bolygok tomege (kg)


window=Tk()

window.title("Bolygos jatek Tkinter-rel")


Label(window, text='Fold tomege: ' +str(mf) + ' kg').grid(sticky=W)

Label(window, text='Mars tomege: ' +str(mm) + ' kg').grid(sticky=W)

can1=Canvas(window,height=300,width=500,bg='dark grey')

oval1=can1.create_oval(x1,y1,x1+50,y1+50,width=2,fill='blue')

oval2=can1.create_oval(x2,y2,x2+30,y2+30,width=2,fill='orange')

can1.grid(row=3,column=0,rowspan=5,padx=10,pady=10)


Button(window, text='Kilep',command=window.quit).grid(row=1,column=1,columnspan=2)

Button(window, text='Fold',command=foldvalaszto).grid(row=3,column=1)

Button(window, text='Mars',command=marsvalaszto).grid(row=3,column=2)


Button(window, text='Balra',command=mozdit_bal).grid(row=4,column=1,columnspan=2)

Button(window, text='Jobbra',command=mozdit_jobb).grid(row=5,column=1,columnspan=2)

Button(window, text='Fel',command=mozdit_fel).grid(row=6,column=1,columnspan=2)

Button(window, text='Le',command=mozdit_le).grid(row=7,column=1,columnspan=2)


tav = Label(window)

tav.grid(row=8)

grav = Label(window)

grav.grid(row=9)


window.mainloop()



#Python #invalid syntax
2019. febr. 23. 11:40
 1/4 Ozmium42 ***** válasza:

- tav.configure(text="A ket bolygo tavolsaga: " + str(t)


Hiányzik a végéről egy zárójel.


grav.configure(text="A gravitacios ero: " +str(g) + " Newton"


Szintén hiányzik a végéről egy zárójel.

2019. febr. 23. 20:50
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

És tényleg...

ez most gáz, hogy ezt nem vettem észre...


nagyon köszönöm! ;)

2019. febr. 23. 21:54
 3/4 tabaki ***** válasza:

Helyes kis program, de legalább két dolgot igazíts benne, egyik se jelenthet nehézséget:

[link]

1. Ha a két bolygó távolsága 0, a program hibára fut -- bár igaz, ha ez neadj'isten a valóságban is bekövetkezne, egy kis nullával osztás legyen a legnagyobb bajunk...

2. A kirajzolás megoldása kissé furcsa, az tűnik logikusabbnak, hogy a köröknek a középpontja essen a megadott koordinátákra, ne pedig a befoglaló négyzetük (vagy mi) bal felső sarka.

Ezenkívül, noha egyáltalán nem hiba, de érdekes a koordináták változóneveinek választása. Ha a két bolygót a 0 és 1 érték jelöli, szerintem tisztább ügy lenne x0,y0 és x1,y1 változók használata a mostani x1,y1 és x2,y2 helyett.

2019. márc. 4. 18:51
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

Koszonom, segitettel!!!!

még nagyon tanulo fazisban vagyok! ;)

2019. márc. 9. 17:25

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!