プロジェクト

全般

プロフィール

鍛冶 ダメージ範囲 » 履歴 » バージョン 2

Noppi, 2023/12/18 11:37

1 1 Noppi
[ホーム](https://redmine.noppi.jp) - [[Wiki|DQX]]
2
# [[鍛冶 ダメージ範囲]]
3
``` scheme
4
#!r6rs
5
#!chezscheme
6
7
(import (chezscheme))
8
9
(define (make-sequence n1 n2 inc)
10
  (let loop ([current n2]
11
             [lis '()])
12
    (if (< current n1)
13
      lis
14
      (loop (- current inc) (cons current lis)))))
15
16
(define base-normal (make-sequence 12 18 1))
17
(define temperature-list (make-sequence 50 2000 50))
18
(define temperature-list-neppu (make-sequence 150 2000 50))
19
20
(define (make-2bai n) (* n 2))
21
(define base-2bai (map make-2bai base-normal))
22
23
(define (make-3bai n) (* n 3))
24
(define base-3bai (map make-3bai base-normal))
25
26
(define (make-1.2 n) (exact (floor (+ (* n 1.2) 1))))
27
(define base-1.2 (map make-1.2 base-normal))
28
29
(define (make-tekagen n) (exact (ceiling (* n 0.5))))
30
(define base-tekagen (map make-tekagen base-normal))
31
32
(define (make-midare n) (exact (floor (+ (* n 0.8) 1))))
33
(define base-midare (map make-midare base-normal))
34
35
(define (make-neppu n) (exact (ceiling (* n 2.5))))
36
(define base-neppu (map make-neppu base-normal))
37
38
(define (make-damage-list temperature base-list)
39
  (map
40
    (lambda (n)
41
      (exact (ceiling (* n (+ 1 (* (- temperature 1000) 0.0005))))))
42
    base-list))
43
44
(define (make-damage-table temperature-list base-list)
45
  (let loop ([temperature-list temperature-list]
46
             [lis '()])
47
    (if (null? temperature-list)
48
      lis
49
      (let ([current-temperature (car temperature-list)])
50
        (loop
51
          (cdr temperature-list)
52
          (cons
53
            (list
54
              current-temperature
55
              (make-damage-list current-temperature base-list))
56
            lis))))))
57
58
(define normal-table (make-damage-table temperature-list base-normal))
59
(define 2bai-table (make-damage-table temperature-list base-2bai))
60
(define 3bai-table (make-damage-table temperature-list base-3bai))
61
(define 1.2-table (make-damage-table temperature-list base-1.2))
62
(define tekagen-table (make-damage-table temperature-list base-tekagen))
63
(define midare-table (make-damage-table temperature-list base-midare))
64
(define neppu-table (make-damage-table temperature-list-neppu base-neppu))
65
66
(define (make-damage-range damage-table)
67
  (let loop ([damage-table damage-table]
68
             [table '()])
69
    (if (null? damage-table)
70
      (reverse table)
71
      (let ([current-line (car damage-table)])
72
        (let ([current-damage-list (cadr current-line)])
73
          (loop
74
            (cdr damage-table)
75
            (cons
76
              (list
77
                (car current-line)
78
                (list
79
                  (apply min current-damage-list)
80
                  (apply max current-damage-list)))
81
              table)))))))
82
83
(define normal-range (make-damage-range normal-table))
84
(define 2bai-range (make-damage-range 2bai-table))
85
(define 3bai-range (make-damage-range 3bai-table))
86
(define 1.2-range (make-damage-range 1.2-table))
87
(define tekagen-range (make-damage-range tekagen-table))
88
(define midare-range (make-damage-range midare-table))
89
(define neppu-range (make-damage-range neppu-table))
90
91
(define (display-range title range)
92
  (display title)
93
  (newline)
94
  (display "----------------------------------------\n")
95
  (let loop ([range range])
96
    (cond
97
      [(null? range)
98
       (display "----------------------------------------\n")
99
       (newline)]
100
      [else
101
        (let ([line (car range)])
102
          (display (car line))
103
          (display "℃")
104
          (display " : ")
105
          (let ([current-range-list (cadr line)])
106
            (display (car current-range-list))
107
            (display " ~ ")
108
            (display (cadr current-range-list))
109
            (newline)
110
            (loop (cdr range))))])))
111
112
(display-range "たたく、ねらい打ち" normal-range)
113
(display-range "2倍打ち、超4連打ち" 2bai-range)
114
(display-range "3倍打ち" 3bai-range)
115
(display-range "上下打ち、4連打ち、ななめ打ち" 1.2-range)
116
(display-range "てかげん打ち" tekagen-range)
117
(display-range "みだれ打ち" midare-range)
118
(display-range "熱風おろし" neppu-range)
119
```
120 2 Noppi
実行結果:
121
``` text
122
たたく、ねらい打ち
123
----------------------------------------
124
2000℃ : 18 ~ 27
125
1950℃ : 18 ~ 27
126
1900℃ : 18 ~ 27
127
1850℃ : 18 ~ 26
128
1800℃ : 17 ~ 26
129
1750℃ : 17 ~ 25
130
1700℃ : 17 ~ 25
131
1650℃ : 16 ~ 24
132
1600℃ : 16 ~ 24
133
1550℃ : 16 ~ 23
134
1500℃ : 15 ~ 23
135
1450℃ : 15 ~ 23
136
1400℃ : 15 ~ 22
137
1350℃ : 15 ~ 22
138
1300℃ : 14 ~ 21
139
1250℃ : 14 ~ 21
140
1200℃ : 14 ~ 20
141
1150℃ : 13 ~ 20
142
1100℃ : 13 ~ 19
143
1050℃ : 13 ~ 19
144
1000℃ : 12 ~ 18
145
950℃ : 12 ~ 18
146
900℃ : 12 ~ 18
147
850℃ : 12 ~ 17
148
800℃ : 11 ~ 17
149
750℃ : 11 ~ 16
150
700℃ : 11 ~ 16
151
650℃ : 10 ~ 15
152
600℃ : 10 ~ 15
153
550℃ : 10 ~ 14
154
500℃ : 9 ~ 14
155
450℃ : 9 ~ 14
156
400℃ : 9 ~ 13
157
350℃ : 9 ~ 13
158
300℃ : 8 ~ 12
159
250℃ : 8 ~ 12
160
200℃ : 8 ~ 11
161
150℃ : 7 ~ 11
162
100℃ : 7 ~ 10
163
50℃ : 7 ~ 10
164
----------------------------------------
165
166
2倍打ち、超4連打ち
167
----------------------------------------
168
2000℃ : 36 ~ 54
169
1950℃ : 36 ~ 54
170
1900℃ : 35 ~ 53
171
1850℃ : 35 ~ 52
172
1800℃ : 34 ~ 51
173
1750℃ : 33 ~ 50
174
1700℃ : 33 ~ 49
175
1650℃ : 32 ~ 48
176
1600℃ : 32 ~ 47
177
1550℃ : 31 ~ 46
178
1500℃ : 30 ~ 45
179
1450℃ : 30 ~ 45
180
1400℃ : 29 ~ 44
181
1350℃ : 29 ~ 43
182
1300℃ : 28 ~ 42
183
1250℃ : 27 ~ 41
184
1200℃ : 27 ~ 40
185
1150℃ : 26 ~ 39
186
1100℃ : 26 ~ 38
187
1050℃ : 25 ~ 37
188
1000℃ : 24 ~ 36
189
950℃ : 24 ~ 36
190
900℃ : 23 ~ 35
191
850℃ : 23 ~ 34
192
800℃ : 22 ~ 33
193
750℃ : 21 ~ 32
194
700℃ : 21 ~ 31
195
650℃ : 20 ~ 30
196
600℃ : 20 ~ 29
197
550℃ : 19 ~ 28
198
500℃ : 18 ~ 27
199
450℃ : 18 ~ 27
200
400℃ : 17 ~ 26
201
350℃ : 17 ~ 25
202
300℃ : 16 ~ 24
203
250℃ : 15 ~ 23
204
200℃ : 15 ~ 22
205
150℃ : 14 ~ 21
206
100℃ : 14 ~ 20
207
50℃ : 13 ~ 19
208
----------------------------------------
209
210
3倍打ち
211
----------------------------------------
212
2000℃ : 54 ~ 81
213
1950℃ : 54 ~ 80
214
1900℃ : 53 ~ 79
215
1850℃ : 52 ~ 77
216
1800℃ : 51 ~ 76
217
1750℃ : 50 ~ 75
218
1700℃ : 49 ~ 73
219
1650℃ : 48 ~ 72
220
1600℃ : 47 ~ 71
221
1550℃ : 46 ~ 69
222
1500℃ : 45 ~ 68
223
1450℃ : 45 ~ 67
224
1400℃ : 44 ~ 65
225
1350℃ : 43 ~ 64
226
1300℃ : 42 ~ 63
227
1250℃ : 41 ~ 61
228
1200℃ : 40 ~ 60
229
1150℃ : 39 ~ 59
230
1100℃ : 38 ~ 57
231
1050℃ : 37 ~ 56
232
1000℃ : 36 ~ 54
233
950℃ : 36 ~ 53
234
900℃ : 35 ~ 52
235
850℃ : 34 ~ 50
236
800℃ : 33 ~ 49
237
750℃ : 32 ~ 48
238
700℃ : 31 ~ 46
239
650℃ : 30 ~ 45
240
600℃ : 29 ~ 44
241
550℃ : 28 ~ 42
242
500℃ : 27 ~ 41
243
450℃ : 27 ~ 40
244
400℃ : 26 ~ 38
245
350℃ : 25 ~ 37
246
300℃ : 24 ~ 36
247
250℃ : 23 ~ 34
248
200℃ : 22 ~ 33
249
150℃ : 21 ~ 32
250
100℃ : 20 ~ 30
251
50℃ : 19 ~ 29
252
----------------------------------------
253
254
上下打ち、4連打ち、ななめ打ち
255
----------------------------------------
256
2000℃ : 23 ~ 33
257
1950℃ : 23 ~ 33
258
1900℃ : 22 ~ 32
259
1850℃ : 22 ~ 32
260
1800℃ : 21 ~ 31
261
1750℃ : 21 ~ 31
262
1700℃ : 21 ~ 30
263
1650℃ : 20 ~ 30
264
1600℃ : 20 ~ 29
265
1550℃ : 20 ~ 29
266
1500℃ : 19 ~ 28
267
1450℃ : 19 ~ 27
268
1400℃ : 18 ~ 27
269
1350℃ : 18 ~ 26
270
1300℃ : 18 ~ 26
271
1250℃ : 17 ~ 25
272
1200℃ : 17 ~ 25
273
1150℃ : 17 ~ 24
274
1100℃ : 16 ~ 24
275
1050℃ : 16 ~ 23
276
1000℃ : 15 ~ 22
277
950℃ : 15 ~ 22
278
900℃ : 15 ~ 21
279
850℃ : 14 ~ 21
280
800℃ : 14 ~ 20
281
750℃ : 14 ~ 20
282
700℃ : 13 ~ 19
283
650℃ : 13 ~ 19
284
600℃ : 12 ~ 18
285
550℃ : 12 ~ 18
286
500℃ : 12 ~ 17
287
450℃ : 11 ~ 16
288
400℃ : 11 ~ 16
289
350℃ : 11 ~ 15
290
300℃ : 10 ~ 15
291
250℃ : 10 ~ 14
292
200℃ : 9 ~ 14
293
150℃ : 9 ~ 13
294
100℃ : 9 ~ 13
295
50℃ : 8 ~ 12
296
----------------------------------------
297
298
てかげん打ち
299
----------------------------------------
300
2000℃ : 9 ~ 14
301
1950℃ : 9 ~ 14
302
1900℃ : 9 ~ 14
303
1850℃ : 9 ~ 13
304
1800℃ : 9 ~ 13
305
1750℃ : 9 ~ 13
306
1700℃ : 9 ~ 13
307
1650℃ : 8 ~ 12
308
1600℃ : 8 ~ 12
309
1550℃ : 8 ~ 12
310
1500℃ : 8 ~ 12
311
1450℃ : 8 ~ 12
312
1400℃ : 8 ~ 11
313
1350℃ : 8 ~ 11
314
1300℃ : 7 ~ 11
315
1250℃ : 7 ~ 11
316
1200℃ : 7 ~ 10
317
1150℃ : 7 ~ 10
318
1100℃ : 7 ~ 10
319
1050℃ : 7 ~ 10
320
1000℃ : 6 ~ 9
321
950℃ : 6 ~ 9
322
900℃ : 6 ~ 9
323
850℃ : 6 ~ 9
324
800℃ : 6 ~ 9
325
750℃ : 6 ~ 8
326
700℃ : 6 ~ 8
327
650℃ : 5 ~ 8
328
600℃ : 5 ~ 8
329
550℃ : 5 ~ 7
330
500℃ : 5 ~ 7
331
450℃ : 5 ~ 7
332
400℃ : 5 ~ 7
333
350℃ : 5 ~ 7
334
300℃ : 4 ~ 6
335
250℃ : 4 ~ 6
336
200℃ : 4 ~ 6
337
150℃ : 4 ~ 6
338
100℃ : 4 ~ 5
339
50℃ : 4 ~ 5
340
----------------------------------------
341
342
みだれ打ち
343
----------------------------------------
344
2000℃ : 15 ~ 23
345
1950℃ : 15 ~ 23
346
1900℃ : 15 ~ 22
347
1850℃ : 15 ~ 22
348
1800℃ : 14 ~ 21
349
1750℃ : 14 ~ 21
350
1700℃ : 14 ~ 21
351
1650℃ : 14 ~ 20
352
1600℃ : 13 ~ 20
353
1550℃ : 13 ~ 20
354
1500℃ : 13 ~ 19
355
1450℃ : 13 ~ 19
356
1400℃ : 12 ~ 18
357
1350℃ : 12 ~ 18
358
1300℃ : 12 ~ 18
359
1250℃ : 12 ~ 17
360
1200℃ : 11 ~ 17
361
1150℃ : 11 ~ 17
362
1100℃ : 11 ~ 16
363
1050℃ : 11 ~ 16
364
1000℃ : 10 ~ 15
365
950℃ : 10 ~ 15
366
900℃ : 10 ~ 15
367
850℃ : 10 ~ 14
368
800℃ : 9 ~ 14
369
750℃ : 9 ~ 14
370
700℃ : 9 ~ 13
371
650℃ : 9 ~ 13
372
600℃ : 8 ~ 12
373
550℃ : 8 ~ 12
374
500℃ : 8 ~ 12
375
450℃ : 8 ~ 11
376
400℃ : 7 ~ 11
377
350℃ : 7 ~ 11
378
300℃ : 7 ~ 10
379
250℃ : 7 ~ 10
380
200℃ : 6 ~ 9
381
150℃ : 6 ~ 9
382
100℃ : 6 ~ 9
383
50℃ : 6 ~ 8
384
----------------------------------------
385
386
熱風おろし
387
----------------------------------------
388
2000℃ : 45 ~ 68
389
1950℃ : 45 ~ 67
390
1900℃ : 44 ~ 66
391
1850℃ : 43 ~ 65
392
1800℃ : 42 ~ 63
393
1750℃ : 42 ~ 62
394
1700℃ : 41 ~ 61
395
1650℃ : 40 ~ 60
396
1600℃ : 39 ~ 59
397
1550℃ : 39 ~ 58
398
1500℃ : 38 ~ 57
399
1450℃ : 37 ~ 56
400
1400℃ : 36 ~ 54
401
1350℃ : 36 ~ 53
402
1300℃ : 35 ~ 52
403
1250℃ : 34 ~ 51
404
1200℃ : 33 ~ 50
405
1150℃ : 33 ~ 49
406
1100℃ : 32 ~ 48
407
1050℃ : 31 ~ 47
408
1000℃ : 30 ~ 45
409
950℃ : 30 ~ 44
410
900℃ : 29 ~ 43
411
850℃ : 28 ~ 42
412
800℃ : 27 ~ 41
413
750℃ : 27 ~ 40
414
700℃ : 26 ~ 39
415
650℃ : 25 ~ 38
416
600℃ : 24 ~ 36
417
550℃ : 24 ~ 35
418
500℃ : 23 ~ 34
419
450℃ : 22 ~ 33
420
400℃ : 21 ~ 32
421
350℃ : 21 ~ 31
422
300℃ : 20 ~ 30
423
250℃ : 19 ~ 29
424
200℃ : 18 ~ 27
425
150℃ : 18 ~ 26
426
----------------------------------------
427
```