📄 csdn_文档中心_用c语言开发的小游戏.htm
字号:
Others: //
<BR>*************************************************/<BR>void
show(const Card *cards, int size);</P>
<P>/*************************************************<BR>
Function: // grouping<BR>
Description:
//把9张牌分别放到3个数组中,每组3张,a.e分组
<BR>
Calls: //
<BR> Called By: //
main()<BR> Table Accessed: //被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>
Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>
Input: //Card
*card 牌结构指针, int size 结构数组的大小<BR>
Output: //
<BR> Return:
// void<BR>
Others: // 此函数修改
*carr1,*carr2,*
carr3的值<BR>*************************************************/<BR>void
grouping(const Card *cards, Card *carr1, Card *carr2, Card *carr3);
</P>
<P>/*************************************************<BR>
Function: //
result_process<BR> Description:
//用递归计算,所选的牌
<BR>
Calls: //
rshift<BR> Called By: //
main()<BR> Table Accessed: //被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>
Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>
Input: //Card
*carr1, Card *carr2, Card *carr3<BR>
Output: //
<BR> Return:
// void<BR>
Others: // 此函数修改
*carr1,*carr2,*
carr3的值<BR>*************************************************/<BR>Card*
result_process(Card *carr1, Card *carr2, Card *carr3, int
counter);</P>
<P>/*************************************************<BR>
Function: // rshift<BR>
Description:
//右移操作
<BR>
Calls: //
<BR> Called By: //
result_process<BR> Table Accessed:
//被修改的表(此项仅对于牵扯到数据库操作的程序)<BR> Table Updated: //
被修改的表(此项仅对于牵扯到数据库操作的程序)<BR>
Input: //Card
*carr1, Card *carr2, Card *carr3 ,int counter<BR>
Output: //
<BR> Return:
// Card*<BR>
Others: // 此函数修改
*carr1,*carr2,*
carr3的值<BR>*************************************************/<BR>void
rshift(Card *carr1, Card *carr2, Card *carr3, int counter);</P>
<P>void main()<BR>{<BR> Card cards[9]; /*存放九张牌*/<BR> Card
carr1[3]; /*第一组牌,cards array 1*/<BR> Card carr2[3];
/*第二组牌,cards array 2*/<BR> Card carr3[3]; /*第三组牌,cards array
3*/<BR> int select = 0; /*玩家的选择*/<BR> Card
*selected_card;/*存放玩家所记住(选)的牌*/</P>
<P> int counter = 0;</P>
<P><BR> riffle(cards, 9); /*洗牌,得到九张牌*/</P>
<P> puts("请记住一张牌千万别告诉我!最多经过下面三次我与你的对话,我就会知道你所记的那张牌!");<BR> puts("如果想继续玩,请准确的回答我问你的问题,根据提示回答!");<BR> puts("请放心,我不会问你你选了哪张牌的!");</P>
<P> grouping(cards, carr1, carr2, carr3);
/*把9张牌分别放到3个数组中,每组3张,a.e分组*/</P>
<P> show(carr1, 3);<BR> show(carr2,
3);<BR> show(carr3, 3);</P>
<P> puts("请告诉我你记住的那张牌所在行数");<BR> select = getchar();</P>
<P> switch(select)/*分支猜你玩家记住的牌*/<BR> {<BR> case
'1':<BR> selected_card = result_process(carr1, carr2,
carr3, counter);<BR> break;<BR> case
'2':<BR> selected_card = result_process(carr2, carr3,
carr1, counter);<BR> break;<BR> case
'3':<BR> selected_card = result_process(carr3, carr1,
carr2,
counter);<BR> break;<BR> default:<BR>
puts("你在撒谎!不和你玩了!");<BR> fflush(stdin);<BR> getchar();<BR> exit(0);<BR> }<BR> if(
selected_card
==NULL)<BR> {<BR> fflush(stdin);<BR> getchar();</P>
<P> exit(0);<BR> }</P>
<P> puts("你猜的牌为:");<BR> show(selected_card,
1);<BR> puts("我猜的对吧,哈哈~~~~");</P>
<P> fflush(stdin);<BR> getchar();<BR>}</P>
<P>/*riffle的原代码*/<BR>void riffle(Card *cards, int
size)<BR>{<BR> char
deck[CARDSIZE];/*临时数组,用于存储牌*/<BR> unsigned int
seed;/*最为产生随机数的种的*/<BR> int deckp = 0; /*在牌的产生中起着指示作用*/ </P>
<P><BR> seed = (unsigned
int)time(NULL);<BR> srand(seed);<BR>
<BR> /*洗牌*/<BR> while (deckp <
CARDSIZE)<BR> {<BR> char num = rand() %
CARDSIZE;<BR> if ((memchr(deck, num, deckp)) ==
0)<BR> {<BR> assert(!memchr(deck,num,deckp));<BR> deck[deckp]
=
num;<BR> deckp++;<BR> }<BR> }<BR>
<BR> /*找9张牌给card*/<BR> for (deckp = 0; deckp < size;
deckp++)<BR> {<BR> div_t card = div(deck[deckp],
SUITSIZE);</P>
<P> cards[deckp].val = "A23456789TJQK"[card.rem];
/*把余数给card.val*/<BR> cards[deckp].kind =
"3456"[card.quot]; /*把商给card.kind*/<BR> }<BR>}</P>
<P>/*show的原代码,将会自动换行*/<BR>void show(const Card *cards, int
size)<BR>{<BR> for(int i = 0; i < size;
i++)<BR> {<BR> printf("%c%c
",cards[i].kind,cards[i].val);<BR> if( (i !=0) &&
(((i+1 ) % 3) ==
0))<BR> puts("");<BR> }<BR> puts("");
/*自动换行*/<BR>}</P>
<P>/*grouping 的原代码*/<BR>void grouping(const Card *cards, Card
*carr1, Card *carr2, Card *carr3)<BR>{<BR> int i =
0;/*循环参数*/<BR>
<BR> /*分给carr1三个数*/<BR> while (i <
3)<BR> {<BR> carr1[i].val =
cards[i].val;<BR> carr1[i].kind =
cards[i].kind;<BR> i++;<BR> }</P>
<P> /*分给carr2接下来的三个数*/<BR> while (i <
6)<BR> {<BR> carr2[i-3].val =
cards[i].val;<BR> carr2[i-3].kind =
cards[i].kind;<BR> i++;<BR> }</P>
<P> /*分给carr3接下来的三个数*/<BR> while (i <
9)<BR> {<BR> carr3[i-6].val =
cards[i].val;<BR> carr3[i-6].kind =
cards[i].kind;<BR> i++;<BR> }<BR>}</P>
<P>/*rshift的实现*/<BR>void rshift(Card *carr1, Card *carr2, Card
*carr3, int counter)<BR>{<BR> Card
temp2;/*用于存放carr2[counter]*/<BR> Card
temp3;/*用于存放carr3[counter]*/</P>
<P> /*temp = carr2*/<BR> temp2.val =
carr2[counter].val;<BR> temp2.kind =
carr2[counter].kind;<BR> <BR> /*carr2 =
carr1*/<BR> carr2[counter].val =
carr1[counter].val;<BR> carr2[counter].kind =
carr1[counter].kind;<BR> <BR> /*temp3 =
carr3*/<BR> temp3.val = carr3[counter].val;<BR> temp3.kind
= carr3[counter].kind;</P>
<P> /*carr3 = carr2*/<BR> carr3[counter].val =
temp2.val;<BR> carr3[counter].kind = temp2.kind;</P>
<P> /*carr1 = carr3*/<BR> carr1[counter].val =
temp3.val;<BR> carr1[counter].kind = temp3.kind;<BR>}</P>
<P>Card* result_process(Card *carr1, Card *carr2, Card *carr3, int
counter)<BR>{<BR> rshift(carr1, carr2, carr3, counter); /*
把数组的第一个元素依次右移*/<BR> if(counter ==
2)<BR> {<BR> return(&carr2[2]);<BR> }</P>
<P> show(carr1, 3);<BR> show(carr2,
3);<BR> show(carr3, 3);</P>
<P> puts("请给出你记住的牌所在行数:");<BR>
fflush(stdin);<BR> int input = 1;<BR> input =
getchar(); /*获取你选的组*/</P>
<P> switch(input)<BR> {<BR> case
'1':<BR> return(result_process(carr1, carr2, carr3,
++counter));<BR> break;<BR> case
'2':<BR> return(&carr2[counter]);<BR> break;<BR> default:<BR> puts("你在撒谎!不和你玩了!");<BR> return
NULL;<BR> }<BR>}</P>
<P> </P>
<P> </P>
<P> </P>
<P> </P>
<P> </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> 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> 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> 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 © 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 + -