for
ループ内のif
ステートメントをすべて短縮するにはどうすればよいですか?私は大学のプロジェクトのためにこれを開発しています。私は方法を考えることができません。多くのif文を短くするにはどうすればよいですか? (Python 3.x)
基本的には、ボード上の特定の場所が岩石と等しくない場合は、プラントとして設定する必要があります。場所は植物の周りの円です。例:
N N N
N P N
N N N
if RainFall == 2:
print("This summer has been a perfect summer, the plants have multiplied.")
for Row in range(FIELDLENGTH):
for Column in range(FIELDWIDTH):
if Field[Row][Column] == PLANT:
if Field[Row + 1][Column] != ROCKS:
Field[Row + 1][Column] = GOODSUMMER
if Field[Row - 1][Column] != ROCKS:
Field[Row - 1][Column] = GOODSUMMER
if Field[Row + 1][Column + 1] != ROCKS:
Field[Row + 1][Column + 1] = GOODSUMMER
if Field[Row - 1][Column - 1] != ROCKS:
Field[Row - 1][Column - 1] = GOODSUMMER
if Field[Row][Column + 1] != ROCKS:
Field[Row][Column + 1] = GOODSUMMER
if Field[Row][Column - 1] != ROCKS:
Field[Row][Column - 1] = GOODSUMMER
if Field[Row + 1][Column + 1] != ROCKS:
Field[Row + 1][Column - 1] = GOODSUMMER
if Field[Row - 1][Column + 1] != ROCKS:
Field[Row - 1][Column + 1] = GOODSUMMER
break
たくさんの方法。しかし、それを後で開発するのに役立つ方法で一般化したいのです。 1つのアイデアは、正方形を評価し、その周囲のすべての正方形に対して一度呼び出す方法を持つことです。このようなものは、オブジェクト指向プログラミングを求めています。 –
私はPythonの人ではありませんが、OOPではそのような状況のためのコマンドパターンがあります。掘り起こした後:http://stackoverflow.com/a/1494532/5058677 – Rumid