¸¸µé¾îÁø ¼Ò½º¸¦ Â÷±Ù Â÷±ÙÈ÷ ºÐ¼®ÇØ º¸¸é ¾î·ÆÁö ¾Ê°Ô ÀÌÇØ´Â µÉ °ÍÀÌ´Ù. ±×·¯³ª ¼³°èºÎÅÍ ±¸Çö, µð¹ö±ë±îÁö Á÷Á¢ ÇÑ °ÍÀº ¾Æ´Ï¹Ç·Î ºÐ¼®ÀÌ µÈ´Ù°í ÇØ¼ À¯»çÇÑ °ÔÀÓÀ» ¹Ù·Î ¸¸µé ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ½ÇÁ¦ Á¦ÀÛ °úÁ¤¿¡¼´Â ¿¹»óÄ¡ ¸øÇÑ ¹®Á¦¿¡ ºÀÂøÇϱ⵵ Çϰí óÀ½ »ý°¢Çß´ø ¹æ¹ýÀ» ¿ÏÀüÈ÷ ¹ö¸®°í ´Ù½Ã ¸¸µé¾î¾ß ÇÏ´Â °æ¿ìµµ ºó¹øÇÏ´Ù. ±×·¯³ª ¹®Á¦¸¦ Ǫ´Â ÆÐÅϵéÀ» °æÇèÇØ º¸¾Ò°í °´Ã¼ ÁöÇâ ¹®¹ýµéÀÌ ¾î¶»°Ô Àû¿ëµÇ´ÂÁö¸¦ üÇèÇØ º¸¾ÒÀ¸¹Ç·Î ÀÀ¿ë·ÂÀÌ ´Ù¼Ò Çâ»óµÇ¾úÀ» °ÍÀÌ´Ù.
±×·³ ÀÌÁ¦ ºÐ¼®ÇÑ ¼Ò½ºÀÇ ÀÌÇØ¸¦ ¹ÙÅÁÀ¸·Î ÀÀ¿ë·ÂÀ» ¹ßÈÖÇÏ¿© °³ÀÛ ½Ç½ÀÀ» ÇØ º¸ÀÚ. ù ¹öÀüÀº °³ÀÛÀÇ ¿©Áö¸¦ ³²°Ü ³õ±â À§ÇØ ÀϺη¯ ¸î °¡Áö ±â´ÉÀ» Á¦¿ÜÇØ µÎ¾ú´Ù. ¾ÕÀÇ ¼Ò½º¸¦ Àоî¿Â ÈÄ ¹Ýµå½Ã Á÷Á¢ ¶â¾î °íÃÄ °¡¸é¼ ÀÌ ±â´ÉµéÀ» ½Ç½ÀÇØ º¸ÀÚ. ¸¸¾à °³ÀÛ ½Ç½Àµµ ±×³É Àаí Äڵ带 ¹Ù·Î º¸¸é º°·Î ¾òÀ»°Ô ¾ø¾îÁø´Ù. ½ÃÇà Âø¿À¸¦ °ÅÃľ߸¸ °æÇèÀÌ ½×ÀÌ°í ¼ºÃë°¨À» ´À³¥ ¼ö ÀÖ´Ù.
Ç÷¹À̾îÀÇ ÆÐ¿¡ °°Àº Ä«µå 4ÀåÀÌ ÇѲ¨¹ø¿¡ µé¾î¿À¸é ÃÑÅëÀ̶ó°í ÇÏ¸ç ±âº» Á¡¼ö¸¦ ÁÖ°í °ÔÀÓÀº ±×´ë·Î Á¾·áµÈ´Ù. ¸¸¾à ´ã¿ä¿¡ 4ÀåÀÇ °°Àº Ä«µå°¡ ±ò¸®¸é ÀÌ Ä«µå´Â óÀ½ ÆÐ¸¦ µÎ´Â »ç¶÷(¼±)ÀÌ ´Ù °¡Áø´Ù. ÀÌ ±ÔÄ¢Àº °ÔÀÓÀ» Àç¹ÌÀÖ°Ô Çϰųª °íµæÁ¡À» À§ÇØ Á¸ÀçÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ±×´ë·Î µÎ¸é ÆÇÀÌ µ¹Áö ¾Ê±â ¶§¹®¿¡ ¾î¿ ¼ö ¾øÀÌ ¸¶·ÃµÈ °ÍÀÏ »ÓÀÌ´Ù. 4ÀåÀÌ ÇÑÂÊ¿¡ ¸ô¸° ä·Î °ÔÀÓÀ» ÁøÇàÇϸé Àç¹Ì°¡ ¾ø¾îÁö¹Ç·Î ´Ù½Ã ÇÏÀÚ´Â ¶æÀÌ´Ù.
´ã¿ä¿¡ ±ò¸° 4ÀåÀ» óÀ½ µÎ´Â »ç¶÷¿¡°Ô ´Ù Áִ ó¸®´Â °ÔÀÓ ÃʱâÈÀÇ ÀϺÎÀ̸ç Ç÷¹À̾ °³ÀÔÇÒ ¿©Áö°¡ ¾ø´Ù. ÆÐ¸¦ ÆîÄ¡ÀÚ ¸¶ÀÚ »ó´ë¹æÀÌ 4ÀåÀ» ¹ú½á °¡Á® °¡ ¹ö¸®°í ¹Ù´Ú¿¡ 4Àå¹Û¿¡ ¾øÀ¸¸é ¾ó¸¶³ª ±èÀÌ ºüÁö°Ú´Â°¡? ±×·¡¼ ÀÌ ±â´ÉÀº ±¸ÇöÇÏÁö ¸»°í ÇѲ¨¹ø¿¡ °°Àº ÆÐ°¡ 4Àå µé¾î¿ÀÁö ¾Êµµ·Ï ±ÝÁö 󸮸¸ Çϵµ·Ï ÇÏÀÚ. ÀÌ ±â´ÉÀ» ±¸ÇöÇÏ·Á¸é Ä«µå¼Â¿¡ ÇѲ¨¹ø¿¡ µé¾î¿Â °°Àº Ä«µå°¡ ¸î ÀåÀÎÁö Á¶»çÇÒ ¼ö ÀÖ´Â ±â´ÉÀÌ ÇÊ¿äÇÏ´Ù. CCardSet¿¡ ´ÙÀ½ ¸â¹ö ÇÔ¼ö¸¦ Ãß°¡ÇÑ´Ù.
int CCardSet::GetMaxSeries() {
int i,n,m,old=-1;
for (i=0,n=1,m=1;i<Num;i++) {
if (old == Card[i].GetNumber()) {
n++;
m=max(n,m);
} else {
n=1;
old = Card[i].GetNumber();
}
}
return m;
}
Ä«µåÆÐ Àüü¸¦ ¼øÈ¸ÇÏ¸é¼ ¿¬¼ÓµÇ´Â ¼ýÀÚÀÇ ÃÖ´ë°ªÀ» ã´Â´Ù. Ä«µå¼ÂÀº »ðÀÔÇÒ ¶§ºÎÅÍ Á¤·ÄµÇ°í °°Àº ¼ýÀÚµéÀº ¿¬¼ÓµÇ¾î ÀÖÀ¸¹Ç·Î ÃÖ´ë ¿¬¼Ó°ªÀ» °Ë»öÇÏ´Â °ÍÀº ºñ±³Àû ½±´Ù. °¢ ÆÐ¿¡ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇØ º¸¸é ÃÑÅë°ú Èçµé±â Á¶°ÇÀ» ½±°Ô Á¡°ËÇÒ ¼ö ÀÖ´Ù. ÆÐ¸¦ ¼¯´Â ÃʱâÈ ÇÔ¼ö´Â ´ÙÀ½Ã³·³ ¼öÁ¤ÇÑ´Ù.
void Initialize()
{
int i;
for (;;) {
Deck.Reset();
South.Reset();
North.Reset();
Blanket.Reset();
Deck.Shuffle();
for (i=0;i<10;i++) {
South.InsertCard(Deck.Pop());
North.InsertCard(Deck.Pop());
if (i < 8) Blanket.InsertCard(Deck.Pop());
}
if (South.GetMaxSeries()!=4 && North.GetMaxSeries()!=4 && Blanket.GetMaxSeries()!=4)
break;
}
}
¾çÂÊ Ç÷¹À̾î¿Í ´ã¿ä¿¡ ÃÖ´ë ¿¬¼Ó Ä«µå°¡ 4Àå ¹Ì¸¸ÀÌ µÉ ¶§±îÁö ¼¯±â¿Í ¹èºÐÀ» ´Ù½Ã ¹Ýº¹ÇÑ´Ù. ÀÌ ±â´ÉÀ» À§ÇØ Ä«µå¼ÂÀ» ¸®¼ÂÇÏ´Â ÇÔ¼ö¸¦ ¹Ì¸® ¸¸µé¾î µÎ¾ú´Ù. 4ÀåÀÌ ÇÑ ÆÐ¿¡ ¸ô¸®´Â Çö»óÀº ÈçÇÏÁö ¾ÊÀ¸¹Ç·Î ¿Ø¸¸Çϸé ÇÑ ¹ø¿¡ ¼º°øÇÒ °ÍÀÌ°í ±â²¯ÇØ¾ß µÎ ¹ø ¹Ýº¹Çϸé Á¦´ë·Î ¼¯ÀÏ °ÍÀÌ´Ù.
°°Àº Ä«µå¸¦ ¼¼ Àå ¹ÞÀº Ç÷¹À̾î´Â Èçµé±â¸¦ ÇÒ ¼ö ÀÖ´Ù. Èçµé±â´Â ¹«Á¶°Ç Àû¿ëµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó Ç÷¹À̾ °ÔÀÓÀ» ½ÃÀÛÇϱâ Àü¿¡ ¼±¾ðÀ» ÇØ¾ß Çϴµ¥ Á¡¼ö°¡ °öÀýÀÌ µÇ´Â ÀÌÀÍÀÌ ÀÖ±â´Â ÇÏÁö¸¸ »ó´ë¹æ¿¡°Ô ÆÐÀÇ ÀϺθ¦ °ø°³ÇØ¾ß ÇÑ´Ù´Â Á¡¿¡¼´Â ºÒÀÌÀÍÀÌ Àֱ⠶§¹®ÀÌ´Ù. Èçµé±â´Â °ÔÀÓÀÇ È帧¿¡ ¿µÇâÀ» ÁÖÁö´Â ¾ÊÀ¸¸ç °ÔÀÓ Á¾·á ÈÄ Á¡¼ö¸¦ °è»êÇÒ ¶§¸¸ È¿·ÂÀ» ¹ßÈÖÇϹǷΠ¼±¾ðÀÇ ÀÇ¹Ì ÀÌ»óÀº ¾ø´Ù. Èçµé¾ú´Ù´Â °ÍÀ» ¾îµò°¡¿¡ ±â·ÏÇØ ³õ±â¸¸ ÇÏ¸é µÈ´Ù. Á¡¼ö¿Í °ü·ÃµÈ Ŭ·¡½º´Â CPlayerPaeÀ̹ǷΠ¿©±â¿¡ ¸â¹ö º¯¼ö¸¦ Ãß°¡ÇÑ´Ù.
class CPlayerPae : public CCardSet
{
private:
int nGo;
public:
int OldScore;
int bShake;
CPlayerPae(int asx,int asy) : CCardSet(asx,asy) { OldScore=6;nGo=0;bShake=false; }
void Reset() { CCardSet::Reset();OldScore=6;nGo=0;bShake=false; }
....
boolÇüÀÇ bShake ¸â¹ö º¯¼ö¸¦ Ãß°¡ÇßÀ¸¸ç »ý¼ºÀÚ¿Í Reset ÇÔ¼ö¿¡¼ false·Î ÃʱâÈÇÑ´Ù. ÆÐ¸¦ ºÐ¹èÇÑ Á÷ÈÄ¿¡ °°Àº Ä«µå°¡ ¼¼ ÀåÀÎÁö »ìÆìº¸°í Ç÷¹À̾°Ô Èçµé±â¸¦ ÇÒ °ÇÁö Áú¹®À» ÇÑ´Ù. ´Ü, Áú¹®À» Çϱâ Àü¿¡ ¾î¶² Ä«µå°¡ ¼¼ ÀåÀÎÁö¸¦ ¾Ë¾Æ¾ß ÇϹǷΠDrawScreenÀ» È£ÃâÇÏ¿© ȸéÀ» ¸ÕÀú ±×¸®µµ·Ï Çß´Ù. Èçµé±â °¡´É ¿©ºÎ´Â ¾Õ¿¡¼ ¸¸µé¾î ³õÀº GetMaxSeries ÇÔ¼ö¸¸ È£ÃâÇØ º¸¸é ½±°Ô ÆÇº°ÇÒ ¼ö ÀÖ´Ù.
void main()
{
....
randomize();
Initialize();
DrawScreen();
if (South.GetMaxSeries() == 3) {
ch=InputInt("°°Àº Ä«µå°¡ ¼¼ ÀåÀÔ´Ï´Ù. (1:Èçµé±â, 2:±×³É Çϱâ) ",1,2);
if (ch == 1) SouthPae.bShake=true;
}
if (North.GetMaxSeries() == 3) {
ch=InputInt("°°Àº Ä«µå°¡ ¼¼ ÀåÀÔ´Ï´Ù. (1:Èçµé±â, 2:±×³É Çϱâ) ",1,2);
if (ch == 1) NorthPae.bShake=true;
}
for (SouthTurn=true;!Deck.IsEmpty();SouthTurn=!SouthTurn) {
....
Ç÷¹À̾ Èçµé°Ú´Ù´Â Àǻ縦 ¹àÈ÷¸é bShake¸¦ true·Î ¼³Á¤ÇÑ´Ù. ¸¸¾à »ó´ë¹æÀÌ ´Ù¸¥ÂÊ ÄÄÇ»ÅÍ¿¡¼ °ÔÀÓÀ» ÇÏ´Â ³×Æ®¿öÅ© ȯ°æÀ̶ó¸é »ó´ë¹æ¿¡°Ôµµ ¾î¶² Ä«µå·Î Èçµé±â¸¦ Çß´ÂÁö ¾Ë·Á¾ß ÇÒ °ÍÀÌ´Ù. ÀÌ °æ¿ì GetMaxSeries ÇÔ¼ö´Â ¾î¶² Ä«µå°¡ ¼¼ ÀåÀÎÁö¸¦ Á¶»çÇÏ´Â ±â´ÉÀÌ Ãß°¡µÇ¾î¾ß ÇÑ´Ù. ±×·¯³ª ÀÌ °ÔÀÓÀÇ °æ¿ì °°Àº ÄÄÇ»ÅÍ¿¡¼ »ó´ë¹æ ÆÐ¸¦ »·È÷ ´Ù µé¿©´Ù º¸°í ÇÏ´Â °ÔÀÓÀ̶ó ÀÌ ±â´ÉÀº ÀÛ¼ºÇÏÁö ¾Ê¾Ò´Ù. Draw¿¡¼´Â Èçµé¾ú´Ù´Â »ç½ÇÀ» Ãâ·ÂÇØ ³õ´Â´Ù.
void CPlayerPae::Draw() {
....
gotoxy(sx+20,sy);
cout << "Á¡¼ö:" << CalcScore() << "Á¡, " << nGo << "°í "
<< (bShake ? "Èçµë":"");
}
ÇÁ·Î±×·¥Àº Èçµé¾ú´Ù´Â Ç¥½Ä¸¸ ÇÒ »ÓÀÌÁö ÆÇµ·À» µÎ ¹è ¡¼öÇÏ´Â °Í±îÁö´Â ó¸®ÇÏÁö ¾Ê´Â´Ù. ÀÌ °ÔÀÓÀº ÆÇµ·ÀÇ °³³äÀÌ ¾Æ¿¹ ¾ø´Â Ä£¼± °ÔÀÓÀÏ »ÓÀ̹ǷΠÆÇµ·À» °è»êÇÏ´Â °ÍÀº ÄÄÇ»ÅÍ ¹Ù±ùÀÇ Ç÷¹À̾îµéÀÌ ¾Ë¾Æ¼ ÇØ¾ß ÇÑ´Ù.
Èçµé±â¿Í ºñ½ÁÇÑ °³³äÀ¸·Î ÆøÅºÀ̶ó´Â °Íµµ Àִµ¥ ¼¼ ÀåÀ» ÇѲ¨¹ø¿¡ ³»´Â °ÍÀ̸ç Èçµé±â¿Í ¸¶Âù°¡Áö·Î Á¡¼ö´Â µÎ ¹è°¡ µÈ´Ù. ÀÌ ±â´Éµµ ±¸ÇöÇÏÀÚ¸é ¾î·ÆÁö ¾ÊÁö¸¸ ÆøÅºÀ» Çϸé Ç÷¹À̾î Ä«µå°¡ ÇѲ¨¹ø¿¡ ¼¼ ÀåÀÌ »ç¶óÁö¹Ç·Î ÀÌ ÈÄ µÎ ¹øÀº Ä«µå¸¦ ³»Áö ¾Ê°í µ¥Å©¸¸ µÚÁýÀ» ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÑ´Ù. ¼ýÀÚ۷θ¸ ´ëÈÇÏ´Â ÇöÀçÀÇ ¹æ½Ä¿¡¼´Â ±¸ÇöÇϱ⿡ ¹«¸®°¡ µû¸£¹Ç·Î ÀÌ ±â´ÉÀº ±¸ÇöÇÏÁö ¾Ê±â·Î ÇÑ´Ù.
°í½ºÅé¿¡´Â ½ÖÇÇ ±â´ÉÀÌ ÀÖ¾î DÇÇ, BÇÇ´Â ÇÇ µÎ ÀåÀ¸·Î Ãë±ÞÇÑ´Ù. ±×·¡¼ ÀÌ Ä«µå´Â ´Ù¸¥ ¾î¶² Ä«µåº¸´Ù ´õ ŽÀÌ ³ª´Â Ä«µåÀ̸ç Çϳª¸¸ ¸Ô¾îµµ ¿ØÁö ¹è°¡ ºÎ¸¥ ´À³¦ÀÌ µé¾î Ç÷¹À̾ ±âºÐ ÁÁ°Ô ÇÑ´Ù. 9½Ê Ä«µåµµ ¼±Åÿ¡ µû¶ó ½ÖÇÇ·Î »ç¿ëÇÒ ¼ö ÀÖ°í ¾î¶² ÈÅõ¿¡´Â ¾²¸®ÇDZîÁö Àִµ¥ ÀÌ·± ±â´ÉÀº ÀÏ´Ü Á¦¿ÜÇÏ°í µÎ °³ÀÇ ½ÖÇÇ ±â´É¸¸ ±¸ÇöÇØ º¸ÀÚ.
½ÖÇÇ´Â ÀÏ¹Ý Çǿʹ Á¡¼ö °è»ê ¹æ½ÄÀÌ ºÐ¸íÈ÷ ´Ù¸£°í ¶Ç Ç÷¹À̾ º¼ ¶§µµ ÀÏ¹Ý Çǿʹ ±¸ºÐµÇ¾î¾ß ÇÑ´Ù. D Ä«µå´Â ÀÏ¹Ý ÇÇ¿Í ½Ö Çǰ¡ °°ÀÌ ÀÖÀ¸¹Ç·Î ´ã¿ä¿¡ µÎ ÀåÀÌ ±ò·ÈÀ» ¶§ ¾î¶² Ä«µå°¡ ½ÖÇÇÀÎÁö ¾Ë ¼ö ÀÖ¾î¾ß Ç÷¹À̾ ÇÕ¸®ÀûÀÎ ¼±ÅÃÀ» ÇÒ ¼ö ÀÖ´Ù. ±×·¡¼ ÀÏ¹Ý ÇÇ·Î Ãë±ÞÇ쵂 Á¡¼ö¸¦ °è»êÇÒ ¶§¸¸ 2ÀåÀ¸·Î Ãë±ÞÇÏ´Â ²Ç¼ö·Î´Â ¹®Á¦¸¦ ±ò²ûÇÏ°Ô ÇØ°áÇÒ ¼ö ¾øÀ¸¸ç ½ÖÇÇ´Â ¾Æ¿¹ º°µµÀÇ Ä«µå Á¾·ù·Î Ãë±ÞÇØ¾ß ÇÑ´Ù. ½ÖÇÇ´Â Ä«µå Á¾·ù¿¡ '½Ö'À̶ó´Â ±ÛÀÚ¸¦ ºÎ¿©Çϰí GetKind ÇÔ¼ö°¡ ÀÌ Á¾·ùÀÇ Ä«µåµµ ÀνÄÇϵµ·Ï ¼öÁ¤ÇÑ´Ù.
struct SCard
{
int GetKind() const {
if (strcmp(Name+1,"±¤")==0) return 0;
else if (strcmp(Name+1,"½Ê")==0) return 1;
else if (strcmp(Name+1,"¿À")==0) return 2;
else if (strcmp(Name+1,"½Ö")==0) return 3;
else return 4;
}
....
½ÖÇÇÀÇ °ªÀ» ÀϹÝÇǺ¸´Ù ´õ ÀÛ°Ô ÇÔÀ¸·Î½á Á¤·ÄÇÒ ¶§ ½ÖÇǰ¡ ÀϹÝÇǺ¸´Ù ´õ ¾ÕÂÊ¿¡ ¿Àµµ·Ï Çß´Ù. GetKind°¡ µÎ Á¾·ùÀÇ ÇǸ¦ ±¸ºÐÇϹǷΠ< ¿¬»êÀÚ´Â ¼öÁ¤ÇÒ ÇÊ¿ä¾øÀ¸¸ç µû¶ó¼ Ä«µå¸¦ Á¤·ÄÇÏ´Â ¸ðµç ÇÔ¼öµéµµ º°µµÀÇ ¼öÁ¤¾øÀÌ ½ÖÇǸ¦ ÀνÄÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ÈÅõ ±¸¼ºÇ¥¸¦ ¼öÁ¤ÇÏ¿© µÎ °³ÀÇ Ä«µå¸¦ ½ÖÇÇ·Î ¸¸µç´Ù.
SCard HwaToo[MaxCard]={
"1±¤","1¿À","1ÇÇ","1ÇÇ","2½Ê","2¿À","2ÇÇ","2ÇÇ","3±¤","3¿À","3ÇÇ","3ÇÇ",
"4½Ê","4¿À","4ÇÇ","4ÇÇ","5½Ê","5¿À","5ÇÇ","5ÇÇ","6½Ê","6¿À","6ÇÇ","6ÇÇ",
"7½Ê","7¿À","7ÇÇ","7ÇÇ","8±¤","8½Ê","8ÇÇ","8ÇÇ","9½Ê","9¿À","9ÇÇ","9ÇÇ",
"J½Ê","J¿À","JÇÇ","JÇÇ","D±¤","D½Ö","DÇÇ","DÇÇ","B±¤","B½Ê","B¿À","B½Ö"
};
"D½Ö", "B½Ö"À̶ó´Â Ä«µå µÎ °³°¡ »õ·Î »ý°å´Ù. Ç÷¹À̾î¿Í ´ã¿ä´Â Ä«µå ¹®ÀÚ¿À» ÀÖ´Â ±×´ë·Î Ãâ·ÂÇϱ⸸ ÇϹǷΠº°´Ù¸¥ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù. ¸ÔÀº ÆÐ´Â Ä«µå Á¾·ùº°·Î Ãâ·Â À§Ä¡°¡ ´Þ¶óÁö´Âµ¥ ½ÖÇÇ¿Í ÀϹÝÇǸ¦ °°ÀÌ Ãâ·ÂÇϱâ À§ÇØ ¾à°£ÀÇ ¼öÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. Draw ÇÔ¼ö¿¡ ´ÙÀ½ Á¶°Ç¹® Çϳª¸¸ Ãß°¡ÇÑ´Ù.
void CPlayerPae::Draw() {
int i,kind;
int x[4]={sx,sx,sx,sx},py=sy+3;
for (i=0;i<Num;i++) {
kind=Card[i].GetKind();
if (kind >= 3) kind=3;
if (kind < 3) {
....
GetKind·Î Á¶»çÇÑ Ä«µå Á¾·ù°¡ 3, 4¹øÀÏ °æ¿ì µÑ ´Ù 3¹øÀ¸·Î °Á¦ Á¶Á¤ÇÔÀ¸·Î½á µÎ Á¾·ùÀÇ Ä«µå°¡ 3¹ø ÁÙ¿¡ ³ªÅ¸³ªµµ·Ï Çß´Ù. Á¡¼ö¸¦ °è»êÇÏ´Â ÇÔ¼öµµ ¾à°£ ¼öÁ¤ÇØ¾ß Çϴµ¥ »ý°¢º¸´Ù´Â °£´ÜÇÏ´Ù.
int CPlayerPae::CalcScore() {
int i,kind,n[4]={0,};
int NewScore;
static int gscore[]={0,0,0,3,4,15};
for (i=0;i<Num;i++) {
kind=Card[i].GetKind();
if (kind == 3) n[kind]++;
if (kind >= 3) kind=3;
n[kind]++;
}
....
½ÖÇǰ¡ ³ªÅ¸³ª¸é ÇÇ °³¼ö¸¦ ÀÏ´Ü ÇÑ ¹ø Áõ°¡½ÃÄÑ ³õ´Â´Ù. ±×¸®°í ÀϹÝÇÇ¿Í ½ÖÇǸ¦ ¸ðµÎ 3¹øÀ¸·Î ¸¸µé¾î µÎ°í ¿ø·¡ÀÇ Äڵ带 ½ÇÇàÇÑ´Ù. ½ÖÇÇ´Â Áߺ¹Çؼ °è»êµÇ¹Ç·Î ³ªÅ¸³¯ ¶§¸¶´Ù µÎ ÀåÀÇ Çǰ¡ ÀÖ´Â °ÍÀ¸·Î °è»êµÉ °ÍÀÌ´Ù. ±× ¿Ü ´Þ¶óÁ®¾ß ÇÒ ºÎºÐÀº ¾ø´Ù. º¸´Ù½ÃÇÇ Á¶±Ý¸¸ ±Ã¸®ÇØ º¸¸é ¾à°£ÀÇ ¼ÕÁú¸¸À¸·Îµµ ¿øÇÏ´Â ¸ñÀûÀ» ´Þ¼ºÇÒ ¼ö ÀÖ´Ù.
Á¡¼ö¸¦ °è»êÇÏ´Â ¹æ¹ýÀ̳ª ÇǸ¦ Ãâ·ÂÇÏ´Â ¹æ¹ýÀº ±×´ÙÁö ¾î·ÆÁö ¾Ê´Ù. ±×·¯³ª ½ÖÇÇÀÇ °³³äÀÌ µé¾î°¨À¸·Î½á °ñÄ¡ ¾ÆÆÄÁö´Â ¹®Á¦°¡ Àִµ¥ ¹Ù·Î »ó´ë¹æÀÇ ÇǸ¦ °¡Á®¿À´Â ºÎºÐÀÌ´Ù. ½ÖÇÇÀÇ °³³äÀÌ ¾øÀ» ¶§´Â »¯¾î¿Ã °³¼ö¸¸Å Á¦°ÅÇÏ°í ³» ÆÐ¿¡ »ðÀÔÇϱ⸦ ¹Ýº¹ÇÏ¸é ±×¸¸ÀÌ´Ù. Çǰ¡ ¾øÀ¸¸é ºó Ä«µå¶óµµ ´øÁ®ÁÜÀ¸·Î½á ¿¡·¯ 󸮱îÁö ÀÚ¿¬½º·´°í ¿Ïº®ÇÏ°Ô ¼öÇàÇß¾ú´Ù.
±×·¯³ª ½ÖÇǰ¡ µé¾î°¡¸é ÇÑÀ徿 ²¨³» »ðÀÔÇÏ´Â ¹æ½ÄÀ» ¾µ ¼ö ¾ø´Ù. »¯¾î¿Ã ÇÇÀÇ °³¼ö¿¡ µû¶ó Á¶ÇÕÀÌ ´Ù¾çÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ Ã¹ ¹øÂ° ¹®Á¦°í ÇÇÀÇ °³¼ö°¡ ½ÇÁ¦ À̵¿µÇ´Â Ä«µåÀÇ °³¼ö¿Íµµ ¸ÂÁö ¾Ê´Ù´Â °ÍÀÌ µÎ ¹øÂ° ¹®Á¦ÀÌ´Ù. ÀÌ·± ¹®Á¦°¡ ¹ß»ýÇÏ´Â ±Ùº»ÀûÀÎ ÀÌÀ¯´Â ½ÖÇǸ¦ ¹Ý¾¿ Âɰ¶ ¼ö ¾ø±â ¶§¹®Àε¥ °í½ºÅé ±ÔÄ¢¿¡ ÇÇ ÇÑÀåÀ» °¡Á®¿Ã ¶§ »ó´ë¹æÀÌ ½ÖÇǹۿ¡ ¾ø´Ù¸é ½ÖÇǸ¦ ±×³É °¡Á®¿Àµµ·Ï µÇ¾î ÀÖ´Ù. °Å½º¸§ÇǸ¦ Áشٰųª ÇÏ´Â ±ÔÄ¢Àº ¾ø´Ù. ÇÇ 3 ÀåÀ» ¿ä±¸ÇßÀ» ¶§ °¡Áø ÇÇ¿¡ µû¶ó ´ÙÀ½ ±ÔÄ¢´ë·Î ÇǸ¦ ³» Áà¾ß ÇÑ´Ù.
¼¼ ÀåÀÇ ÇǸ¦ °¡Áö°í ÀÖ´Ù¸é ÀÌ´ë·Î ÁÖ¸é µÈ´Ù. ½ÖÇÇ Çϳª¿Í ÀϹÝÇÇ µÎ ÀåÀÌ ÀÖ´Ù¸é ½ÖÇǸ¦ ¸ÕÀú ÁÖ°í ÇÇ ÇÑÀåÀ» Áà¾ß ÇÑ´Ù. ÇÇ µÎ ÀåÀ» ÀÏ´Ü Áà ¹ö¸®°í ´õ ÁÙ°Ô ¾ø¾î¼ ½ÖÇǸ¦ »¯±ä´Ù¸é ÀÌ´Â ¹«Ã´ ¾î¸®¼®Àº ÇൿÀÌ µÉ °ÍÀÌ´Ù. ½ÖÇǸ¸ µÎ Àå ÀÖ´Ù¸é À̶§´Â ¾î¿ ¼ö ¾øÀÌ µÑ ´Ù ÁÙ ¼ö¹Û¿¡ ¾øÁö¸¸ ÀϹÝÇǵµ Çϳª ÀÖ´Ù¸é ½ÖÇÇ Çϳª¸¦ ÁÖÁö ¾Ê¾Æµµ »ó°ü¾ø´Ù. ¿ä±¸ÇÑ ÇǺ¸´Ù ´õ ÀÛÀº ¼ö¸¸ ÀÖ´Ù¸é À̶§´Â ¾î¿ ¼ö ¾øÀÌ ÁË´Ù Åоî Áà¾ß ÇÑ´Ù. ÀÌ ¿¹¿¡¼ º¸´Ù½ÃÇÇ ¿ä±¸°¡ µé¾î¿ÔÀ» ¶§ ¾î¶² ÇǸ¦ ¿ì¼±ÀûÀ¸·Î ³» ÁÙ Áö °áÁ¤ÇÏ´Â ÀϹÝÀûÀÎ ±ÔÄ¢À» ã±â°¡ ½±Áö ¾Ê´Ù.
µÎ ¹øÂ° ¹®Á¦´Â »¯¾î¿À´Â ÇÇÀÇ ¼ö°¡ Ä«µåÀÇ ¼ö¿Í ´Ù¸¦ ¼ö ÀÖ´Ù´Â Á¡Àε¥ ±×·¡¼ RemovePee°¡ Á¦°ÅÇÑ Ä«µå¸¦ °ð¹Ù·Î InsertCard·Î »ó´ë¹æÀÇ ÆÐ¿¡ »ðÀÔÇÏ´Â Æí¸®ÇÑ ¹æ¹ýÀ» ¾µ ¼ö ¾ø´Ù. °á±¹ ÀÌ ¹®Á¦¸¦ Ç®·Á¸é RemovePee ÇÔ¼ö°¡ Á¦°ÅÇÒ ÇÇ °³¼ö¿¡ ¸Â°Ô ÃÖ¼Ò ºñ¿ëÀÇ Ä«µå Á¶ÇÕÀ» ¼±ÅÃÇÏ´Â ´É·ÂÀÌ ÀÖ¾î¾ß ÇÏ¸ç ¼±ÅÃµÈ Á¶ÇÕÀÇ Ä«µå °³¼ö¸¸Å InsertCard ÇÔ¼ö¸¦ µû·Î È£ÃâÇØ¾ß ÇÑ´Ù. RemovePee ÇÔ¼ö´Â ¿øÇüµµ ¹Ù²î°í º»Ã¼µµ ¿Õâ ¹Ù²ï´Ù.
int CPlayerPae::RemovePee(int n,SCard *pCard) {
int ns=0,np=0,tp;
int i,idx,num=0;
SCard *p=pCard;
for (i=0;i<Num;i++) {
if (Card[i].GetKind() == 3) ns++;
if (Card[i].GetKind() == 4) np++;
}
tp=ns+np;
if (tp == 0) return 0;
switch (n) {
case 1:
if (np != 0) {
*p++=RemoveCard(FindFirstCard("ÇÇ"));
return 1;
} else {
*p++=RemoveCard(FindFirstCard("½Ö"));
return 1;
}
break;
case 2:
if (ns != 0) {
*p=RemoveCard(FindFirstCard("½Ö"));
return 1;
} else {
*p++=RemoveCard(FindFirstCard("ÇÇ"));
num=1;
if (np >= 2) {
*p++=RemoveCard(FindFirstCard("ÇÇ"));
num=2;
}
return num;
}
case 3:
i=RemovePee(2,p);
p+=i;
idx=RemovePee(1,p);
return i+idx;
default:
return 0;
}
}
¿ä±¸ÇÏ´Â ÇÇ °³¼ö¸¦ ù ¹øÂ° Àμö·Î Àü´Þ¹Þ°í ¼±ÅÃµÈ Ä«µåÀÇ ¸ñ·ÏÀº µÎ ¹øÂ° ¹è¿¿¡ ä¿ì¸ç ¸®ÅϰªÀ¸·Î ¹è¿¿¡ ¸î °³ÀÇ Ä«µå°¡ µé¾î°¬´ÂÁö¸¦ µ¹·ÁÁØ´Ù. È£ÃâÃø¿¡¼´Â ÀÌ ÇÔ¼öÀÇ ¸®Åϰª¸¸Å ·çÇÁ¸¦ µ¹¸ç InsertCard¸¦ È£ÃâÇÒ °ÍÀÌ´Ù. ¾ÆÁÖ ÀϹÝÀûÀ¸·Î ÀÛ¼ºÇÏ·Á¸é ¿ä±¸µÈ °³¼ö¿¡ µû¶ó ½ÖÇÇ¿Í ÀϹÝÇÇÀÇ ¿ì¼± ¼øÀ§¸¦ Á¤ÇÏ°í °³¼ö¸¦ ä¿ì°Å³ª Çǰ¡ ¹Ù´Ú³¯ ¶§±îÁö ÆÛ ÁÖ´Â Äڵ带 ÀÛ¼ºÇØ¾ß ÇÑ´Ù. ÀÌ ¹æ¹ýÀº °¡´ÉÇϱâ´Â ÇÏÁö¸¸ ½ÇÁ¦·Î Äڵ带 ÀÛ¼ºÇØ º¸¸é »ó»ó ÀÌ»óÀ¸·Î º¹ÀâÇÑ ¾Ë°í¸®ÁòÀ» ¿ä±¸ÇÑ´Ù. ±×·¡¼ ÀϹÝȸ¦ Æ÷±âÇÏ°í ¿ä±¸ ¼öÀÇ ÃÖ´ë°ªÀÌ 3¹Û¿¡ ¾ÈµÈ´Ù´Â Á¡À» Ȱ¿ëÇÏ¿© »ç¶÷ÀÇ »ç°í ¹æ½Ä°ú À¯»çÇÑ Äڵ带 ÀÛ¼ºÇß´Ù.
ÀÌ ÇÔ¼öÀÇ ÄÚµå´Â »ó´çÈ÷ ½¬¿î ÆíÀ̶ó ÀÐÀ¸¸é ¸»·Î ±×´ë·Î Ç®À̰¡ µÈ´Ù. ¸ÕÀú ns¿¡ ½ÖÇÇÀÇ °³¼ö, np¿¡ ÀϹÝÇÇÀÇ °³¼ö¸¦ ±¸ÇØ ³õ°í tp¿¡ ÇÇÀÇ Àüü °³¼ö¸¦ ±¸ÇØ ³õ´Â´Ù. ¸¸¾à tp°¡ 0À̸é ÁÙ °Ô ¾øÀ¸¹Ç·Î ¹è°¶ó´Â Àǹ̷Π0À» ¸®ÅÏÇÑ´Ù. ÁÙ °Ô ÀÖ´Ù¸é ¿ä±¸µÈ °³¼ö¿¡ µû¶ó °³º°ÀûÀ¸·Î ó¸®ÇÑ´Ù. 1°³ÀÇ ÇǸ¦ ÁÖ¾î¾ß ÇÑ´Ù¸é ¸ÕÀú ÀϹÝÇǰ¡ ÀÖ´ÂÁö »ìÆìº¸°í ÀÖ´Ù¸é ±× Ä«µå¸¦ ¹è¿¿¡ ä¿ì°í 1À» ¸®ÅÏÇÑ´Ù. ½ÖÇǺ¸´Ù´Â ÀϹÝÇǰ¡ ¿ì¼±ÀÌ´Ù. ¾Æ¸¶ ´ëºÎºÐÀÇ °æ¿ì°¡ ¿©±â¿¡ ÇØ´çµÉÅÙµ¥ ÇÇ ÇÑ ÀåÀ» ´øÁ® ÁÖ¸ç ¿¾´Ù °¡Á®°¡¶ó ÇÏ´Â ½ÄÀÌ´Ù.
¸¸¾à ÀϹÝÇǰ¡ ¾ø´Ù¸é ½ÖÇǰ¡ ÀÖ´Ù´Â ¾ê±âÀ̹ǷΠelse¹®¿¡ ½ÖÇÇÀÇ Á¸Àç ¿©ºÎ¸¦ Á¡°ËÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¿©±â±îÁö ¿Ô´Ù´Â °ÍÀº tp°¡ 0ÀÌ ¾Æ´Ï¶ó´Â Á¶°ÇÀÌ ¼º¸³µÇ¾î¼ ½ÖÇdzª ÀϹÝÇÇ Áß Àû¾îµµ Çϳª´Â ÀÖÀ½À» È®½ÅÇÒ ¼ö ÀÖ´Ù. À̶§´Â ¾Æ±î¿öµµ ÀÌ ½ÖÇǸ¦ ÁÙ ¼ö¹Û¿¡ ¾ø´Ù. ¸®ÅϰªÀº ¿©ÀüÈ÷ 1Àε¥ ½ÖÇÇÁö¸¸ »ó´ëÆí Ä«µå¿¡ »ðÀÔÇÒ Ä«µå´Â ÇÑ Àå»ÓÀÌ´Ù. ½ÇÁ¦ °í½ºÅé °ÔÀÓÁß¿¡ ³»°¡ ÇÇ ÇÑÀåÀ» Áà¾ß ÇÒ »óȲÀ̶ó¸é Á¤È®ÇÏ°Ô ÀÌ ¼ø¼´ë·Î ÆÇ´Ü ¹× ÇൿÀ» Çϴµ¥ »ç¶÷ÀÇ µ¿ÀÛÀ» ÄÚµå·Î ±×´ë·Î ¿Å±ä °ÍÀÌ´Ù.
ÇÇ µÎ ÀåÀ» ¿ä±¸ÇÒ ¶§´Â ½ÖÇǸ¦ ¿ì¼±ÀûÀ¸·Î º¸°í ½ÖÇǰ¡ ÀÖÀ¸¸é ÇÑÀ常 ´øÁ® ÁØ´Ù. ½ÖÇǰ¡ ¾ø´Ù¸é ÀϹÝÇǸ¦ ÁÖµÇ ÀÏ´Ü ÇÑ ÀåÀº ¹«Á¶°Ç ÀÖÀ¸¹Ç·Î ÇÑ ÀåÀ» ÁÖ°í ´õ ÁÙ°Ô ÀÖ´ÂÁö Á¡°ËÇÑ ÈÄ ÀÖ´Ù¸é ÁÖ°í ¾ø´Ù¸é ¾î¿ ¼ö ¾øÀÌ ÇÑ À常 ÁØ Ã¤·Î ±×³É ¸®ÅÏÇÑ´Ù. ÇÇ ¼¼ ÀåÀ» ÁÙ ¶§ÀÇ Ã³¸®´Â »ó´ëÀûÀ¸·Î °£´ÜÇÏ´Ù. µÎ Àå ¸ÕÀú ÁÖ°í ÇÑ ÀåÀ» ´õ ÁÖ¸é µÈ´Ù. ÀÏÁ¾ÀÇ Àç±Í È£ÃâÀÎ ¼ÀÀε¥ ÇÑ Àå, µÎ ÀåÀ» ÁÖ´Â ³í¸®°¡ È®½ÇÇϹǷΠµÎ È£ÃâÀ» Á¶ÇÕÇϱ⸸ ÇÏ¸é µÈ´Ù. 4Àå ÀÌ»óÀº ½ÇÁ¦·Î´Â ¹ß»ýÇÒ ¼ö ¾øÀ¸¹Ç·Î 0À» ¸®ÅÏÇÏ¿© ¿ä±¸¸¦ ¹¬»ìÇÑ´Ù.
RemovePee ÇÔ¼ö°¡ ¿©·¯ ÀåÀÇ ÇǸ¦ ÇѲ¨¹ø¿¡ Á¦°ÅÇÏ°í ±× Á¶ÇÕÀ» ¹è¿¿¡ ä¿ö ¸®ÅÏÇϹǷΠ»¯Àº Ä«µå¸¦ ¿Å±â´Â ºÎºÐµµ ¼öÁ¤µÇ¾î¾ß ÇÑ´Ù. mainÀÇ ÇÇ À̵¿ Äڵ带 ´ÙÀ½°ú °°ÀÌ ¿ÏÀüÈ÷ ÀçÀÛ¼ºÇÑ´Ù. ÂüÁ¶ È£ÃâÀ» ÇϹǷΠÃÖ¼ÒÇÑ Å©±â 3 ÀÌ»óÀÇ SCard Áö¿ª ¹è¿ÀÌ ¼±¾ðµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.
SCard arPee[3];
int nPee;
nPee=OtherPae->RemovePee(nSnatch,arPee);
for (i=0;i<nPee;i++) {
TurnPae->InsertCard(arPee[i]);
}
RemovePee¸¦ È£ÃâÇÏ¿© nSnatch¸¸Å »ó´ë¹æÀÇ ÇǸ¦ Á¦°ÅÇϰí arPee¿¡ ±â·ÏµÈ Ä«µå¸¦ ¸®ÅÏµÈ °³¼ö¸¸Å ÀÚ½ÅÀÇ ÆÐ¿¡ »ðÀÔÇÑ´Ù. ÇÇ 2 ÀåÀ» ¿ä±¸ÇßÀ» ¶§ Á¦°ÅµÇ´Â Ä«µå °³¼ö°¡ ¹Ýµå½Ã 2°¡ ¾Æ´Ï¹Ç·Î RemovePee°¡ ¸®ÅÏÇÏ´Â Ä«µå °³¼ö¸¸Å¸¸ »ðÀÔÇØ¾ß ÇÑ´Ù. Äڵ带 ¸¸µé¾úÀ¸¸é ÀÌ Äڵ尡 Á¦´ë·Î µ¿ÀÛÇÏ´ÂÁö Å×½ºÆ®ÇØ¾ß Çϴµ¥ Çǰ¡ À̵¿µÇ´Â »óȲÀº ÀÚÁÖ ¹ß»ýÇÏÁö ¾Ê±â ¶§¹®¿¡ Å×½ºÆ®ÇϱⰡ ¾ÆÁÖ ¾î·Æ´Ù. ÀÌ·² ¶§´Â Àӽà Å×½ºÆ® Äڵ带 ÀÛ¼ºÇÏ¿© Àß À̵¿ÇÏ´ÂÁö Á¡°ËÇØ º»´Ù.
sprintf(Mes,"³»°í ½ÍÀº ÈÅõ¸¦ ¼±ÅÃÇϼ¼¿ä(1~%d,0:Á¾·á) ",Turn->GetNum());
ch=InputInt(Mes,0,Turn->GetNum());
if (ch >= 1 && ch <= 3) {
nPee=OtherPae->RemovePee(ch,arPee);
for (i=0;i<nPee;i++) {
TurnPae->InsertCard(arPee[i]);
}
SouthTurn = !SouthTurn;
continue;
}
1~3±îÁöÀÇ Å° ÀÔ·ÂÀ» ÇǸ¦ °Á¦·Î »¯¾î¿À´Â ÄÚµå·Î Àá½Ã ¿ëµµ¸¦ ¹Ù²Ù¾î Çǰ¡ Àß À̵¿ÇÏ´ÂÁö Å×½ºÆ®ÇØ ºÃ´Ù. ¹®Á¦°¡ ÀÖ´Ù¸é ¼öÁ¤Çϰí Å×½ºÆ®°¡ ³¡³ª¸é ÀÌ ÄÚµå´Â »èÁ¦ÇÑ´Ù.
´ÙÀ½Àº Çǹڰú ±¤¹Ú ±â´ÉÀ» Ãß°¡ÇØ º¸ÀÚ. À̱äÂÊÀÌ ÇÇ·Î Á¡¼ö¸¦ ȹµæÇߴµ¥ ÁøÂÊÀÇ Çǰ¡ 5Àå ¹Ì¸¸ÀÏ ¶§¸¦ ÇǹÚÀ̶ó°í ÇÑ´Ù. ÇǹÚÀ» ´çÇÑ Ç÷¹À̾î´Â »ó´ë¹æÀÇ Á¡¼ö¸¦ 2¹èÇØ¼ ÆÇµ·À» ¹°¾î¾ß ÇϹǷΠÆÇÀ» Ű¿ì´Â ¿ªÇÒÀ» ÇÏ¸ç °ÔÀÓÀÇ ±äÀåµµ¸¦ ³ôÀÌ´Â ¾ÆÁÖ Àç¹ÌÀÖ´Â ±ÔÄ¢ÀÌ´Ù. ´Ü, »ó´ë¹æÀÌ ÇǸ¦ Çϳªµµ ¾òÁö ¸øÇß´Ù¸é À̶§´Â ¿¹¿ÜÀûÀ¸·Î ÇǹÚÀÌ ¾Æ´Ï¶ó´Â ±ÔÄ¢ÀÌ ÀÖ´Ù. ±×·±µ¥ ¿øÄ¡ ¾Ê¾Æµµ Çǰ¡ µé¾î¿À´Â °æ¿ì°¡ ÀÖ¾î ÇǾøÀÌ ÇǹÚÀ» ¸éÇÏ´Â °Íµµ ½±Áö°¡ ¾Ê´Ù.
±¤¹ÚÀº À̱ä ÂÊÀÌ ±¤À¸·Î Á¡¼ö¸¦ ȹµæÇߴµ¥ ÁøÂÊÀº ±¤À» Çϳªµµ °¡ÁöÁö ¸øÇßÀ» ¶§ÀÌ´Ù. µ¶¹ÚÀº Á¡¼ö¸¦ ´õ ¾òÀ» ¼ö ÀÖÀ» °Í °°¾Æ °í¸¦ ºÒ·¶´Âµ¥ Ãß°¡ Á¡¼ö ȹµæ¿¡ ½ÇÆÐÇÑ °æ¿ìÀÌ´Ù. ¼¼ ±ÔÄ¢ ¸ðµÎ °ÔÀÓ ÁøÇà¿¡´Â ¿µÇâÀ» ¹ÌÄ¡Áö ¾ÊÀ¸¸ç °ÔÀÓÀÌ ³¡³ ÈÄ ÆÇµ·À» °è»êÇÒ ¶§¸¸ ¿µÇâÀ» ¹ÌÄ¡¹Ç·Î °ÔÀÓÀÌ ³¡³ ÈÄ ·çÇÁ ¹Ù±ù¿¡¼ ÇÁ·Î±×·¥ Á¾·á Á÷Àü¿¡ ÆÇº°¸¸ ÇÏ¸é µÈ´Ù. ÆÇµ·À» °öÀý·Î ¹Þ´Â °ÍÀº Ç÷¹À̾ ¾Ë¾Æ¼ ÇÒ ÀÏÀÌ´Ù. for ·çÇÁ ¹Ù±ù¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÑ´Ù.
CPlayer *LastGo=NULL;
for (SouthTurn=true;!Deck.IsEmpty();SouthTurn=!SouthTurn) {
....
if (InputInt("Ãß°¡ Á¡¼ö¸¦ ȹµæÇß½À´Ï´Ù.(0:½ºÅé, 1:°è¼Ó)",0,1)==1) {
TurnPae->OldScore=NewScore;
TurnPae->IncreaseGo();
LastGo=Turn;
} else {
break;
}
}
DrawScreen();
// ½ÂºÎ¿Í ÇǹÚ, ±¤¹Ú, µ¶¹Ú ¿©ºÎ¸¦ ÆÇÁ¤ÇÑ´Ù.
bool SouthWin;
int SouthScore,NorthScore;
int TurnPee=0,TurnLight=0,OtherPee=0,OtherLight=0;
if (Deck.IsEmpty()) {
if (LastGo != NULL) {
SouthWin = (LastGo == &North);
} else {
SouthScore=SouthPae.CalcScore();
NorthScore=NorthPae.CalcScore();
if (SouthScore < 7 && NorthScore < 7) {
OutPrompt("¾çÂÊ ¸ðµÎ ±âº» Á¡¼ö¸¦ ¾òÁö ¸øÇØ ºñ°å½À´Ï´Ù.");
return;
}
SouthWin=(SouthScore > NorthScore);
}
} else {
SouthWin=SouthTurn;
}
sprintf(Mes,"%s±ºÀÌ À̰å½À´Ï´Ù. ", SouthWin ? "³²":"ºÏ");
if (SouthWin) {
TurnPae=&SouthPae;
OtherPae=&NorthPae;
} else {
TurnPae=&NorthPae;
OtherPae=&SouthPae;
}
for (i=0;i<TurnPae->GetNum();i++) {
if (TurnPae->GetCard(i).GetKind() >= 3) TurnPee++;
if (TurnPae->GetCard(i).GetKind() == 0) TurnLight++;
}
for (i=0;i<OtherPae->GetNum();i++) {
if (OtherPae->GetCard(i).GetKind() >= 3) OtherPee++;
if (OtherPae->GetCard(i).GetKind() == 0) OtherLight++;
}
if (TurnPee >= 10 && OtherPee < 5 && OtherPee != 0) {
strcat(Mes,"ÁøÂÊÀÌ ÇǹÚÀÔ´Ï´Ù. ");
}
if (TurnLight >= 3 && OtherLight == 0) {
strcat(Mes,"ÁøÂÊÀÌ ±¤¹ÚÀÔ´Ï´Ù. ");
}
if (OtherPae->GetGo() != 0) {
strcat(Mes,"ÁøÂÊÀÌ µ¶¹ÚÀÔ´Ï´Ù. ");
}
OutPrompt(Mes);
}
for ·çÇÁ¸¦ Å»ÃâÇÏ¿© °ÔÀÓÀÌ ³¡³ª´Â °æ·Î´Â ÇÑÂÊ¿¡¼ ½ºÅéÀ» ºÎ¸¥ °æ¿ì, µ¥Å©ÀÇ ÆÐ°¡ ¶³¾îÁø °æ¿ì µÎ °¡ÁöÀÌ´Ù. ½ºÅéÀ» ÇßÀ» ¶§´Â ½ºÅéÇÑ Ç÷¹À̾ ¹Ù·Î ½ÂÀÚÀ̹ǷΠº° ¾î·Á¿ò¾øÀÌ ½ÂÆÐ¸¦ °¡¸§ÇÒ ¼ö ÀÖ´Ù. µ¥Å©ÀÇ Ä«µå°¡ ¶³¾îÁ³À» ¶§´Â ´©°¡ ½ÂÀÚÀÎÁö Á¶»çÇØ¾ß Çϴµ¥ ÀÌ ±ÔÄ¢µµ °£´ÜÇÏÁö ¾Ê´Ù. ÃÖÈÄ·Î °í(Go)¸¦ ºÎ¸¥ Ç÷¹À̾ Ãß°¡ Á¡¼ö¸¦ ¾ò±â Àü¿¡ µ¥Å©°¡ ºñ¾ú´Ù¸é À̶§´Â °í¸¦ ºÎ¸¥ Ç÷¹À̾ ¹«Á¶°Ç ÆÐÇÑ´Ù. ÀÌ Á¶°ÇÀ» Á¡°ËÇϱâ À§ÇØ Ç÷¹À̾ °í¸¦ ºÎ¸¦ ¶§¸¶´Ù ÇØ´ç Ç÷¹À̾ LastGo º¯¼ö¿¡ ÀúÀåÇÑ´Ù.
Á¡¼ö¸¦ ÇÑ ¹øµµ ¾òÁö ¸øÇߴµ¥ µ¥Å©°¡ ºñ¾ú´Ù¸é À̶§´Â ÀÚµ¿ ½ºÅéµÈ °æ¿ìÀ̹ǷΠ¸¶Áö¸· Á¡¼ö¸¦ ºñ±³ÇØ º»´Ù. ¾çÂÊ ¾î´À ´©±¸µµ ±âº» Á¡¼öÀÎ 7Á¡À» ¾òÁö ¸øÇß´Ù¸é ³ª°¡¸®ÀÌ´Ù. ´õ ÀÌ»ó °è»êÇØ º¼ °Íµµ ¾øÀÌ ºñ°å´Ù´Â °á°ú¸¦ Ãâ·ÂÇϰí ÇÁ·Î±×·¥À» Á¾·áÇÑ´Ù. ÇÑÂÊÀÌ ¸·ÆÇ¿¡ ±âº» Á¡¼ö¸¦ ȹµæÇß´Ù¸é ½ÂÀÚ°¡ ÀÖ´Â °ÔÀÓÀÌ´Ù. ±×¸®°í ½ÂÀÚ°¡ ´©±¸ÀÎÁö ±× °á°ú¸¦ ¹®ÀÚ¿·Î Á¶¸³ÇØ µÐ´Ù. ÀÌ ¹®ÀÚ¿ µÚÂÊ¿¡ ÇǹÚ, ±¤¹Ú, µ¶¹Ú µîÀÇ ÆÇÁ¤ °á°ú°¡ µ¡ºÙ¿©Áø´Ù.
À̱äÂÊÀÇ ÆÐ¸¦ TurnPae, ÁøÂÊÀ» OtherPae Æ÷ÀÎÅÍ¿¡ ¹Ì¸® ´ëÀÔÇØ ³õ´Â´Ù. ±×¸®°í ´ÙÀ½Àº ÇǹÚ, ±¤¹Ú Á¡°ËÀ» À§ÇØ ¾çÂÊÀÇ ÇÇ, ±¤ °³¼ö¸¦ ¼¾´Ù. À̱äÂÊÀÇ Çǰ¡ 10Àå ÀÌ»óÀε¥ Áø ÂÊÀº 5Àå ¹Ì¸¸ÀÇ Çǰ¡ Á¸ÀçÇϸé ÀÌ ¶§°¡ ÇǹÚÀÌ´Ù. À̱ä ÂÊÀÇ ±¤ÀÌ ¼¼ Àå ÀÌ»óÀε¥ ÁøÂÊ¿¡ ±¤ÀÌ ¾øÀ¸¸é ±¤¹ÚÀÌ´Ù. ÁøÂÊÀÌ °í¸¦ ºÎ¸¥ ÀûÀÌ ÀÖÀ½¿¡µµ ºÒ±¸ÇÏ°í ½ÂÀÚ°¡ µÇÁö ¸øÇß´Ù¸é ÀÌ Ç÷¹À̾î´Â µ¶¹ÚÀÌ´Ù. °ÔÀÓÀÇ ÃÖÁ¾ °á°ú´Â Mes ¹®ÀÚ¿¿¡ Á¶¸³µÇ¾î Ãâ·ÂµÇ¸ç ÇÁ·Î±×·¥Àº Á¾·áµÈ´Ù.
ÀÌ ¿¹Á¦´Â C++ÀÇ Å¬·¡½º¸¦ ÀÌ¿ëÇÏ¿© °í½ºÅéÆÇÀÇ ½ÇüµéÀ» Ãß»óÈÇÏ¸ç °¢ Ŭ·¡½º´Â ½Çü Ç¥ÇöÀ» À§ÇØ ¼Ó¼º°ú µ¿ÀÛÀ» Àß Ä¸½¶ÈÇϰí ÀÖ´Ù. ÀûÀýÈ÷ ÀÚ½ÅÀÇ ¸â¹ö¸¦ ¼û±â´Â Á¤º¸ ÀºÆó ±â´Éµµ ½ÊºÐ Ȱ¿ëÇÏ¿© ¿ÜºÎ¿¡¼ °´Ã¼¸¦ ÇԺηΠÁ¶ÀÛÇÏÁö ¸øÇϵµ·Ï ½º½º·Î ¹æ¾îµµ ÇÑ´Ù. ¶ÇÇÑ °¢ Ŭ·¡½º¿¡ °øÅëµÇ´Â ±â´ÉÀ» ºÎ¸ð Ŭ·¡½º¿¡ Á¤ÀÇÇÏ°í ÆÄ»ý Ŭ·¡½º´Â ÀÌ ±â´ÉµéÀ» »ó¼Ó¹Þ¾Æ »ç¿ëÇÏ¸ç ºÎ¸ð¿Í µ¿ÀÛÀÌ Á¶±Ý Ʋ¸®´Ù¸é ¸â¹ö ÇÔ¼ö¸¦ ÀçÁ¤ÀÇÇϱ⵵ ÇÑ´Ù.
°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ±â¹ýµéÀ» °¡±ÞÀû ¸¹ÀÌ È°¿ëÇØ º¸°íÀÚ ³ë·ÂÇߴµ¥ ¾ÈŸ±õ°Ôµµ ÀÌ ¿¹Á¦¿¡´Â ´ÙÇü¼ºÀÌ µîÀåÇÏÁö ¾Ê´Â´Ù. °¡»ó ÇÔ¼ö¸¦ ¾²´Â ºÎºÐÀÌ ÀüÇô ¾ø´Âµ¥ Ŭ·¡½ºÀÇ ¼ö°¡ ¸¹Áö ¾Ê°í °´Ã¼ Æ÷ÀÎÅ͸¦ ¾²±â´Â ÇÏÁö¸¸ ºÎ¸ð ŸÀÔÀ¸·Î ÀÚ½ÄÀ» °¡¸®Å³ °æ¿ì°¡ ¾ø¾î µ¿Àû °áÇÕÀÌ ²À ÇÊ¿äÇÑ »óȲµµ ¾ø´Ù. »ç½Ç ´ÙÇü¼ºÀº ÀÌ Á¤µµ ±Ô¸ðÀÇ ÇÁ·Î±×·¥¿¡´Â µîÀåÇÏÁö ¾ÊÀ¸¸ç Á» ´õ ´ë±Ô¸ðÀÇ Å¬·¡½º °èÃþÀÌ Çü¼ºµÇ¾î¾ß Á¦ ±â´ÉÀ» ¹ßÈÖÇÑ´Ù.
ÀÌ ¿¹Á¦¿¡ ´ÙÇü¼ºÀ» ¾ïÁö·Î¶óµµ ±¸ÇöÇØ º¼¸¸ÇÑ ºÎºÐÀ» ã¾Æ º»´Ù¸é Draw ÇÔ¼ö¸¦ µé ¼ö ÀÖ´Ù. CCardSet Ŭ·¡½º¿¡ Draw ¼ø¼ö °¡»ó ÇÔ¼ö¸¦ ¼±¾ðÇÏ°í ÆÄ»ý Ŭ·¡½º´Â ÀÌ ÇÔ¼ö¸¦ ÀçÁ¤ÀÇÇÑ´Ù. ±×¸®°í CCardSet ÆÄ»ý Ŭ·¡½ºÀÇ °´Ã¼µéÀ» CCardSet *ÀÇ ¹è¿¿¡ Áý¾î ³Ö¾î ³õ°í DrawScreen ÇÔ¼ö°¡ ·çÇÁ¸¦ µ¹¸ç ¹è¿ ³»ÀÇ °¢ °´Ã¼¿¡ ´ëÇØ Draw¸¸ ¿½ÉÈ÷ ºÒ·¯ ´ë´Â °ÍÀÌ´Ù. ±×·¯³ª ¾Æ¹«¸® ¿¹Á¦¶ó ÇÏ´õ¶óµµ ³Ê¹« ¾ïÁö½º·¯¿î °Í °°°í °¢ Ŭ·¡½ºÀÇ Draw ¿øÇüÀ» °Á¦·Î ¸ÂÃç¾ß ÇϹǷΠÁ¦¿ÜÇß´Ù.
°í½ºÅé °ÔÀÓÀÇ ±ÔÄ¢Àº °áÄÚ °£´ÜÇÏÁö ¾ÊÀ¸¸ç ¾î¶² ±ÔÄ¢Àº Á»Ã¼ ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ±×·¡¼ È¥ÀÚ °ÔÀÓÀ» Å×½ºÆ®ÇØ º¸±â°¡ ±²ÀåÈ÷ ¾î·Æ´Ù. ÇнÀ¿ë ¿¹Á¦ÀÏ »ÓÀε¥ ÀÌ °ÔÀÓÀ» È¥ÀÚ¼ ÇÑ´Ù´Â °ÍÀº Á¤½Å »óŸ¦ ÀǽɹÞÀ»¸¸Å Áö·çÇÑ ÀÏÀÌ´Ù. ±×·¸´Ù°í ÇØ¼ Å×½ºÆ®¸¦ »ý·«ÇÒ ¼ö´Â ¾ø´Âµ¥ ÀÌ·² ¶§´Â Å×½ºÆ®µµ ÄÄÇ»ÅÍ¿¡°Ô ¸Ã±æ ¼ö ÀÖ´Ù. ÀÚµ¿ÈµÈ Å×½ºÆ®¸¦ Çϵµ·Ï ´ÙÀ½°ú °°ÀÌ ¿¹Á¦¸¦ Àá½Ã º¯°æÇØ º¸ÀÚ. ¸ÕÀú Å×½ºÆ® ¼Óµµ Çâ»óÀ» À§ÇØ ´ë±â ½Ã°£À» ÃÖ¼Ò·Î ÇÑ´Ù.
const int Speed=0;
const int PromptSpeed=0;
±×¸®°í main ÇÔ¼ö¸¦ ¼öÁ¤ÇÏ¿© ³¼öÀÇ ½ÃÀÛÁ¡À» ·çÇÁ·Î µ¹·Á °¢ ³¼ö¿¡ ´ëÇØ °ÔÀÓÀÌ Àß ½ÇÇàµÇ´ÂÁö¸¦ Â÷·Ê´ë·Î Á¡°ËÇØ º»´Ù.
void main()
{
....
randomize();
for (int k=0;k<1000;k++) {
srand(k);
Initialize();
for (SouthTurn=true;!Deck.IsEmpty();SouthTurn=!SouthTurn) {
....
}
OutPrompt(Mes);
gotoxy(40,22);
if (Blanket.GetNum() != 0) {
printf("%d ³¼ö¹ø¿¡ ÀÌ»óÀÌ ÀÖÀ½",k);
getch();
} else {
printf("%d¹ø Å×½ºÆ® ¿Ï·á",k);
delay(500);
}
SouthPae.Reset();
NorthPae.Reset();
}
}
k ·çÇÁ°¡ ³¼ö ¹ß»ý±â¸¦ ¸Å¹ø ´Ù¸¥ °ªÀ¸·Î ÃʱâÈÇÏ¸é¼ °ÔÀÓÀ» µ¹·Á º¸´Â °ÍÀÌ´Ù. °ÔÀÓ Áß°£¿¡ »ç¿ëÀÚÀÇ ÀÔ·ÂÀÌ ÇÊ¿äÇÑ ºÎºÐÀÌ Àִµ¥ »ç¿ëÀÚÀÇ ÀÀ´äÀ» ó¸®ÇÏ´Â InputInt¿¡¼ ¹«Á¶°Ç 1À» ¸®ÅÏÇϵµ·Ï ¼öÁ¤ÇÑ´Ù.
int InputInt(const char *Mes, int range)
{
return 1;
Ç×»ó ù ¹øÂ° Ä«µå¸¦ ¼±ÅÃÇÏ°í °í, ½ºÅé Áú¹®¿¡µµ Ç×»ó °í¸¦ ¼±ÅÃÇϵµ·Ï Çß´Ù. ÀÌ·¸°Ô ÀÚµ¿ ÀÀ´ä ½Ã½ºÅÛÀ» ¸¸µé¾î ³õÀ¸¸é ÄÄÇ»ÅͰ¡ È¥ÀÚ ÆÐ¼¯¾î¼ µ¹¸®°í È¥ÀÚ °ÔÀÓÀ» ÁøÇàÇÒ °ÍÀÌ´Ù. ±×°Íµµ ¾öû³ª°Ô ºü¸¥ ¼Óµµ·Î ¸»ÀÌ´Ù. °ÔÀÓÀ» ³¡±îÁö ÁøÇàÇØ¼ ´ã¿ä¿¡ ³²Àº ÆÐ°¡ Çϳªµµ ¾ø´Ù¸é ÀÏ´Ü °ÔÀÓÀº ±ÔÄ¢´ë·Î Àß µ¹¾Æ°£´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¦ÀÌ ¸Â´Â Ä«µå¸¦ Àß Ã£¾Æ¼ Á¦´ë·Î °¡Á®°¡¸ç ¼³»çÇÑ °Íµµ Àß Ã³¸®Çϰí ÀÖ´Â °ÍÀÌ´Ù. ¸¸¾à ´ã¿äÀÇ Ä«µå°¡ ³²Àº ä·Î °ÔÀÓÀÌ ³¡³µ´Ù¸é À̶§´Â ¹º°¡ ³í¸®¿¡ À߸øÀÌ ÀÖ´Ù´Â ¶æÀÌ´Ù.
ÀÌ»óÀÌ ¹ß°ßµÇ¸é ½ÇÇàÀ» ¸ØÃß°í ¸î ¹ø ³¼öÀÇ ½ÃÀÛÁ¡¿¡¼ ÀÌ»óÀÌ ÀÖ´ÂÁö¸¦ Ãâ·ÂÇÑ´Ù. ÀÌ ¹øÈ£¸¦ srandÀÇ Àμö·Î ÁÖ°í °ÔÀÓÀ» õõÈ÷ ½ÇÇàÇØ º¸¸é ¾îµð¼ ÀÌ»óÀÌ ÀÖ´ÂÁö Á¡°ËÇÏ¿© ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù. ¶Ç´Â ¸Þ½ÃÁö°¡ ¶ß±â Àü¿¡ ÇÁ·Î±×·¥ÀÌ ´Ù¿îµÈ´Ù°Å³ª ÇÏ´Â °æ¿ìµµ Àû¹ßÇØ ³¾ ¼ö ÀÖ´Ù. ÀÌ »óÅ·ΠÇÑ ½Ã°£ Á¤µµ¸¸ Å×½ºÆ®¸¦ µ¹·Áº¸¸é ÇÁ·Î±×·¥¿¡ ÀÌ»óÀÌ ÀÖ´ÂÁö ¾Æ´ÑÁö °ÅÀÇ ¿Ïº®ÇÏ°Ô Á¡°ËµÉ °ÍÀÌ´Ù.
ÀÌ»óÀ¸·Î °í½ºÅé °ÔÀÓ Á¦ÀÛ°ú ¸î °¡Áö °³ÀÛ ½Ç½À±îÁö ÇØ ºÃ´Âµ¥ ªÁö ¾ÊÀº ½Ç½ÀÀ̾ú´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ´õ ½Ç½ÀÀ» ÇØ º¸°í ½ÍÀº »ç¶÷Àº ´ÙÀ½ °³ÀÛ ½Ç½À±îÁö ÇØ º¸ÀÚ. ÀÌ»óÀÇ °³ÀÛ±îÁö ¿Ï·áÇÏ¸é °ÅÀÇ ¿ÏÀüÇÑ °í½ºÅé °ÔÀÓÀÌ µÈ´Ù.
¨ç ù ¼³»ç½Ã ±âº» Á¡¼ö¸¦ ºÎ¿©ÇÏ´Â ±ÔÄ¢ÀÌ ÀÖ´Ù.
¨è ¼¼ ¹ø ¼³»ç½Ãµµ ±âº» Á¡¼ö·Î °ÔÀÓÀÌ ³¡³´Ù.
¨é °³ÀÛ¿¹¿¡¼µµ À粸 ³õÀº ÆøÅº ±â´Éµµ
±¸ÇöÇØ º¸ÀÚ.
¨ê 9½Ê Ä«µå´Â ½ÖÇÇ¿Í ½ÊÂ¥¸® Ä«µå ¾çÂÊÀ¸·Î Ȱ¿ëµÈ´Ù.
Äֿܼ¡¼ ¸¸µé ¼ö ÀÖ´Â °ÔÀÓÀº ÀÌ Á¤µµÀÌ¸ç ´ÙÀ½¿¡ ±×·¡ÇÈÀ» ¹è¿ì¸é Á» ´õ ǰÁú ³ôÀº °ÔÀÓÀ¸·Î ¸¸µé ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¶¿ì½º·Î ÆÐ¸¦ ¼±ÅÃÇÒ ¼ö ÀÖÀ¸¸ç ½ÇÁ¦ ÈÅõÀåÀÌ µ¹¾Æ ´Ù´Ï°í ÆÐ¸¦ ³¾ ¶§ ±×·²µíÇÑ ¼Ò¸®µµ ³¾ ¼ö ÀÖ´Ù. ±×¸®°í ³×Æ®¿öÅ©±îÁö ºÙÀÌ¸é µÑÀ̼ ¶Ç´Â ¼ÂÀ̼ °¢ÀÚÀÇ Áý¿¡¼ °ÔÀÓÀ» Áñ±æ ¼ö ÀÖ´Â Á¤¸» ÇØ º¼¸¸ÇÑ °ÔÀÓÀÌ µÈ´Ù. ÀÌÂëµÇ¸é ÆÇµ·ÀÇ °³³äµµ µé¾î°¡¾ß ÇÒ °ÍÀÌ´Ù. ÁøÂ¥ µ·Àº ¾Æ´Ï´õ¶óµµ ¹º°¡ ¿Ô´Ù °¬´Ù ÇØ¾ß Àç¹Ì°¡ ÀÖ´Â ¹ýÀÌ´Ù.
¾ÆÁ÷Àº Á» À̸£°ÚÁö¸¸ °æÇèÀÌ ¸¹ÀÌ ½×À̸é ÄÄÇ»ÅÍ¿¡ Àΰø Áö´ÉÀ» ºÎ¿©ÇÏ¿© ÄÄÇ»ÅÍ¿Í µÑÀ̼ ¸Â°í¸¦ ÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ȯ°æÀÌ ´Þ¶óÁö°í °ÔÀÓÀÇ ÁøÇà ¹æ½Ä¿¡ º¯È°¡ »ý±â¸é ºÒ°¡ÇÇÇÏ°Ô ¼öÁ¤ÇØ¾ß ÇÏ´Â ºÎºÐµµ ÀÖÁö¸¸ Äֿܼ¡¼ ¸¸µç ¿¹Á¦ÀÇ ³í¸®´Â °ÅÀÇ ±×´ë·Î Àç»ç¿ëµÇ¹Ç·Î Â÷ÈÄ¿¡ ³×Æ®¿öÅ© °í½ºÅé °ÔÀÓÀ» ¸¸µé¾î º¼ »ý°¢ÀÌ ÀÖ´Ù¸é ÀÌ ¿¹Á¦¸¦ ºÎÁö·±È÷ ºÐ¼®ÇÏ°í ½Ç½ÀÇØ º¸±â ¹Ù¶õ´Ù.