Skip to content

Commit

Permalink
Merge branch 'release/v0.4.4'
Browse files Browse the repository at this point in the history
  • Loading branch information
kobalab committed Jan 24, 2022
2 parents 89e29b2 + af5df0e commit eadda95
Show file tree
Hide file tree
Showing 5 changed files with 131 additions and 66 deletions.
9 changes: 8 additions & 1 deletion ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
### v0.4.4 / 2022-01-24

- examples を追加
- examples/diff-strict.js を追加 - 2つの牌譜から厳密に差分を抽出する
- @kobalab/majiang-core 0.1.3 → 0.2.1
- 脆弱性警告に対処(mocha 9.1.3 → 9.2.0)

### v0.4.3 / 2021-12-09

- examples を追加
- dist_lizhi.js - リーチ宣言牌および最初に切った数牌と同種の牌の危険度
- @kobalab/majiang-core 0.1.3 → 0.1.3
- @kobalab/majiang-core 0.1.2 → 0.1.3

### v0.4.2 / 2021-11-19

Expand Down
1 change: 1 addition & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
| summary.js | [基礎情報と和了役・流局理由集計](https://blog.kobalab.net/entry/20180113/1515776231)
| search.js | 和了役と流局理由の検索
| diff.js | 2つの牌譜から差分を抽出する
| diff-strict.js | 2つの牌譜から厳密に差分を抽出する
| xiangting.js | [巡目ごとの向聴数・立直率・和了率](https://blog.kobalab.net/entry/20180118/1516202840)
| dist_pai.js | [局終了時の牌の分布](https://blog.kobalab.net/entry/20180119/1516290844)
| dist_hulepai.js | [和了牌の分布](https://blog.kobalab.net/entry/20180120/1516417938)
Expand Down
51 changes: 51 additions & 0 deletions examples/diff-strict.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* 2つの牌譜から厳密に差分を抽出する
*/
"use strict";

const assert = require('assert');
const getlogs = require('../').getlogs;

function diff(p1, p2) {
let log1 = p1.paipu.log, log2 = p2.paipu.log;
let qijia = p1.paipu.qijia;
for (let i = 0; i < Math.min(log1.length, log2.length); i++) {
let jushu = log1[i][0].qipai.jushu;
for (let j = 0; j < Math.min(log1[i].length, log2[i].length); j++) {
try {
assert.deepEqual(log1[i][j], log2[i][j]);
}
catch(e) {
let t = Object.keys(log1[i][j])[0];
let v = log2[i][j][t] && log1[i][j][t].l != null
&& log1[i][j][t].l == log2[i][j][t].l
? (qijia + jushu + log1[i][j][t].l) % 4 : '';
console.log(
`${p1.basename}/${v}/${i}/${j}`,
`${p2.basename}/${v}/${i}/${j}`
);
console.log(log1[i][j]);
console.log(log2[i][j]);
if (! argv.all) process.exit(1);
}
}
}
}

const yargs = require('yargs');
const argv = yargs
.usage('Usage: $0 <log-dir1> <log-dir2>')
.option('all', {alias: 'a', boolean: true, description:'差分を全て抽出する'})
.demandCommand(2)
.argv;
const logs1 = getlogs(argv._[0]);
const logs2 = getlogs(argv._[1]);

let t = 0;
for (let p1 of logs1) {
let p2 = logs2.next().value;
if (! p2) break;
diff(p1, p2);
t++;
if (argv.times && t >= argv.times) return;
}
130 changes: 68 additions & 62 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@kobalab/majiang-analog",
"version": "0.4.3",
"version": "0.4.4",
"description": "電脳麻将牌譜解析ツール",
"publishConfig": {
"access": "public"
Expand All @@ -26,11 +26,11 @@
},
"homepage": "https://github.com/kobalab/majiang-analog#readme",
"devDependencies": {
"mocha": "^9.1.3",
"mocha": "^9.2.0",
"nyc": "^15.1.0",
"yargs": "^17.2.1"
},
"dependencies": {
"@kobalab/majiang-core": "^0.1.3"
"@kobalab/majiang-core": "^0.2.1"
}
}

0 comments on commit eadda95

Please sign in to comment.