質問編集履歴

1

ソースコード記述部分を追加しました

2020/04/24 02:52

投稿

sho8065
sho8065

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,19 +4,85 @@
4
4
 
5
5
  ```python
6
6
 
7
+ #終了するか尋ねる 条件によってsave_data関数も実行する
8
+
7
9
  def finish_check(coin_sum,savedata):
8
10
 
9
- 省略
11
+ if coin_sum == 0:
10
12
 
11
- save_data(savedata)
13
+ finish_flag = True
12
14
 
13
- 省略
15
+ else:
16
+
17
+ first_check = False
18
+
19
+ print("ゲームを終了しますか? 終了>>1 続行>>0")
20
+
21
+ while not first_check:
22
+
23
+ answer = input()
24
+
25
+ if answer == '1':
26
+
27
+ finish_flag = True
28
+
29
+ first_check = True
30
+
31
+ #main()を用いて未定義の関数を呼び出す
32
+
33
+ save_data(savedata)
34
+
35
+ elif answer == '0':
36
+
37
+ finish_flag = False
38
+
39
+ first_check = True
40
+
41
+ else:
42
+
43
+ print("Input Error")
44
+
45
+ return finish_flag
14
46
 
15
47
 
16
48
 
49
+ #セーブするかを尋ねて、セーブする場合は結果をcsvに出力
50
+
17
51
  def save_data(savedata):
18
52
 
53
+ while True:
54
+
55
+ print("セーブしますか? Yes >> 1 , No >> 0")
56
+
57
+ answer = int(input())
58
+
59
+ if answer == 1:
60
+
61
+ print("セーブするデータ番号を入力 >> ")
62
+
63
+ save_file = "Save" + input() + ".csv"
64
+
65
+ with open(save_file,"w") as file:
66
+
67
+ writer = csv.writer(file)
68
+
69
+ writer.writerows(savedata)
70
+
71
+ print("セーブ完了しました")
72
+
73
+ print("ゲームを終了します")
74
+
19
- 省略
75
+ break
76
+
77
+ elif answer == 0:
78
+
79
+ print("セーブせずに終了します")
80
+
81
+ break
82
+
83
+ else:
84
+
85
+ print("Input Error")
20
86
 
21
87
  ```
22
88
 
@@ -39,3 +105,9 @@
39
105
  https://techacademy.jp/magazine/19429
40
106
 
41
107
  ↑こちらのサイトのようにmain()関数を使ってみましたがうまくいきませんでした。
108
+
109
+
110
+
111
+ save_data()関数が定義される前に、
112
+
113
+ finish_check()関数内でsave_data()関数を呼び出しているのでエラーが起きるという認識で間違いないでしょうか。