良い一日。 ほぼすべての初心者プログラマーが彼の最初のゲームの作成に取り組んでいます。
怠 year
な骨の折れる訓練の半年後、私はサッパーを書くことにしました。 Pythonは、tkinterインターフェイスを追加するためのモジュールである記述言語として選択されました。これは、Pythonでの経験がすでにあったためです。 この投稿は初心者のコーダーにとっては便利ですが、すでにすべてを知っている場合は、コメントでコードを改善するためのヒントを書くことができます。
始めましょう。 最初のステップは、セルが何であるかを決定することでした。 最も有益なソリューションは、フィールドクラスを作成することです。
class pole(object):
次に、ゲームをカスタマイズするためのインターフェースを作成する必要があります。
settings = Tk()
その結果、次のようなウィンドウが表示されます。
今、あなたは爆弾カウンター機能を登録する必要があります
def bombcounter(): global bombs if mineText.get('1.0', END) == '\n':
次に、ゲームの機能を記述して、主要部分に進みます。
def game(high,lenght):
作成する必要がある関数は3つまであります。 .setAround()から始めましょう:
def setAround(self): if self.row == 0: self.around.append([self.row+1,self.column]) if self.column == 0: self.around.append([self.row,self.column+1]) self.around.append([self.row+1,self.column+1]) elif self.column == len(buttons[self.row])-1: self.around.append([self.row,self.column-1]) self.around.append([self.row+1,self.column-1]) else: self.around.append([self.row,self.column-1]) self.around.append([self.row,self.column+1]) self.around.append([self.row+1,self.column+1]) self.around.append([self.row+1,self.column-1]) elif self.row == len(buttons)-1: self.around.append([self.row-1,self.column]) if self.column == 0: self.around.append([self.row,self.column+1]) self.around.append([self.row-1,self.column+1]) elif self.column == len(buttons[self.row])-1: self.around.append([self.row,self.column-1]) self.around.append([self.row-1,self.column-1]) else: self.around.append([self.row,self.column-1]) self.around.append([self.row,self.column+1]) self.around.append([self.row-1,self.column+1]) self.around.append([self.row-1,self.column-1]) else: self.around.append([self.row-1,self.column]) self.around.append([self.row+1,self.column]) if self.column == 0: self.around.append([self.row,self.column+1]) self.around.append([self.row+1,self.column+1]) self.around.append([self.row-1,self.column+1]) elif self.column == len(buttons[self.row])-1: self.around.append([self.row,self.column-1]) self.around.append([self.row+1,self.column-1]) self.around.append([self.row-1,self.column-1]) else: self.around.append([self.row,self.column-1]) self.around.append([self.row,self.column+1]) self.around.append([self.row+1,self.column+1]) self.around.append([self.row+1,self.column-1]) self.around.append([self.row-1,self.column+1]) self.around.append([self.row-1,self.column-1])
ここで発生するのは、self.around配列にデータを入力することだけです。 さまざまなケースを検討し、出力で正しい答えを得ます。 これを簡単にするオプションがある場合、それらを考慮します。
ビューを書く()
def view(self,event): if mines == []:
だから。 これで、関数を記述しました。セルを開き、配列を埋め、ゲームを開始し、競技場のサイズと地雷の数に関する値を取得します。 ただし、地雷を設定する機能はまだありません。 修正されました:
def seter(q, around,row,column):
そして、2番目に重要な関数:setValue()
def setValue(self,value): self.value = value
これで主要部分は終了です。 ゲームはすぐに動作しますが、ボックスをチェックして勝ち/負けを決定することはできません。 ここではすべてが簡単です。 チェックボックス:
def setFlag(self,event): if self.flag == 0 and not self.viewed:
lose()およびwiner()関数は単純であり、説明は不要です。 必要に応じて、コメントに書き込みます。
最終ビュー:
コメントにあなたの質問、提案、批判を書いてください。私は答え、議論し、考えようとします。