質問編集履歴
3
アドバイスいただいたように書き直しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -191,7 +191,8 @@
|
|
191
191
|
}
|
192
192
|
};
|
193
193
|
```
|
194
|
+
```JavaScript
|
194
|
-
|
195
|
+
const WORD_LIST_COUNTRY = ["afghanistan", "argentina", "australia"];
|
195
196
|
const WORD_LIST_COUNTRY_JAPANESE = ["アフガニスタン", "アルゼンチン", "オーストラリア"];
|
196
197
|
let wordlist;
|
197
198
|
let wordlistJapanese;
|
2
アドバイス通り書き直しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,8 +8,10 @@
|
|
8
8
|
### 発生している問題・エラーメッセージ
|
9
9
|
### 該当のソースコード
|
10
10
|
```JavaScript
|
11
|
-
|
11
|
+
const WORD_LIST_KOTOWAZA = ["aaiebakouiu", "auhawakarenohajime", "abunaihashiwowataru"];
|
12
|
-
|
12
|
+
const WORD_LIST_KOTOWAZA_JAPANESE = ["ああ言えばこう言う", "会うは別れの初め", "危ない橋を渡る"];
|
13
|
+
let wordlist;
|
14
|
+
let wordlistJapanese;
|
13
15
|
var time_limit = 60;
|
14
16
|
var readytime = 3;
|
15
17
|
var score;
|
@@ -19,6 +21,8 @@
|
|
19
21
|
var word_char;
|
20
22
|
var random;
|
21
23
|
function ready1(){
|
24
|
+
wordlist = WORD_LIST_KOTOWAZA;
|
25
|
+
wordlistJapanese = WORD_LIST_KOTOWAZA_JAPANESE;
|
22
26
|
readytime = 3;
|
23
27
|
scoredis.innerHTML = "";
|
24
28
|
start_button.style.visibility = "hidden";
|
@@ -95,10 +99,12 @@
|
|
95
99
|
};
|
96
100
|
```
|
97
101
|
```JavaScript
|
98
|
-
|
102
|
+
const WORD_LIST_PREF = ["hokkaido",
|
99
103
|
"aomorikenn", "iwatekenn"];
|
100
|
-
|
104
|
+
const WORD_LIST_PREF_JAPANESE = ["北海道",
|
101
105
|
"青森県", "岩手県"];
|
106
|
+
let wordlist;
|
107
|
+
let wordlistJapanese;
|
102
108
|
var time_limit = 60;
|
103
109
|
var readytime = 3;
|
104
110
|
var score;
|
@@ -108,6 +114,8 @@
|
|
108
114
|
var word_char;
|
109
115
|
var random;
|
110
116
|
function ready3(){
|
117
|
+
wordlist = WORD_LIST_PREF;
|
118
|
+
wordlistJapanese = WORD_LIST_PREF_JAPANESE;
|
111
119
|
readytime = 3;
|
112
120
|
scoredis.innerHTML = "";
|
113
121
|
start_button.style.visibility = "hidden";
|
@@ -183,9 +191,10 @@
|
|
183
191
|
}
|
184
192
|
};
|
185
193
|
```
|
186
|
-
```JavaScript
|
187
|
-
|
194
|
+
`const WORD_LIST_COUNTRY = ["afghanistan", "argentina", "australia"];
|
188
|
-
|
195
|
+
const WORD_LIST_COUNTRY_JAPANESE = ["アフガニスタン", "アルゼンチン", "オーストラリア"];
|
196
|
+
let wordlist;
|
197
|
+
let wordlistJapanese;
|
189
198
|
var time_limit = 60;
|
190
199
|
var readytime = 3;
|
191
200
|
var score;
|
@@ -195,6 +204,8 @@
|
|
195
204
|
var word_char;
|
196
205
|
var random;
|
197
206
|
function ready2(){
|
207
|
+
wordlist = WORD_LIST_COUNTRY;
|
208
|
+
wordlistJapanese = WORD_LIST_COUNTRY_JAPANESE;
|
198
209
|
readytime = 3;
|
199
210
|
scoredis.innerHTML = "";
|
200
211
|
start_button.style.visibility = "hidden";
|
1
試したソースコードに変更しました。ご指摘ありがとうございます。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
[JavaScript]タイピングゲームの
|
1
|
+
[JavaScript]タイピングゲームのお題選択ボタンを作る
|
test
CHANGED
@@ -1,110 +1,15 @@
|
|
1
1
|
### 前提
|
2
|
-
|
3
|
-
JavaScript,HTML,CSSを使ってタイピングゲームを作っています
|
2
|
+
JavaScript,HTML,CSSを使ってタイピングゲームを作っています
|
4
|
-
今のままでは面白みがないため、お題選択ができるものにしたいです。
|
5
|
-
|
3
|
+
お題選択できるタイピングゲームにしたいです
|
6
|
-
|
4
|
+
文字数が多くなってしまうため、タイピング問題の量を減らしています
|
7
5
|
### 実現したいこと
|
8
|
-
|
6
|
+
ことわざ、都道府県、国のボタンを作る
|
9
|
-
|
7
|
+
選択されたお題でタイピングゲームが始まる
|
10
|
-
・お題選択ボタン→スタートボタンで3,2,1のカウントダウン→問題表示
|
11
|
-
|
12
|
-
|
13
8
|
### 発生している問題・エラーメッセージ
|
14
|
-
|
15
|
-
|
16
|
-
|
17
9
|
### 該当のソースコード
|
18
|
-
|
19
10
|
```JavaScript
|
20
|
-
var wordlist = ["aaiebakouiu", "auhawakarenohajime", "abunaihashiwowataru"
|
11
|
+
var wordlist = ["aaiebakouiu", "auhawakarenohajime", "abunaihashiwowataru"];
|
21
|
-
"ishinouenimosannen", "isogabamaware", "inumoarukebabouniataru",
|
22
|
-
"ujiyorisodachi", "usotukihadorobounohajimari", "undeinosa",
|
23
|
-
"ebidetaiwoturu", "ennkoutukiwotoru", "ennnoshitanochikaramochi",
|
24
|
-
"oninikanabou", "oninomenimonamida", "oyanokokorokoshirazu",
|
25
|
-
"kaerunokohakaeru", "gakumonnnioudounashi", "kawaiikonihatabiwosaseyo",
|
26
|
-
"kinouhahitonomikyouhawagami", "gyuujiwotoru", "gyofunori",
|
27
|
-
"kusaimononifutawosuru", "kusurimosugirebadokutonaru", "kumonokowochirasu",
|
28
|
-
"keigunnnoikkaku", "keitarigatakuteinarigatashi", "keganokoumyou",
|
29
|
-
"koukaisakinitatazu", "gojyuppohyappo", "korobanusakinotue",
|
30
|
-
"sakehahyakuyakunocyou", "sarumokikaraochiru", "sarumonohaowazu",
|
31
|
-
"shishinokootoshi", "shininnnikuchinashi", "shiranugahotoke",
|
32
|
-
"suigyonomajiwari", "suimoamaimokamiwaketa", "suzumenonamida",
|
33
|
-
"seitennnohekireki", "seniharahakaerarenu", "zennhaisoge",
|
34
|
-
"soukainoichizoku", "soukanoinu", "sojyounouo",
|
35
|
-
"daihasyouwokaneru", "tadayoritakaimonohanai", "tabihamichidure",
|
36
|
-
"chigyonowazawai", "chiwochidearau", "chirimotumorebayamatonaru",
|
37
|
-
"tukitosupponn", "tumenihiwotomosu", "turunohitokoe",
|
38
|
-
"deicyuunohachisu", "tekihahonnnoujiniari", "tennnitubasuru",
|
39
|
-
"toshiyorinohiyamizu", "tobutoriwootosu", "donngurinoseikurabe",
|
40
|
-
"naisodehafurenai", "nagaimononihamakarero", "namekujinishio",
|
41
|
-
"nikaikaramegusuri", "nogashitasakanahaookii", "nidoarukotohasanndoaru",
|
42
|
-
"nukanikugi", "nusuttonioisenn", "nuretedeawa",
|
43
|
-
"nekonikobann", "nekonotemokaritai", "nekowokaburu",
|
44
|
-
"noucyuunokiri", "nokorimononihafukugaaru", "norennniudeoshi",
|
45
|
-
"haisuinojinn", "hanayoridanngo", "haramominouchi",
|
46
|
-
"higenochiriwoharau", "hinonaitokoronikemurihatatanu", "hyakubunnhaikkennnishikazu",
|
47
|
-
"fuuzennnotomoshibi", "fuefukedomoodorazu", "butanishinnjyu",
|
48
|
-
"hesogachawowakasu", "hetanoyokozuki", "bennkeinonakidokoro",
|
49
|
-
"bouzunikukeryakesamadenikui", "hotoketukuttetamashiiirezu", "hotokenokaomosanndo",
|
50
|
-
"magonimoisyou", "mayugewoyomareru", "mayunihigatuku",
|
51
|
-
"mikaradetasabi", "mizutoabura", "misowotukeru",
|
52
|
-
"muikanosyoubu", "musumehitorinimukohachininn", "muneniichimotu",
|
53
|
-
"mekarahanahenukeru", "menihamehanihaha", "mehakuchihodonimonowoiu",
|
54
|
-
"moubosannsennnooshie", "mochihamochiya", "motonomokuami",
|
55
|
-
"yanaginiyukiorenashi", "yabukarabou", "yamiyonoteppou",
|
56
|
-
"yukitosumi", "yukinishirasagi", "yudanntaiteki",
|
57
|
-
"yokunimegakuramu", "yowarimenitatarime",
|
58
|
-
"rakuhakunotanekuharakunotane", "rakuyounoshikawotakamu",
|
59
|
-
"ryoujyounokunnshi", "ryoutenihana", "ryouyakuhakuchininigashi",
|
60
|
-
"ruihatomowoyobu",
|
61
|
-
"reiniyottereinogotoshi",
|
62
|
-
"roudann", "rouwoetesyokuwonozomu", "ronngoyominoronngoshirazu",
|
63
|
-
"watarinifune", "watarusekennnionihanai", "waraukadonihafukukitaru"];
|
64
|
-
var wordlistJapanese = ["ああ言えばこう言う", "会うは別れの初め", "危ない橋を渡る"
|
12
|
+
var wordlistJapanese = ["ああ言えばこう言う", "会うは別れの初め", "危ない橋を渡る"];
|
65
|
-
"石の上にも三年", "急がば回れ", "犬も歩けば棒に当たる",
|
66
|
-
"氏より育ち", "嘘つきは泥棒の始まり", "雲泥の差",
|
67
|
-
"蝦で鯛を釣る", "猿猴月を取る", "縁の下の力持ち",
|
68
|
-
"鬼に金棒", "鬼の目にも涙", "親の心子知らず",
|
69
|
-
"蛙の子は蛙", "学問に王道なし", "可愛い子には旅をさせよ",
|
70
|
-
"昨日は人の身今日は我が身", "牛耳を執る", "漁夫の利",
|
71
|
-
"臭いものに蓋をする", "薬も過ぎれば毒となる", "蜘蛛の子を散らす",
|
72
|
-
"鶏群の一鶴", "兄たり難く弟たり難し", "怪我の功名",
|
73
|
-
"後悔先に立たず", "五十歩百歩", "転ばぬ先の杖",
|
74
|
-
"酒は百薬の長", "猿も木から落ちる", "去る者は追わず",
|
75
|
-
"獅子の子落とし", "死人に口なし", "知らぬが仏",
|
76
|
-
"水魚の交わり", "酸いも甘いも嚙み分けた", "雀の涙",
|
77
|
-
"青天の霹靂", "背に腹はかえられぬ", "善は急げ",
|
78
|
-
"滄海の一粟", "喪家の狗", "俎上の魚",
|
79
|
-
"大は小を兼ねる", "ただより高い物はない", "旅は道連れ世は情け",
|
80
|
-
"稚魚の災い", "血を血で洗う", "塵も積もれば山となる",
|
81
|
-
"月と鼈", "爪に火を灯す", "鶴の一声",
|
82
|
-
"泥中の蓮", "敵は本能寺に在り", "天に唾する",
|
83
|
-
"年寄りの冷や水", "飛ぶ鳥を落とす", "どんぐりの背比べ",
|
84
|
-
"無い袖は振れない", "長い物には巻かれろ", "蛞蝓に塩",
|
85
|
-
"二階から目薬", "逃がした魚は大きい", "二度あることは三度ある",
|
86
|
-
"糠に釘", "盗人に追い釘", "濡れ手で粟",
|
87
|
-
"猫に小判", "猫の手も借りたい", "猫を被る",
|
88
|
-
"嚢中の錐", "残り物には福がある", "暖簾に腕押し",
|
89
|
-
"背水の陣", "花より団子", "腹も身の内",
|
90
|
-
"髭の塵を払う", "火のないところに煙は立たぬ", "百聞は一見に如かず",
|
91
|
-
"風前の灯", "笛吹けども踊らず", "豚に真珠",
|
92
|
-
"臍が茶を沸かす", "下手の横好き", "弁慶の泣き所",
|
93
|
-
"坊主憎けりゃ袈裟まで憎い", "仏作って魂入れず", "仏の顔も三度",
|
94
|
-
"馬子にも衣装", "眉毛を読まれる", "眉に火が付く",
|
95
|
-
"身から出た錆", "水と油", "味噌を付ける",
|
96
|
-
"六日の菖蒲", "娘一人に婿八人", "胸に一物",
|
97
|
-
"目から鼻へ抜ける", "目には目歯には歯", "目は口ほどに物を言う",
|
98
|
-
"孟母三遷の教え", "餅は餅屋", "元の木阿弥",
|
99
|
-
"柳に雪折れなし", "藪から棒", "闇夜の鉄砲",
|
100
|
-
"雪と墨", "雪に白鷺", "油断大敵",
|
101
|
-
"欲に目が眩む", "弱り目に祟り目",
|
102
|
-
"楽は苦の種苦は楽の種", "洛陽の紙価を高む",
|
103
|
-
"梁上の君子", "両手に花", "良薬は口に苦し",
|
104
|
-
"類は友を呼ぶ",
|
105
|
-
"例によって例の如し",
|
106
|
-
"壟断", "隴を得て蜀を望む", "論語読みの論語知らず",
|
107
|
-
"渡りに船", "渡る世間に鬼はない", "笑う門には福来たる"];
|
108
13
|
var time_limit = 60;
|
109
14
|
var readytime = 3;
|
110
15
|
var score;
|
@@ -189,6 +94,182 @@
|
|
189
94
|
}
|
190
95
|
};
|
191
96
|
```
|
97
|
+
```JavaScript
|
98
|
+
var wordlist = ["hokkaido",
|
99
|
+
"aomorikenn", "iwatekenn"];
|
100
|
+
var wordJapanese = ["北海道",
|
101
|
+
"青森県", "岩手県"];
|
102
|
+
var time_limit = 60;
|
103
|
+
var readytime = 3;
|
104
|
+
var score;
|
105
|
+
var correct;
|
106
|
+
var mistake;
|
107
|
+
var char_num = 0;
|
108
|
+
var word_char;
|
109
|
+
var random;
|
110
|
+
function ready3(){
|
111
|
+
readytime = 3;
|
112
|
+
scoredis.innerHTML = "";
|
113
|
+
start_button.style.visibility = "hidden";
|
114
|
+
var readytimer = setInterval(function(){
|
115
|
+
count.innerHTML = readytime;
|
116
|
+
readytime--;
|
117
|
+
if(readytime < 0){
|
118
|
+
clearInterval(readytimer);
|
119
|
+
gameStart();
|
120
|
+
}
|
121
|
+
},1000);
|
122
|
+
}
|
123
|
+
function gameStart(){
|
124
|
+
score = 0.0;
|
125
|
+
mistake = 0;
|
126
|
+
correct = 0;
|
127
|
+
wordDisplay();
|
128
|
+
var time_remaining = time_limit;
|
129
|
+
var gametimer = setInterval(function(){
|
130
|
+
count.innerHTML = "残り時間: " + time_remaining;
|
131
|
+
time_remaining--;
|
132
|
+
if(time_remaining <= 0){
|
133
|
+
clearInterval(gametimer);
|
134
|
+
finish();
|
135
|
+
}
|
136
|
+
},1000)
|
137
|
+
}
|
138
|
+
function wordDisplay(){
|
139
|
+
random = Math.floor(Math.random()*wordlist.length);
|
140
|
+
word.innerHTML = wordlist[random];
|
141
|
+
japanese.innerHTML = wordlistJapanese[random];
|
142
|
+
charInsort();
|
143
|
+
}
|
144
|
+
function charInsort(){
|
145
|
+
word_char = wordlist[random].charAt(char_num);
|
146
|
+
}
|
147
|
+
function finish(){
|
148
|
+
score = Math.floor(Math.pow(correct, 2)*Math.pow((correct/(correct + mistake)), 5));
|
149
|
+
scoredis.innerHTML = "スコア: " + score + "<hr>正しいタイプ数: " + correct + "<br>誤ったタイプ数: " + mistake +"<br>正答率: " + (correct/(correct + mistake) * 100).toFixed(1) + "%";
|
150
|
+
count.innerHTML = "";
|
151
|
+
word.innerHTML = "";
|
152
|
+
japanese.innerHTML = "";
|
153
|
+
start_button.style.visibility = "visible";
|
154
|
+
word_char = 0;
|
155
|
+
random = 0;
|
156
|
+
char_num = 0;
|
157
|
+
}
|
158
|
+
document.onkeydown = function(e){
|
159
|
+
if(e.keyCode == 189){
|
160
|
+
keyStr = "-";
|
161
|
+
}
|
162
|
+
else if(e.keyCode == 188){
|
163
|
+
keyStr = ",";
|
164
|
+
}
|
165
|
+
else{
|
166
|
+
var keyStr = String.fromCharCode(e.keyCode);
|
167
|
+
keyStr = keyStr.toLowerCase();
|
168
|
+
}
|
169
|
+
if(keyStr == word_char){
|
170
|
+
word.innerHTML = "<span style = 'color: red;'>" + wordlist[random].substr(0, char_num + 1) + "</span>" + wordlist[random].substr(char_num + 1, wordlist[random].length);
|
171
|
+
char_num++;
|
172
|
+
correct++;
|
173
|
+
charInsort();
|
174
|
+
}
|
175
|
+
else{
|
176
|
+
new Audio('miss.mp3').play();
|
177
|
+
mistake++;
|
178
|
+
}
|
179
|
+
if(char_num == wordlist[random].length){
|
180
|
+
new Audio('correct.mp3').play();
|
181
|
+
char_num = 0;
|
182
|
+
wordDisplay();
|
183
|
+
}
|
184
|
+
};
|
185
|
+
```
|
186
|
+
```JavaScript
|
187
|
+
var wordlist = ["afghanistan", "argentina", "australia"];
|
188
|
+
var wordlistJapanese = ["アフガニスタン", "アルゼンチン", "オーストラリア"];
|
189
|
+
var time_limit = 60;
|
190
|
+
var readytime = 3;
|
191
|
+
var score;
|
192
|
+
var correct;
|
193
|
+
var mistake;
|
194
|
+
var char_num = 0;
|
195
|
+
var word_char;
|
196
|
+
var random;
|
197
|
+
function ready2(){
|
198
|
+
readytime = 3;
|
199
|
+
scoredis.innerHTML = "";
|
200
|
+
start_button.style.visibility = "hidden";
|
201
|
+
var readytimer = setInterval(function(){
|
202
|
+
count.innerHTML = readytime;
|
203
|
+
readytime--;
|
204
|
+
if(readytime < 0){
|
205
|
+
clearInterval(readytimer);
|
206
|
+
gameStart();
|
207
|
+
}
|
208
|
+
},1000);
|
209
|
+
}
|
210
|
+
function gameStart(){
|
211
|
+
score = 0.0;
|
212
|
+
mistake = 0;
|
213
|
+
correct = 0;
|
214
|
+
wordDisplay();
|
215
|
+
var time_remaining = time_limit;
|
216
|
+
var gametimer = setInterval(function(){
|
217
|
+
count.innerHTML = "残り時間: " + time_remaining;
|
218
|
+
time_remaining--;
|
219
|
+
if(time_remaining <= 0){
|
220
|
+
clearInterval(gametimer);
|
221
|
+
finish();
|
222
|
+
}
|
223
|
+
},1000)
|
224
|
+
}
|
225
|
+
function wordDisplay(){
|
226
|
+
random = Math.floor(Math.random()*wordlist.length);
|
227
|
+
word.innerHTML = wordlist[random];
|
228
|
+
japanese.innerHTML = wordlistJapanese[random];
|
229
|
+
charInsort();
|
230
|
+
}
|
231
|
+
function charInsort(){
|
232
|
+
word_char = wordlist[random].charAt(char_num);
|
233
|
+
}
|
234
|
+
function finish(){
|
235
|
+
score = Math.floor(Math.pow(correct, 2)*Math.pow((correct/(correct + mistake)), 5));
|
236
|
+
scoredis.innerHTML = "スコア: " + score + "<hr>正しいタイプ数: " + correct + "<br>誤ったタイプ数: " + mistake +"<br>正答率: " + (correct/(correct + mistake) * 100).toFixed(1) + "%";
|
237
|
+
count.innerHTML = "";
|
238
|
+
word.innerHTML = "";
|
239
|
+
japanese.innerHTML = "";
|
240
|
+
start_button.style.visibility = "visible";
|
241
|
+
word_char = 0;
|
242
|
+
random = 0;
|
243
|
+
char_num = 0;
|
244
|
+
}
|
245
|
+
document.onkeydown = function(e){
|
246
|
+
if(e.keyCode == 189){
|
247
|
+
keyStr = "-";
|
248
|
+
}
|
249
|
+
else if(e.keyCode == 188){
|
250
|
+
keyStr = ",";
|
251
|
+
}
|
252
|
+
else{
|
253
|
+
var keyStr = String.fromCharCode(e.keyCode);
|
254
|
+
keyStr = keyStr.toLowerCase();
|
255
|
+
}
|
256
|
+
if(keyStr == word_char){
|
257
|
+
word.innerHTML = "<span style = 'color: red;'>" + wordlist[random].substr(0, char_num + 1) + "</span>" + wordlist[random].substr(char_num + 1, wordlist[random].length);
|
258
|
+
char_num++;
|
259
|
+
correct++;
|
260
|
+
charInsort();
|
261
|
+
}
|
262
|
+
else{
|
263
|
+
new Audio('miss.mp3').play();
|
264
|
+
mistake++;
|
265
|
+
}
|
266
|
+
if(char_num == wordlist[random].length){
|
267
|
+
new Audio('correct.mp3').play();
|
268
|
+
char_num = 0;
|
269
|
+
wordDisplay();
|
270
|
+
}
|
271
|
+
};
|
272
|
+
```
|
192
273
|
```HTML
|
193
274
|
<!DOCTYPE html>
|
194
275
|
<html>
|
@@ -196,15 +277,18 @@
|
|
196
277
|
<title>タイピングゲーム</title>
|
197
278
|
<meta charset="utf-8">
|
198
279
|
<link rel="stylesheet" type="text/css" href="k22136.css" />
|
280
|
+
<script src="kotowaza-k22136.js"></script>
|
281
|
+
<script src="todofukenn-k22136.js"></script>
|
199
|
-
<script src="k
|
282
|
+
<script src="kuni-k22136.js"></script>
|
200
283
|
</head>
|
201
284
|
<body>
|
202
285
|
<div class="imgt">
|
203
286
|
<p class="title">TYPING GAME</p>
|
204
|
-
<p>〜ことわざ〜</p>
|
205
287
|
</div>
|
206
288
|
<div class="wrap1">
|
207
|
-
<input type="button" id="
|
289
|
+
<input type="button" id="kotowaza_button" value="ことわざ" onclick="ready1()" style="text-align: center">
|
290
|
+
<input type="button" id="todofukenn_button" value="都道府県" onclick="ready2()" style="text-align: center">
|
291
|
+
<input type="button" id="kuni_button" value="国" onclick="ready3()" style="text-align: center">
|
208
292
|
<div id="count"></div>
|
209
293
|
<h1><div id="japanese"></div></h1>
|
210
294
|
<h2><div id="word"></div></h2>
|
@@ -213,12 +297,7 @@
|
|
213
297
|
</body>
|
214
298
|
</html>
|
215
299
|
```
|
216
|
-
|
217
300
|
### 試したこと
|
218
|
-
|
219
|
-
ネットでJavaScriptで複数のボタンを使う方法などを調べ、実行しましたがうまく動かなかったです
|
301
|
+
ネットでJavaScriptで複数のボタンを使う方法などを調べ、実行しましたがうまく動かなかったです
|
220
|
-
|
221
302
|
### 補足情報(FW/ツールのバージョンなど)
|
222
|
-
|
223
|
-
環境はOSで、VScodeを使っています
|
303
|
+
環境はOSで、VScodeを使っています
|
224
|
-
|