four-pillars 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/four-pillars.rb +63 -1
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f0b8c051671af718c90ac4cc6e63f328b45ab58b1dc66de1bcd5cccec592b51
4
- data.tar.gz: b9980ff4b7836ce0f41f625f6d8b7408fb2fdd67eb2e68401c82335f6a0141b3
3
+ metadata.gz: 5fa421d59c6eebe39c91e346319e4a53b026247f619032fdc54b2055bdff7e62
4
+ data.tar.gz: 9b9ace6b9c0e25546027f14740f3a60467b41f4ca726d65758b2b2f1b3be8c3b
5
5
  SHA512:
6
- metadata.gz: f50990650a105160b856d434a1e775147821005e19ca2e3e49e59145078965363223b1d36c57b0955003799545859142f656a8b0ae9af143567b99d5ebb1a4ec
7
- data.tar.gz: 706961821addf96f7fb0aab4142379891e2dbc0d3596174f16a009bfd7735bc93afb9f51b7bce05a4de4e05b7bb394b11b184726c3e6f61aeda72b818c962a02
6
+ metadata.gz: b43a695cb24b025c39cfc38af7d18d68c500357e0560077a05960feef8abde23d4b019201beb73166879ef82c304c43a0d8c0d531b78c0ad6f2ae02117a46090
7
+ data.tar.gz: 932fd3efd6e8d0ac69ed4d3aac0de9a340eed2c8a1a0bc3d8e8cc0961f20a72807fb4e043d718dbcfc11d97f5c2414cc96398098f40ac7743e489cf323a024bd
data/lib/four-pillars.rb CHANGED
@@ -318,9 +318,10 @@ class FourPillarsLogic
318
318
  # 日柱の十干と月柱の十二支
319
319
  x = JIKKAN.index(kanshi[0][0])
320
320
  y = JYUNISHI.index(kanshi[1][1])
321
- SHUGOSHIN[y][x]
321
+ SHUGOSHIN[y][x].split("")
322
322
  end
323
323
 
324
+ # 宿命中殺
324
325
  def shukumei
325
326
  s = []
326
327
  t = kuubou # 天中殺 0:上段, 1:下段
@@ -340,6 +341,67 @@ class FourPillarsLogic
340
341
  s += ["日座中殺"] if f
341
342
  return s
342
343
  end
344
+
345
+ def equivalent_kanshi(only_jikkan=false)
346
+ if only_jikkan
347
+ k = kanshi.map {|v| v[0] } # 日,月,年柱の十干
348
+ else
349
+ k = kanshi
350
+ end
351
+ if k[0] == k[1] && k[1] == k[2]
352
+ return [[0,1],[0,2],[1,2]]
353
+ elsif k[0] == k[1]
354
+ return [[0,1]]
355
+ elsif k[0] == k[2]
356
+ return [[0,2]]
357
+ elsif k[1] == k[2]
358
+ return [[1,2]]
359
+ else
360
+ return []
361
+ end
362
+ end
363
+
364
+ def on_distance?(j1,j2,d=6)
365
+ i = JYUNISHI.index(j1)
366
+ return j2 == JYUNISHI[(i+d) % 12]
367
+ end
368
+
369
+ # 律音
370
+ def ricchin
371
+ # 干支(十干・十二支)が同じ
372
+ equivalent_kanshi(false)
373
+ end
374
+
375
+ # 納音
376
+ def nacchin
377
+ # 十干が同じで十二支が 沖 の関係にある
378
+ v = []
379
+ eq = equivalent_kanshi(true)
380
+ eq.each do |e|
381
+ k0 = kanshi[e[0]][1]
382
+ k1 = kanshi[e[1]][1]
383
+ v += [e] if on_distance?(k0,k1,6)
384
+ end
385
+ return v
386
+ end
387
+
388
+ # 宿命大半会
389
+ def shukumei_daihankai
390
+ # 十干が同じで十二支が三合会局の関係にある
391
+ v = []
392
+ eq = equivalent_kanshi(true)
393
+ eq.each do |e|
394
+ k0 = kanshi[e[0]][1]
395
+ k1 = kanshi[e[1]][1]
396
+ v += [e] if on_distance?(k0,k1,4)
397
+ end
398
+ eq.each do |e|
399
+ k0 = kanshi[e[0]][1]
400
+ k1 = kanshi[e[1]][1]
401
+ v += [e] if on_distance?(k0,k1,8)
402
+ end
403
+ return v
404
+ end
343
405
  end
344
406
 
345
407
  if __FILE__ == $0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: four-pillars
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yosei Ito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-29 00:00:00.000000000 Z
11
+ date: 2021-06-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A class which tells fortune by Four Pillar astrology(四柱推命).
14
14
  email: y-itou@lumber-mill.co.jp