演習課題「マップに道を追加する」
右のコードは、森と城と町で構成されている地図を表すlandmapリストが定義してあります。
landmapリストに道を作成した後に、landmapリストを出力してください。
道は「+」で表し、landmapリストの行が9で割り切れるか、列が9で割り切れるところに作成します。
ただし、城と町があるところには、道を作成しないようにします。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
町+++++++++++++++++町
+森森森森森森森森+森森森森森森森森+
+森森森森森森森森城森森森森森森森森+
+森森森森森森森森+森森森森森森森森+
+森森森森森森森森+森森森森森森森森+
+森森森森森森森森+森森森森森森森森+
+森森森森森森森森+森森森森森森森森+
+森森森森森森森森+森森森森森森森森+
+森森森森森森森森+森森森森森森森森+
町+++++++++++++++++町
#10:2次元リストのマップに道を追加する
ここでは、前回に引き続いて、RPGの簡単なマップを作って、城と町の間を道で接続します。
ANDは、両方の条件が成立した場合、全体の条件が成立します。
全てが不成立、どれか1つでも不成立の場合には、不成立となります。
Pythonでは、「and」と記述します。
条件A | 条件B | 全体 |
---|---|---|
不成立 | 不成立 | 不成立 |
成立 | 不成立 | 不成立 |
不成立 | 成立 | 不成立 |
成立 | 成立 | 成立 |
ORは、どれか1つの条件が成立した場合、全体の条件が成立します。
全てが不成立の場合には、不成立となります。
Pythonでは、「or」と記述します。
条件A | 条件B | 全体 |
---|---|---|
不成立 | 不成立 | 不成立 |
成立 | 不成立 | 成立 |
不成立 | 成立 | 成立 |
成立 | 成立 | 成立 |
landmap = [["森" for i in range(20)] for j in range(10)]
for line in landmap:
for area in line:
print(area, end="")
print()
道は、行が2で割り切れるか、列が3で割り切れる場合で、そこが「森」の時に配置する。landmap = [["森" for i in range(20)] for j in range(10)]
landmap[0][0] = "城"
landmap[0][19] = "町"
landmap[9][19] = "町"
for i,line in enumerate(landmap):
print(str(i) + ":", end="")
for j,area in enumerate(line):
if (i % 2 == 0 or j % 3 == 0) and area == "森":
print("+", end="")
else:
print(area, end="")
print()
# coding: utf-8
# Your code here!
# 2次元リストで地図を表示する
landmap = [["森" for i in range(20)] for j in range(10)]
landmap[0][0] = "城"
landmap[0][19] = "町"
landmap[9][19] = "町"
for i,line in enumerate(landmap):
print(str(i) + ":", end="")
for j,area in enumerate(line):
if (i % 2 == 0 or j % 3 == 0) and area == "森":
print("+", end="")
else:
print(area, end="")
print()
for文 - 繰り返し - Python入門
https://www.pythonweb.jp/tutorial/for/index3.html
繰返し処理 - for, while 等 - Python 入門
http://python.keicode.com/lang/control-flow-loop-for-while.php
【Python入門】for文の使い方総まとめ | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
https://www.sejuku.net/blog/24766