⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn_文档中心_用c语言开发的小游戏.htm

📁 csdn10年中间经典帖子
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            Others:         // 
            <BR>*************************************************/<BR>void 
            show(const Card *cards, int size);</P>
            <P>/*************************************************<BR>&nbsp; 
            Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // grouping<BR>&nbsp; 
            Description:&nbsp;&nbsp;&nbsp; 
            //把9张牌分别放到3个数组中,每组3张,a.e分组&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            <BR>&nbsp; 
            Calls:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            <BR>&nbsp; Called By:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            main()<BR>&nbsp; Table Accessed: //被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>&nbsp; 
            Table Updated:&nbsp; // 被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>&nbsp; 
            Input:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Card 
            *card&nbsp; 牌结构指针, int size&nbsp; 结构数组的大小<BR>&nbsp; 
            Output:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            <BR>&nbsp; Return:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // void<BR>&nbsp; 
            Others:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 此函数修改 
            *carr1,*carr2,* 
            carr3的值<BR>*************************************************/<BR>void 
            grouping(const Card *cards, Card *carr1, Card *carr2, Card *carr3); 
            </P>
            <P>/*************************************************<BR>&nbsp; 
            Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            result_process<BR>&nbsp; Description:&nbsp;&nbsp;&nbsp; 
            //用递归计算,所选的牌&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            <BR>&nbsp; 
            Calls:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            rshift<BR>&nbsp; Called By:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            main()<BR>&nbsp; Table Accessed: //被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>&nbsp; 
            Table Updated:&nbsp; // 被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>&nbsp; 
            Input:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Card 
            *carr1, Card *carr2, Card *carr3<BR>&nbsp; 
            Output:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            <BR>&nbsp; Return:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // void<BR>&nbsp; 
            Others:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 此函数修改 
            *carr1,*carr2,* 
            carr3的值<BR>*************************************************/<BR>Card* 
            result_process(Card *carr1, Card *carr2, Card *carr3, int 
            counter);</P>
            <P>/*************************************************<BR>&nbsp; 
            Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // rshift<BR>&nbsp; 
            Description:&nbsp;&nbsp;&nbsp; 
            //右移操作&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            <BR>&nbsp; 
            Calls:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            <BR>&nbsp; Called By:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            result_process<BR>&nbsp; Table Accessed: 
            //被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>&nbsp; Table Updated:&nbsp; // 
            被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>&nbsp; 
            Input:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Card 
            *carr1, Card *carr2, Card *carr3 ,int counter<BR>&nbsp; 
            Output:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            <BR>&nbsp; Return:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // Card*<BR>&nbsp; 
            Others:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 此函数修改 
            *carr1,*carr2,* 
            carr3的值<BR>*************************************************/<BR>void 
            rshift(Card *carr1, Card *carr2, Card *carr3, int counter);</P>
            <P>void main()<BR>{<BR>&nbsp;Card cards[9]; /*存放九张牌*/<BR>&nbsp;Card 
            carr1[3]; /*第一组牌,cards array 1*/<BR>&nbsp;Card carr2[3]; 
            /*第二组牌,cards array 2*/<BR>&nbsp;Card carr3[3]; /*第三组牌,cards array 
            3*/<BR>&nbsp;int select = 0; /*玩家的选择*/<BR>&nbsp;Card 
            *selected_card;/*存放玩家所记住(选)的牌*/</P>
            <P>&nbsp;int counter = 0;</P>
            <P><BR>&nbsp;riffle(cards, 9); /*洗牌,得到九张牌*/</P>
            <P>&nbsp;puts("请记住一张牌千万别告诉我!最多经过下面三次我与你的对话,我就会知道你所记的那张牌!");<BR>&nbsp;puts("如果想继续玩,请准确的回答我问你的问题,根据提示回答!");<BR>&nbsp;puts("请放心,我不会问你你选了哪张牌的!");</P>
            <P>&nbsp;grouping(cards, carr1, carr2, carr3); 
            /*把9张牌分别放到3个数组中,每组3张,a.e分组*/</P>
            <P>&nbsp;show(carr1, 3);<BR>&nbsp;show(carr2, 
            3);<BR>&nbsp;show(carr3, 3);</P>
            <P>&nbsp;puts("请告诉我你记住的那张牌所在行数");<BR>&nbsp;select = getchar();</P>
            <P>&nbsp;switch(select)/*分支猜你玩家记住的牌*/<BR>&nbsp;{<BR>&nbsp;case 
            '1':<BR>&nbsp;&nbsp;selected_card = result_process(carr1, carr2, 
            carr3, counter);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case 
            '2':<BR>&nbsp;&nbsp;selected_card = result_process(carr2, carr3, 
            carr1, counter);<BR>&nbsp;&nbsp;break;<BR>&nbsp;case 
            '3':<BR>&nbsp;&nbsp;selected_card = result_process(carr3, carr1, 
            carr2, 
            counter);<BR>&nbsp;&nbsp;break;<BR>&nbsp;default:<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
            puts("你在撒谎!不和你玩了!");<BR>&nbsp;&nbsp;fflush(stdin);<BR>&nbsp;&nbsp;getchar();<BR>&nbsp;&nbsp;exit(0);<BR>&nbsp;}<BR>&nbsp;if( 
            selected_card 
            ==NULL)<BR>&nbsp;{<BR>&nbsp;&nbsp;fflush(stdin);<BR>&nbsp;&nbsp;getchar();</P>
            <P>&nbsp;&nbsp;exit(0);<BR>&nbsp;}</P>
            <P>&nbsp;puts("你猜的牌为:");<BR>&nbsp;show(selected_card, 
            1);<BR>&nbsp;puts("我猜的对吧,哈哈~~~~");</P>
            <P>&nbsp;fflush(stdin);<BR>&nbsp;getchar();<BR>}</P>
            <P>/*riffle的原代码*/<BR>void riffle(Card *cards, int 
            size)<BR>{<BR>&nbsp;char 
            deck[CARDSIZE];/*临时数组,用于存储牌*/<BR>&nbsp;unsigned int 
            seed;/*最为产生随机数的种的*/<BR>&nbsp;int deckp = 0; /*在牌的产生中起着指示作用*/ </P>
            <P><BR>&nbsp;seed = (unsigned 
            int)time(NULL);<BR>&nbsp;srand(seed);<BR>&nbsp;&nbsp;&nbsp; 
            <BR>&nbsp;/*洗牌*/<BR>&nbsp;while (deckp &lt; 
            CARDSIZE)<BR>&nbsp;{<BR>&nbsp;&nbsp;char num = rand() % 
            CARDSIZE;<BR>&nbsp;&nbsp;if ((memchr(deck, num, deckp)) == 
            0)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;assert(!memchr(deck,num,deckp));<BR>&nbsp;&nbsp;&nbsp;deck[deckp] 
            = 
            num;<BR>&nbsp;&nbsp;&nbsp;deckp++;<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>&nbsp;&nbsp;&nbsp; 
            <BR>&nbsp;/*找9张牌给card*/<BR>&nbsp;for (deckp = 0; deckp &lt; size; 
            deckp++)<BR>&nbsp;{<BR>&nbsp;&nbsp;div_t card = div(deck[deckp], 
            SUITSIZE);</P>
            <P>&nbsp;&nbsp;cards[deckp].val = "A23456789TJQK"[card.rem]; 
            /*把余数给card.val*/<BR>&nbsp;&nbsp;cards[deckp].kind = 
            "3456"[card.quot]; /*把商给card.kind*/<BR>&nbsp;}<BR>}</P>
            <P>/*show的原代码,将会自动换行*/<BR>void show(const Card *cards, int 
            size)<BR>{<BR>&nbsp;for(int i = 0; i &lt; size; 
            i++)<BR>&nbsp;{<BR>&nbsp;&nbsp;printf("%c%c&nbsp; 
            ",cards[i].kind,cards[i].val);<BR>&nbsp;&nbsp;if( (i !=0) &amp;&amp; 
            (((i+1 ) % 3) == 
            0))<BR>&nbsp;&nbsp;&nbsp;puts("");<BR>&nbsp;}<BR>&nbsp;puts(""); 
            /*自动换行*/<BR>}</P>
            <P>/*grouping 的原代码*/<BR>void grouping(const Card *cards, Card 
            *carr1, Card *carr2, Card *carr3)<BR>{<BR>&nbsp;int i = 
            0;/*循环参数*/<BR>&nbsp;&nbsp;&nbsp; 
            <BR>&nbsp;/*分给carr1三个数*/<BR>&nbsp;while (i &lt; 
            3)<BR>&nbsp;{<BR>&nbsp;&nbsp;carr1[i].val = 
            cards[i].val;<BR>&nbsp;&nbsp;carr1[i].kind = 
            cards[i].kind;<BR>&nbsp;&nbsp;i++;<BR>&nbsp;}</P>
            <P>&nbsp;/*分给carr2接下来的三个数*/<BR>&nbsp;while (i &lt; 
            6)<BR>&nbsp;{<BR>&nbsp;&nbsp;carr2[i-3].val = 
            cards[i].val;<BR>&nbsp;&nbsp;carr2[i-3].kind = 
            cards[i].kind;<BR>&nbsp;&nbsp;i++;<BR>&nbsp;}</P>
            <P>&nbsp;&nbsp;&nbsp; /*分给carr3接下来的三个数*/<BR>&nbsp;while (i &lt; 
            9)<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp; carr3[i-6].val = 
            cards[i].val;<BR>&nbsp;&nbsp;&nbsp;&nbsp; carr3[i-6].kind = 
            cards[i].kind;<BR>&nbsp;&nbsp;&nbsp;&nbsp; i++;<BR>&nbsp;}<BR>}</P>
            <P>/*rshift的实现*/<BR>void rshift(Card *carr1, Card *carr2, Card 
            *carr3, int counter)<BR>{<BR>&nbsp;Card 
            temp2;/*用于存放carr2[counter]*/<BR>&nbsp;Card 
            temp3;/*用于存放carr3[counter]*/</P>
            <P>&nbsp;/*temp = carr2*/<BR>&nbsp;temp2.val = 
            carr2[counter].val;<BR>&nbsp;temp2.kind = 
            carr2[counter].kind;<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;/*carr2 = 
            carr1*/<BR>&nbsp;carr2[counter].val = 
            carr1[counter].val;<BR>&nbsp;carr2[counter].kind = 
            carr1[counter].kind;<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;/*temp3 = 
            carr3*/<BR>&nbsp;temp3.val = carr3[counter].val;<BR>&nbsp;temp3.kind 
            = carr3[counter].kind;</P>
            <P>&nbsp;/*carr3 = carr2*/<BR>&nbsp;carr3[counter].val = 
            temp2.val;<BR>&nbsp;carr3[counter].kind = temp2.kind;</P>
            <P>&nbsp;/*carr1 = carr3*/<BR>&nbsp;carr1[counter].val = 
            temp3.val;<BR>&nbsp;carr1[counter].kind = temp3.kind;<BR>}</P>
            <P>Card* result_process(Card *carr1, Card *carr2, Card *carr3, int 
            counter)<BR>{<BR>&nbsp;rshift(carr1, carr2, carr3, counter); /* 
            把数组的第一个元素依次右移*/<BR>&nbsp;if(counter == 
            2)<BR>&nbsp;{<BR>&nbsp;&nbsp;return(&amp;carr2[2]);<BR>&nbsp;}</P>
            <P>&nbsp;show(carr1, 3);<BR>&nbsp;show(carr2, 
            3);<BR>&nbsp;show(carr3, 3);</P>
            <P>&nbsp;&nbsp;&nbsp; puts("请给出你记住的牌所在行数:");<BR>&nbsp;&nbsp;&nbsp; 
            fflush(stdin);<BR>&nbsp;&nbsp;&nbsp; int input = 1;<BR>&nbsp;input = 
            getchar(); /*获取你选的组*/</P>
            <P>&nbsp;switch(input)<BR>&nbsp;{<BR>&nbsp;case 
            '1':<BR>&nbsp;&nbsp;return(result_process(carr1, carr2, carr3, 
            ++counter));<BR>&nbsp;&nbsp;break;<BR>&nbsp;case 
            '2':<BR>&nbsp;&nbsp;return(&amp;carr2[counter]);<BR>&nbsp;&nbsp;break;<BR>&nbsp;default:<BR>&nbsp;&nbsp;puts("你在撒谎!不和你玩了!");<BR>&nbsp;&nbsp;return 
            NULL;<BR>&nbsp;}<BR>}</P>
            <P>&nbsp;</P>
            <P>&nbsp;</P>
            <P>&nbsp;</P>
            <P>&nbsp;</P>
            <P>&nbsp;</P>
            <P> <BR></P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>对该文的评论</FONT></TD>
    <TD align=middle>
      <SCRIPT src="CSDN_文档中心_用c语言开发的小游戏.files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_用c语言开发的小游戏.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; laodie <I>(2004-3-1 18:37:18)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 
      width=532><BR>^_^,魔术的原理就是,第一次出现的所有的牌第二次根本没出现,所以不管你选什么牌记住都一样 
  <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_用c语言开发的小游戏.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; ydaye2003 <I>(2004-2-27 10:43:09)</I> 
  </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>能否把魔术的原理简单描述一下呢? 
  <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_用c语言开发的小游戏.files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; jaminwm <I>(2004-2-25 11:27:52)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>不错,继续努力 
<BR></TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你没有登陆,无法发表评论。 请先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=24780">登陆</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A 
      href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A 
      href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 src="CSDN_文档中心_用c语言开发的小游戏.files/biaoshi.gif" 
      width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -