Last active
August 27, 2024 08:54
-
-
Save redpeacock78/35da87a6b894ae9f4b08b033085dcb82 to your computer and use it in GitHub Desktop.
麻雀の得点計算(青天井)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // 切り上げ用関数 | |
| const roundUp = (val: number, base: number): number => | |
| Math.ceil(val / base) * base; | |
| // 翻数と符数 | |
| const han = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; | |
| const hu = [20, 25, 30, 40, 50, 60, 70, 80, 90, 100, 110]; | |
| const matrix: number[][] = han.flatMap((p: number): number[][] => | |
| hu.map((q: number): number[] => [p, q]) | |
| ); | |
| // 基本点の算出 | |
| const basicCalc = (conb: number[]): number => 2 ** (conb[0] + 2) * conb[1]; | |
| const basicResult: { [key: string]: { [key: string]: number } } = {}; | |
| matrix.forEach((comb: number[]): void => { | |
| if (!basicResult[`${comb[0]}翻`]) basicResult[`${comb[0]}翻`] = {}; | |
| basicResult[`${comb[0]}翻`][`${comb[1]}符`] = basicCalc(comb); | |
| }); | |
| // 親の点の算出 | |
| const parentResult: { [key: string]: { [key: string]: string } } = {}; | |
| Object.keys(basicResult).forEach((key: string): void => { | |
| parentResult[key] = Object.fromEntries( | |
| Object.entries(basicResult[key]).map( | |
| ([key, val]: [string, number]): [string, string] => { | |
| const result: number = roundUp(val * 2, 100); | |
| return [key, `${result * 3}(${result}All)`]; | |
| } | |
| ) | |
| ); | |
| }); | |
| // 子の点の算出 | |
| const childResult: { [key: string]: { [key: string]: string } } = {}; | |
| Object.keys(basicResult).forEach((key: string): void => { | |
| childResult[key] = Object.fromEntries( | |
| Object.entries(basicResult[key]).map( | |
| ([key, val]: [string, number]): [string, string] => { | |
| const child: number = roundUp(val, 100); | |
| const parent: number = roundUp(val * 2, 100); | |
| const result: number = child * 2 + parent; | |
| return [key, `${result}(${child}/${parent})`]; | |
| } | |
| ) | |
| ); | |
| }); | |
| const totalResult = { | |
| 親: parentResult, | |
| 子: childResult, | |
| }; | |
| console.log(totalResult); |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Command
Result
{ "親": { "0翻": { "20符": "600(200All)", "25符": "600(200All)", "30符": "900(300All)", "40符": "1200(400All)", "50符": "1200(400All)", "60符": "1500(500All)", "70符": "1800(600All)", "80符": "2100(700All)", "90符": "2400(800All)", "100符": "2400(800All)", "110符": "2700(900All)" }, "1翻": { "20符": "1200(400All)", "25符": "1200(400All)", "30符": "1500(500All)", "40符": "2100(700All)", "50符": "2400(800All)", "60符": "3000(1000All)", "70符": "3600(1200All)", "80符": "3900(1300All)", "90符": "4500(1500All)", "100符": "4800(1600All)", "110符": "5400(1800All)" }, "2翻": { "20符": "2100(700All)", "25符": "2400(800All)", "30符": "3000(1000All)", "40符": "3900(1300All)", "50符": "4800(1600All)", "60符": "6000(2000All)", "70符": "6900(2300All)", "80符": "7800(2600All)", "90符": "8700(2900All)", "100符": "9600(3200All)", "110符": "10800(3600All)" }, "3翻": { "20符": "3900(1300All)", "25符": "4800(1600All)", "30符": "6000(2000All)", "40符": "7800(2600All)", "50符": "9600(3200All)", "60符": "11700(3900All)", "70符": "13500(4500All)", "80符": "15600(5200All)", "90符": "17400(5800All)", "100符": "19200(6400All)", "110符": "21300(7100All)" }, "4翻": { "20符": "7800(2600All)", "25符": "9600(3200All)", "30符": "11700(3900All)", "40符": "15600(5200All)", "50符": "19200(6400All)", "60符": "23100(7700All)", "70符": "27000(9000All)", "80符": "30900(10300All)", "90符": "34800(11600All)", "100符": "38400(12800All)", "110符": "42300(14100All)" }, "5翻": { "20符": "15600(5200All)", "25符": "19200(6400All)", "30符": "23100(7700All)", "40符": "30900(10300All)", "50符": "38400(12800All)", "60符": "46200(15400All)", "70符": "54000(18000All)", "80符": "61500(20500All)", "90符": "69300(23100All)", "100符": "76800(25600All)", "110符": "84600(28200All)" }, "6翻": { "20符": "30900(10300All)", "25符": "38400(12800All)", "30符": "46200(15400All)", "40符": "61500(20500All)", "50符": "76800(25600All)", "60符": "92400(30800All)", "70符": "107700(35900All)", "80符": "123000(41000All)", "90符": "138300(46100All)", "100符": "153600(51200All)", "110符": "169200(56400All)" }, "7翻": { "20符": "61500(20500All)", "25符": "76800(25600All)", "30符": "92400(30800All)", "40符": "123000(41000All)", "50符": "153600(51200All)", "60符": "184500(61500All)", "70符": "215100(71700All)", "80符": "246000(82000All)", "90符": "276600(92200All)", "100符": "307200(102400All)", "110符": "338100(112700All)" }, "8翻": { "20符": "123000(41000All)", "25符": "153600(51200All)", "30符": "184500(61500All)", "40符": "246000(82000All)", "50符": "307200(102400All)", "60符": "368700(122900All)", "70符": "430200(143400All)", "80符": "491700(163900All)", "90符": "553200(184400All)", "100符": "614400(204800All)", "110符": "675900(225300All)" }, "9翻": { "20符": "246000(82000All)", "25符": "307200(102400All)", "30符": "368700(122900All)", "40符": "491700(163900All)", "50符": "614400(204800All)", "60符": "737400(245800All)", "70符": "860400(286800All)", "80符": "983100(327700All)", "90符": "1106100(368700All)", "100符": "1228800(409600All)", "110符": "1351800(450600All)" }, "10翻": { "20符": "491700(163900All)", "25符": "614400(204800All)", "30符": "737400(245800All)", "40符": "983100(327700All)", "50符": "1228800(409600All)", "60符": "1474800(491600All)", "70符": "1720500(573500All)", "80符": "1966200(655400All)", "90符": "2211900(737300All)", "100符": "2457600(819200All)", "110符": "2703600(901200All)" }, "11翻": { "20符": "983100(327700All)", "25符": "1228800(409600All)", "30符": "1474800(491600All)", "40符": "1966200(655400All)", "50符": "2457600(819200All)", "60符": "2949300(983100All)", "70符": "3440700(1146900All)", "80符": "3932400(1310800All)", "90符": "4423800(1474600All)", "100符": "4915200(1638400All)", "110符": "5406900(1802300All)" }, "12翻": { "20符": "1966200(655400All)", "25符": "2457600(819200All)", "30符": "2949300(983100All)", "40符": "3932400(1310800All)", "50符": "4915200(1638400All)", "60符": "5898300(1966100All)", "70符": "6881400(2293800All)", "80符": "7864500(2621500All)", "90符": "8847600(2949200All)", "100符": "9830400(3276800All)", "110符": "10813500(3604500All)" }, "13翻": { "20符": "3932400(1310800All)", "25符": "4915200(1638400All)", "30符": "5898300(1966100All)", "40符": "7864500(2621500All)", "50符": "9830400(3276800All)", "60符": "11796600(3932200All)", "70符": "13762800(4587600All)", "80符": "15728700(5242900All)", "90符": "17694900(5898300All)", "100符": "19660800(6553600All)", "110符": "21627000(7209000All)" } }, "子": { "0翻": { "20符": "400(100/200)", "25符": "400(100/200)", "30符": "700(200/300)", "40符": "800(200/400)", "50符": "800(200/400)", "60符": "1100(300/500)", "70符": "1200(300/600)", "80符": "1500(400/700)", "90符": "1600(400/800)", "100符": "1600(400/800)", "110符": "1900(500/900)" }, "1翻": { "20符": "800(200/400)", "25符": "800(200/400)", "30符": "1100(300/500)", "40符": "1500(400/700)", "50符": "1600(400/800)", "60符": "2000(500/1000)", "70符": "2400(600/1200)", "80符": "2700(700/1300)", "90符": "3100(800/1500)", "100符": "3200(800/1600)", "110符": "3600(900/1800)" }, "2翻": { "20符": "1500(400/700)", "25符": "1600(400/800)", "30符": "2000(500/1000)", "40符": "2700(700/1300)", "50符": "3200(800/1600)", "60符": "4000(1000/2000)", "70符": "4700(1200/2300)", "80符": "5200(1300/2600)", "90符": "5900(1500/2900)", "100符": "6400(1600/3200)", "110符": "7200(1800/3600)" }, "3翻": { "20符": "2700(700/1300)", "25符": "3200(800/1600)", "30符": "4000(1000/2000)", "40符": "5200(1300/2600)", "50符": "6400(1600/3200)", "60符": "7900(2000/3900)", "70符": "9100(2300/4500)", "80符": "10400(2600/5200)", "90符": "11600(2900/5800)", "100符": "12800(3200/6400)", "110符": "14300(3600/7100)" }, "4翻": { "20符": "5200(1300/2600)", "25符": "6400(1600/3200)", "30符": "7900(2000/3900)", "40符": "10400(2600/5200)", "50符": "12800(3200/6400)", "60符": "15500(3900/7700)", "70符": "18000(4500/9000)", "80符": "20700(5200/10300)", "90符": "23200(5800/11600)", "100符": "25600(6400/12800)", "110符": "28300(7100/14100)" }, "5翻": { "20符": "10400(2600/5200)", "25符": "12800(3200/6400)", "30符": "15500(3900/7700)", "40符": "20700(5200/10300)", "50符": "25600(6400/12800)", "60符": "30800(7700/15400)", "70符": "36000(9000/18000)", "80符": "41100(10300/20500)", "90符": "46300(11600/23100)", "100符": "51200(12800/25600)", "110符": "56400(14100/28200)" }, "6翻": { "20符": "20700(5200/10300)", "25符": "25600(6400/12800)", "30符": "30800(7700/15400)", "40符": "41100(10300/20500)", "50符": "51200(12800/25600)", "60符": "61600(15400/30800)", "70符": "71900(18000/35900)", "80符": "82000(20500/41000)", "90符": "92300(23100/46100)", "100符": "102400(25600/51200)", "110符": "112800(28200/56400)" }, "7翻": { "20符": "41100(10300/20500)", "25符": "51200(12800/25600)", "30符": "61600(15400/30800)", "40符": "82000(20500/41000)", "50符": "102400(25600/51200)", "60符": "123100(30800/61500)", "70符": "143500(35900/71700)", "80符": "164000(41000/82000)", "90符": "184400(46100/92200)", "100符": "204800(51200/102400)", "110符": "225500(56400/112700)" }, "8翻": { "20符": "82000(20500/41000)", "25符": "102400(25600/51200)", "30符": "123100(30800/61500)", "40符": "164000(41000/82000)", "50符": "204800(51200/102400)", "60符": "245900(61500/122900)", "70符": "286800(71700/143400)", "80符": "327900(82000/163900)", "90符": "368800(92200/184400)", "100符": "409600(102400/204800)", "110符": "450700(112700/225300)" }, "9翻": { "20符": "164000(41000/82000)", "25符": "204800(51200/102400)", "30符": "245900(61500/122900)", "40符": "327900(82000/163900)", "50符": "409600(102400/204800)", "60符": "491600(122900/245800)", "70符": "573600(143400/286800)", "80符": "655500(163900/327700)", "90符": "737500(184400/368700)", "100符": "819200(204800/409600)", "110符": "901200(225300/450600)" }, "10翻": { "20符": "327900(82000/163900)", "25符": "409600(102400/204800)", "30符": "491600(122900/245800)", "40符": "655500(163900/327700)", "50符": "819200(204800/409600)", "60符": "983200(245800/491600)", "70符": "1147100(286800/573500)", "80符": "1310800(327700/655400)", "90符": "1474700(368700/737300)", "100符": "1638400(409600/819200)", "110符": "1802400(450600/901200)" }, "11翻": { "20符": "655500(163900/327700)", "25符": "819200(204800/409600)", "30符": "983200(245800/491600)", "40符": "1310800(327700/655400)", "50符": "1638400(409600/819200)", "60符": "1966300(491600/983100)", "70符": "2293900(573500/1146900)", "80符": "2621600(655400/1310800)", "90符": "2949200(737300/1474600)", "100符": "3276800(819200/1638400)", "110符": "3604700(901200/1802300)" }, "12翻": { "20符": "1310800(327700/655400)", "25符": "1638400(409600/819200)", "30符": "1966300(491600/983100)", "40符": "2621600(655400/1310800)", "50符": "3276800(819200/1638400)", "60符": "3932300(983100/1966100)", "70符": "4587600(1146900/2293800)", "80符": "5243100(1310800/2621500)", "90符": "5898400(1474600/2949200)", "100符": "6553600(1638400/3276800)", "110符": "7209100(1802300/3604500)" }, "13翻": { "20符": "2621600(655400/1310800)", "25符": "3276800(819200/1638400)", "30符": "3932300(983100/1966100)", "40符": "5243100(1310800/2621500)", "50符": "6553600(1638400/3276800)", "60符": "7864400(1966100/3932200)", "70符": "9175200(2293800/4587600)", "80符": "10485900(2621500/5242900)", "90符": "11796700(2949200/5898300)", "100符": "13107200(3276800/6553600)", "110符": "14418000(3604500/7209000)" } } }