four-pillars 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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