pairplay 소개
- pairplay : 보팅 후 /hold, /change 를 통해 1 ~ 30 까지 나온 카드 값을 가지고 대결을 하는 게임 입니다.
- 승리시 보팅을 해주는 가볍게 즐기고, 보팅도 받는 게임이죠
pairplay 카드 카운팅
- 자 도박사들이 자주하는 카드 카운팅, 프로그램으로 함 맞춰보기를 시작합니다 !
- 바로는 할 수 없고 19명 이상 게임에 참여 할 때 딜러의 카드가 뭘까 함 맞춰보는 것이 목표 !
- pairplay 게임방법
덱은 하나(40장)만 사용합니다. 나눠줄 카드가 모두 떨어지게 되면(0장) 다시 새로운 덱을 사용합니다.
- 자 이제 위 룰에 입각하여 카드 카운팅을 해보도록 합니다. ( 시간 순서별 카드 출현 정보를 나열 )
- 18.06.02 round 2 게임 결과
- 핑크 : 중복
- steemitboard : 보팅만 하고 join 하지 않음
- 미출현 해당 댁(40) 장에서 나오지 않은 카드
처음에 딜러부터 카드 2장을 받고 이후 38장의 카드가 플레이어에게 나눠진다고 하면,
흠... 딜러카드가 (h10, h06) 이라 하는데 ... 제 생각에는 c03, h10 이 나와야 되지 않을까 ?
라고 생각하는데 ... 음 카운팅 프로그램이 잘못되었나 ? 나중에 시간되면 나중에 함 봐야 될거 같네요 ... 급조로 함 만들어 본 것인지라 ...
소스
const {getLocalTime} = require('./util/wdate');
const {getInfoFromLink} = require('./util/wsteem');
const steem = require('steem');
const dateFormat = require('dateformat');
let getAuthor = source=>{
return source.split(' ')[0].substr(1);
}
let getCards = source=>{
let results = [];
let startIdx = 0;
let f;
while((f = source.indexOf('![', startIdx))>0){
results.push( source.substr(f+2, 3) );
startIdx = f + 1;
}
return results;
}
let getNum = (c1, c2) =>{
c1 = Number(c1.substr(1));
c2 = Number(c2.substr(1));
if(c1==c2){
return c1*2+10;
}
return (c1+c2)%10;
}
let findCard = arr=>{
// init arr
let marks = ['c','h','s','d']; // 클로버, 하트, 스페이드, 다이아몬드
let cards = {};
for(let i=1;i<=10;i++){
for(let m of marks){
cards[`${m}${i.toString().padStart(2, "0")}`] = 0;
}
}
// marking
for(let item of arr){
delete cards[item.c1];
delete cards[item.c2];
// cards[item.c1] = Number(cards[item.c1])+1;
// cards[item.c2] = Number(cards[item.c2])+1;
}
// show card info
console.log(`카드정보 :`);
console.log(cards);
}
async function load(a, p){
return await steem.api.getContentRepliesAsync(a, p);
}
async function loadAll(link){
let info = getInfoFromLink(link);
let a = info.data.author; // author
let p = info.data.permlink; // permlink
let results = await load(a, p);
let p2;
let p3 = [];
for(let result of results){
if(result.author=='pairplay'){
p2 = result.permlink;
}else if(result.children>0){
p3.push({author:result.author, permlink:result.permlink});
}
}
let cards = []; // {author, created, c1, c2}
// p2 계산 ( depth 1 )
let p2results = await load(a, p2);
for(let result2 of p2results){
// 대댓글은 pairplay1 작성한 1개만 존재, 하지만 하나에 여러줄을 포함할 수 있음
let bodies = result2.body.split('\n');
let created = getLocalTime(result2.created);
for(let body of bodies){
if(body.length>0){
let card = getCards(body);
let author = getAuthor(body);
cards.push({author:author, created:created, c1:card[0], c2:card[1], num:getNum(card[0],card[1]) });
}
}
}
// p3 계산 ( depth 2 )
let p3arr = [];
for(let c of p3){
p3arr.push(load(c.author,c.permlink));
}
let p3results = await Promise.all(p3arr);
for(let result3 of p3results){
// 대댓글은 pairplay 작성한 1개만 존재
let r3 = result3[0];
if(r3.body.indexOf('Changed')>=0){
let card = getCards(r3.body);
let author = getAuthor(r3.body);
cards.push({author:author, created:getLocalTime(r3.created), c1:card[0], c2:card[1], num:getNum(card[0],card[1]) });
}
}
// 정렬
cards.sort((a,b)=>{
return a.created.getTime() - b.created.getTime();
})
// 인덱스 추가
let i = 1;
for(let c of cards){
c.idx = i;
i++;
}
// 19번까지만 추출
let cuts = cards.slice(0,19);
// console.log(cuts);
findCard(cuts);
// 모든 카드 확인용 csv 출력
for(let c of cards){
console.log(`${c.idx},${c.author},${c.c1},${c.c2},${c.num},${dateFormat(c.created,'yyyy-mm-dd HH:MM:ss')}`);
}
}
let link = 'https://steemit.com/pairplay/@pairplay/20180620t045704772z-post';
loadAll(link);
맺음말
- 솔직히
카드 카운팅
해도 별 의미는 없는거 같네여 -_-;어짜피 참여할 거자나 !!😁 - 단순 보팅 - 저자보상 나눠먹기 보다, 흥미진진한 게임요소가 존재하는 게임이 좋죠 !!
- @pairplay ( @clarkgold ) 응원합니다 !! 아자아자 !! 흥해라 ~
우왓~! 카드 카운팅~ 굉장하십니당~ ^^
영화
<21>
떠오르네용~ㅋㅋ'스파'시바(Спасибо스빠씨-바)~!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
저도 예전에 그영화 잼나게 봤었는데 ㅋ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
저도 페어플레이 하면서 이게 궁금했어요. 이제 20번은 해본 거 같은데, 딜러 점수가 6 이하인걸 한번도 본 적 없는 것 같거든요.. 그래서 딜러 카드는 적어도 7점이상이 나오게 뽑는다, 이런 룰이 있지 않을까 했습니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
음... 정확하진 않지만 ... 그럴지도? 하지만 뭐 즐기는 게임이니... 넘 고민은 않해도 될것 같아요
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
pairplay 가 kr-dev 컨텐츠를 응원합니다! :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit