質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

221閲覧

python3 ボードゲーム ブロックスの配置

Untitled_Sample

総合スコア192

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2017/11/21 17:26

20*20のフィールドにブロックを配置して行きたいのですが、
重ならない様に配置するのは、どうすれば良いでしょうか?

一度使ったブロックは消えます。

4人対戦です。

python

1 2Blokus_Basis=[ 3[[1,0,0,0,0], 4 [0,0,0,0,0], 5 [0,0,0,0,0], 6 [0,0,0,0,0], 7 [0,0,0,0,0]], 8 9[[1,1,0,0,0], 10 [0,0,0,0,0], 11 [0,0,0,0,0], 12 [0,0,0,0,0], 13 [0,0,0,0,0]], 14 15[[1,1,1,0,0], 16 [0,0,0,0,0], 17 [0,0,0,0,0], 18 [0,0,0,0,0], 19 [0,0,0,0,0]], 20 21[[1,1,0,0,0], 22 [1,0,0,0,0], 23 [0,0,0,0,0], 24 [0,0,0,0,0], 25 [0,0,0,0,0]], 26 27[[1,1,1,1,0], 28 [0,0,0,0,0], 29 [0,0,0,0,0], 30 [0,0,0,0,0], 31 [0,0,0,0,0]], 32 33[[1,1,1,0,0], 34 [1,0,0,0,0], 35 [0,0,0,0,0], 36 [0,0,0,0,0], 37 [0,0,0,0,0]], 38 39[[1,1,0,0,0], 40 [1,1,0,0,0], 41 [0,0,0,0,0], 42 [0,0,0,0,0], 43 [0,0,0,0,0]], 44 45[[1,1,0,0,0], 46 [0,1,1,0,0], 47 [0,0,0,0,0], 48 [0,0,0,0,0], 49 [0,0,0,0,0]], 50 51[[1,1,1,0,0], 52 [0,1,0,0,0], 53 [0,0,0,0,0], 54 [0,0,0,0,0], 55 [0,0,0,0,0]], 56 57[[1,1,1,1,1], 58 [0,0,0,0,0], 59 [0,0,0,0,0], 60 [0,0,0,0,0], 61 [0,0,0,0,0]], 62 63[[0,1,1,0,0], 64 [1,1,0,0,0], 65 [1,0,0,0,0], 66 [0,0,0,0,0], 67 [0,0,0,0,0]], 68 69[[1,1,1,0,0], 70 [1,0,1,0,0], 71 [0,0,0,0,0], 72 [0,0,0,0,0], 73 [0,0,0,0,0]], 74 75[[1,0,0,0,0], 76 [1,1,1,0,0], 77 [1,0,0,0,0], 78 [0,0,0,0,0], 79 [0,0,0,0,0]], 80 81[[1,0,0,0,0], 82 [1,1,1,1,0], 83 [0,0,0,0,0], 84 [0,0,0,0,0], 85 [0,0,0,0,0]], 86 87[[1,1,1,0,0], 88 [1,0,0,0,0], 89 [1,0,0,0,0], 90 [0,0,0,0,0], 91 [0,0,0,0,0]], 92 93[[1,1,0,0,0], 94 [1,1,0,0,0], 95 [1,0,0,0,0], 96 [0,0,0,0,0], 97 [0,0,0,0,0]], 98 99[[0,1,0,0,0], 100 [1,1,1,0,0], 101 [0,1,0,0,0], 102 [0,0,0,0,0], 103 [0,0,0,0,0]], 104 105[[0,1,0,0,0], 106 [1,1,0,0,0], 107 [0,1,1,0,0], 108 [0,0,0,0,0], 109 [0,0,0,0,0]], 110 111[[0,1,1,0,0], 112 [0,1,0,0,0], 113 [1,1,0,0,0], 114 [0,0,0,0,0], 115 [0,0,0,0,0]], 116 117[[1,1,1,0,0], 118 [0,0,1,1,0], 119 [0,0,0,0,0], 120 [0,0,0,0,0], 121 [0,0,0,0,0]], 122 123[[1,1,1,1,0], 124 [0,1,0,0,0], 125 [0,0,0,0,0], 126 [0,0,0,0,0], 127 [0,0,0,0,0]] 128] 129 130 131 132 133import numpy as np 134from pprint import pprint 135 136# 回転済みのブロックをBlokus配列に入れる 137Blokus=[] 138for n in range(21): 139 Blokus.append(np.rot90(Blokus_Basis[n],k=-0)) 140 Blokus.append(np.rot90(Blokus_Basis[n],k=-1)) 141 Blokus.append(np.rot90(Blokus_Basis[n],k=-2)) 142 Blokus.append(np.rot90(Blokus_Basis[n],k=-3)) 143 144 145 146 147 148 149 150 151 152# 確認 153for m in Blokus: 154 pass 155 print(m) 156 157 158 159""" 160# 取り敢えず確認 161for i2, e2 in enumerate(Blokus): 162 print (i2, e2) 163""" 164 165 166 167 168#フィールド IDが違う 169data=[[0 for i7 in range(20)] for j7 in range(20)] 170 171 172#print(data) 173""" 174[ 175[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 176[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 177[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 178[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 179[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 180[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 181[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 182[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 183[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 184[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 185[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 186[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 187[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 188[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 189[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 190[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 191[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 192[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 193[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 194[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 195""" 196 197 198R=[] 199B=[] 200Y=[] 201G=[] 202 203 204 205 206""" 207赤 Red 208青 Blue 209黄 Yellow 210緑 Green 211""" 212 213for i in Blokus: 214 R.append(str(i).replace('1', 'R')) 215 B.append(str(i).replace('1', 'B')) 216 Y.append(str(i).replace('1', 'Y')) 217 G.append(str(i).replace('1', 'G'))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2017/11/22 01:26

4人対戦との事ですから、ブロックを配置するのは人間がですよね? だとすれば、プログラムに出来るのは配置しようとしているブロックが、既に配置されたブロックと重なっていたら「配置できません」などとメッセージを出すぐらいかと思います。 何が判らないのでしょうか?
Untitled_Sample

2017/11/22 06:43

cpuが4人と言う意味で、重複しないランダム配置のコードと、そもそもどの様にブロックを埋め込めば良いのか分かってません。
guest

回答1

0

自己解決

重複を確認する事で解決しました。

投稿2019/04/28 02:04

Untitled_Sample

総合スコア192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問