我试图在Python 3.4中创建我自己的Go Fish游戏(现在有两个玩家)。我的比赛有两个主要阶段。第一个是确定谁将首先采取行动。这是通过调用我的FirstStage类(file2.py)来完成的,这个类基本上是手游Rock Paper Scissors - 我反对机器人。获得胜利者后,FirstStage会返回一个表示此阶段获胜者的整数(0或1)。然后SecondStage类(file3.py)被称为传递self.winner作为参数。游戏脚本被分割成许多文件,因为我使用了许多类。这是基本的想法,但由于某种原因FistStage没有返回任何东西。有人可以帮助我吗?在这里我的代码:Tkinter - 从一个班级回来,打电话给一个新的
file1.py
from file2 import *
from file3 import *
import tkinter as tk
class start_gui(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self,parent, *args, **kwargs)
# create canvas
self.canvas = tk.Canvas(parent, width=800, height=800, background="green")
self.canvas.pack()
# here we call FirstStage class to determine who starts first
self.c = FirstStage(parent)
self.winner = self.c.getwinner()
#here we call SecondStage call to start the real game
self.d = SecondStage(self.winner)
if __name__ == "__main__":
# create main window
root = tk.Tk()
root.geometry("800x800")
start_gui(root)
root.mainloop()
file2.py
import tkinter as tk
from functools import partial
from PIL import ImageTk
from PIL import Image
class FirstStage(tk.Frame):
def __init__(self, canv):
tk.Frame.__init__(self, parent, background="black", padx=10, pady=10)
self.winner = 0
#here new frame is created
#buttons and images are place in a grid
self.rock_paper_scissors()
def rock_papper_scissors(self):
#here goes some code
#player against API
#undefine number of times until there is a winner
def close(self, w):
self.grid_forget()
self.destroy()
# here buttons, images and frame are destroy
# save winner
self.winner = w
def getwinner(self):
#return int - 0 for player and 1 for robot(opponent)
return self.winner
file3.py
class SecondStage:
def __init__(self, winner)
#here goes some scripts
“游戏脚本被分割成许多文件,因为我使用了很多类。”咦? Python不是Java,将多个类放入文件中绝对没有问题。 – jasonharper