相信大家在现实生活中都玩过纸牌游戏,今天带大家实现一下发纸牌并查看自己的牌是什么。(默认4个人玩纸牌游戏+没有大小王)至于更高级的人机对弈功能暂时就没办法讲解了,大家可以期待一手,不过,当前还是看看我们的老伙伴——纸牌游戏之发纸牌在程序中是如何实现的吧!
目录
1.发纸牌的大致流程
首先,像现实生活中一样,我们要先选择我们在发纸牌过程中的次序,然后由系统随机为我们发送纸牌,我们可以输入数字查看当前牌数时手中牌的具体情况,从而判断是否要重新开始(程序员给自己开个挂不过分吧😀)
2.发纸牌的实现思路
还记得我在猜数字游戏的实现中说过的一句话吗?没错,我们在写编程题或者小游戏代码时,最重要的就是理清实现思路——主体是什么?为了实现目的要创建哪些函数?函数的功能都是什么?只有当我们心中有了一个大体的框架,知道该做些什么时,我们才能更高效地编写代码,完成程序设计。
发纸牌的算法如下:
1.menu(提供游戏菜单,由玩家选择是否进行游戏:按“1”开始游戏,按“0”退出游戏,按其他则显示“选择错误,请重新选择”。)
2.game( )(进行游戏);
2.1选择我们在发纸牌过程中的次序;
2.2选择我们要查看时的纸牌数;
2.3SendCards(打印当前手中纸牌);
2.4根据是否满意当前纸牌,选择重新发牌,或者打印这轮所有牌;
3.本轮游戏结束,打印游戏菜单并再次询问玩家选择。
3.发纸牌的代码实现
我们在思考大体框架时不用过多在意具体函数的实现方法,可以先起个能表达其功能的函数名并把它放在需要的位置。(说白了就是先搞一个空壳函数占位置,等到大体框架调试完毕不再有问题后,再去实现这些空壳函数)大体框架代码如下:
#include<stdio.h>
int main()
{
int input,count=5;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("游戏结束\n");
break;
default:
printf("选择错误,请重新选择\n");
break;
}
}while(input);
return 0;
}
3.1menu函数的代码实现如下:
void menu()
{
printf("*****************************************\n");
printf("**********1.play 0.exit*************\n");
printf("*****************************************\n");
}
3.2game函数的代码如下:
void game(void)
{
int num,n,flag;
printf("请选择你想要的位