質問編集履歴

3

説明の追加

2019/09/05 19:59

投稿

gottadiveintopy
gottadiveintopy

スコア736

test CHANGED
File without changes
test CHANGED
@@ -317,3 +317,11 @@
317
317
  羊: 1枚
318
318
 
319
319
  ```
320
+
321
+
322
+
323
+ ### 追記2
324
+
325
+
326
+
327
+ 説明が不十分な気がするので追記します。私が作ろうとしているのは対戦型のcard gameで、あらかじめ各playerがデッキを組んでから対戦します。私が使っている`所持カード`という言葉はデッキを組む際の元となる物であって、対戦中に変動することはありません。ゲーム内の店でカードを買うなどした時に初めて変動する類の物です。

2

新しいコードを追記

2019/09/05 19:59

投稿

gottadiveintopy
gottadiveintopy

スコア736

test CHANGED
File without changes
test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
 
78
78
 
79
- ```text
79
+ ```
80
80
 
81
81
  # 標準出力
82
82
 
@@ -215,3 +215,105 @@
215
215
  - Python: 3.7.1
216
216
 
217
217
  - OS: LinuxMint 18.2 (Ubuntu 16.04 LTS派生)
218
+
219
+
220
+
221
+ ### 追記
222
+
223
+
224
+
225
+ cardの`PRIMARY KEY`を序数にする事で一つ目のコードの`'tiger 0, wolf 2, sheep 1'`は`021`に置き換える事ができました。こちらの方が一つ目の物より優れていると思うので追記します。
226
+
227
+
228
+
229
+ ```python
230
+
231
+ import sqlite3
232
+
233
+ from textwrap import dedent as dd
234
+
235
+ from contextlib import closing
236
+
237
+
238
+
239
+
240
+
241
+ with closing(sqlite3.connect(':memory:')) as conn:
242
+
243
+ cur = conn.cursor()
244
+
245
+ cur.executescript(dd('''
246
+
247
+ CREATE TABLE card (
248
+
249
+ id INTEGER,
250
+
251
+ name TEXT,
252
+
253
+ PRIMARY KEY (id)
254
+
255
+ );
256
+
257
+ CREATE TABLE user (
258
+
259
+ name TEXT,
260
+
261
+ cards_owned TEXT,
262
+
263
+ PRIMARY KEY (name)
264
+
265
+ );
266
+
267
+ INSERT INTO card (name) VALUES ('虎');
268
+
269
+ INSERT INTO card (name) VALUES ('狼');
270
+
271
+ INSERT INTO card (name) VALUES ('羊');
272
+
273
+ INSERT INTO user VALUES ('太郎', '021');
274
+
275
+ INSERT INTO user VALUES ('花子', '311');
276
+
277
+ '''))
278
+
279
+ for row in cur.execute('SELECT * FROM card'):
280
+
281
+ print(row)
282
+
283
+ for name, cards_owned in cur.execute('SELECT * FROM user'):
284
+
285
+ print(f"{name}の所持カード")
286
+
287
+ for id, name in conn.cursor().execute('SELECT * FROM card'):
288
+
289
+ print(f"{name}: {cards_owned[id - 1]}枚")
290
+
291
+ ```
292
+
293
+
294
+
295
+ ```
296
+
297
+ (1, '虎')
298
+
299
+ (2, '狼')
300
+
301
+ (3, '羊')
302
+
303
+ 太郎の所持カード
304
+
305
+ 虎: 0枚
306
+
307
+ 狼: 2枚
308
+
309
+ 羊: 1枚
310
+
311
+ 花子の所持カード
312
+
313
+ 虎: 3枚
314
+
315
+ 狼: 1枚
316
+
317
+ 羊: 1枚
318
+
319
+ ```

1

書式の改善

2019/09/05 16:55

投稿

gottadiveintopy
gottadiveintopy

スコア736

test CHANGED
File without changes
test CHANGED
@@ -204,7 +204,7 @@
204
204
 
205
205
 
206
206
 
207
- このような設計がそもそも良いのかどうかが分かりません。何かより良い方法を知っている方 教えていm(_ _)m。
207
+ このような設計がそもそも良いのかどうかが分かりません。何かより良い方法を知っている方 教えていたけたら嬉しですm(_ _)m。
208
208
 
209
209
 
210
210