返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >怎样用C语言实现纸牌游戏
  • 283
分享到

怎样用C语言实现纸牌游戏

2023-06-22 03:06:58 283人浏览 安东尼
摘要

今天就跟大家聊聊有关怎样用C语言实现纸牌游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 基本要求一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一个人

今天就跟大家聊聊有关怎样用C语言实现纸牌游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1. 基本要求

  • 一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一个人为用户,另一个人为计算机;

  • 每轮每人各发5张牌,各自以这5张牌建立二叉排序树;

  • 由用户先出,轮流出牌,每次只能出一张并且要比别人出的大,如:用户出3,计算机则要出比3大的牌,没有则选择不出;

  • 最先出完的人获胜。

2. 运行界面

首页面

怎样用C语言实现纸牌游戏

游戏说明

怎样用C语言实现纸牌游戏

开始游戏

怎样用C语言实现纸牌游戏

开始出牌

怎样用C语言实现纸牌游戏

游戏结束

怎样用C语言实现纸牌游戏

3. 代码解释 

#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<time.h>int card[5][2]; // 分别标记玩家和用户已经出过的牌 int playercard[5]; // 玩家的手牌 int computercard[5]; // 电脑的手牌 char bhuase[5];char chuase[5];typedef struct node{int data;struct node *LChild;struct node *RChild;}node;typedef struct tree{int data;struct node *LChild;struct node *RChild;}tree;// 游戏说明void PlayinGCardsyxsm(){printf(" 每轮每人各发5张牌,各自以五张牌建立二叉树,由用户先出,轮流出牌,\n");printf(" 每次只能出一张并且要比别人出的大,\n");printf(" 如:用户出3,计算机则要算出比3大的牌,没有则选择不出;\n");printf(" 最先出完的人获胜。\n");}// 发牌void PlayingCardsfp() {int player;int computer;// 玩家和电脑各发五张牌 for(int i = 0; i < 5; i ++ ){player = rand() % 9 + 2;printf("玩家发到的牌:%d \n", player); playercard[i] = player;computer = rand() % 9 + 2;printf("电脑发到的牌:%d \n", computer); computercard[i] = computer;}}// 出牌 void PlayingCardscp(){int player = 0;// 玩家当前回合出的牌 int computer = 0;// 电脑当前回合出的牌 int playercount = 0;// 玩家的出牌数 int computercount = 0;// 电脑的出牌数 bool flag = false; // 当每次都出现最大值时,游戏同样最多进行5回合 for(int m = 0; m < 5; m ++ ){// 在双方都有牌出的时候,一共最多进行5回合出牌 for(int k = 0; k < 5; k ++ ){for(int j = 0; j < 5; j ++ ){// 确定当前牌可以出,大于对方的出牌,且自己没有出过这张牌 if(playercard[j] > computer && card[j][0] == 0){printf("玩家出牌%c%d\n", bhuase[j],playercard[j]);playercount ++ ; // 玩家出牌数+1 // 标记玩家已经出过这张牌了 card[j][0] = 1;player = playercard[j]; Sleep(800);// 在头函数#include <windows.h>中,起到休眠程序的作用 break;}}// 若果玩家已经出完5张牌,则玩家获胜,退出循环 if(playercount == 5){printf("玩家赢了!"); flag = true;break;}for(int j = 0; j < 5; j ++ ){// 确定当前牌可以出,大于对方的出牌,且自己没有出过这张牌 if(computercard[j] > player && card[j][1] == 0){printf("电脑出牌%c%d\n", chuase[j],computercard[j]);computercount ++ ;  // 电脑出牌数+1 // 标记电脑已经出过这张牌了 card[j][1] = 1;computer = computercard[j];Sleep(800);break;}}// 若果电脑已经出完5张牌,则电脑获胜,退出循环 if(computercount == 5){printf("电脑赢了!"); flag = true;break;}}// 如果玩家的牌大于电脑的最大牌后,将电脑当前回合的牌值重置为0,继续进行下一回合 if(player > computer) computer = 0;// 如果电脑的牌大于玩家的最大牌后,将玩家当前回合的牌值重置为0,继续进行下一回合 if(computer > player) player = 0;if(flag) break;}}// 发完牌后玩家的手牌 void PlayingCardsxswj(){printf("玩家\n");printf("   %d   %d   %d   %d   %d\n", playercard[0], playercard[1], playercard[2], playercard[3], playercard[4], playercard[5]);}// 发完牌后电脑的手牌 void PlayingCardsxsdn(){printf("电脑\n");printf("   %d   %d   %d   %d   %d\n", computercard[0], computercard[1], computercard[2], computercard[3], computercard[4], computercard[5]);}// 初始化树的头结点为空 void treechushihua(node *t){t = NULL;} // 建立平衡二叉树 node *treecharu(node *t, int key){// 如果头结点为空,就将当前节点设置为根节点 if(t == NULL){node *p;p = (node*)malloc(sizeof(node));p->data = key;p->LChild = NULL;p->RChild = NULL;t = p;}// 如果头结点不为空,则进行平衡二叉树的插入操作 else{// 插入结点的值小于根节点,则插入左子树 if(key < t->data)t->LChild = treecharu(t->LChild, key);// 插入结点的值大于等于根节点,则插入右子树 elset->RChild = treecharu(t->RChild, key);}return t;}// 将玩家手牌存储到平衡二叉树中 node *jianlib(node *t)  {int i, key;for(i = 0; i < 5; i ++ ){key = playercard[i];t = treecharu(t, key);}return t;} // 将电脑手牌存储到平衡二叉树中 node *jianlic(node *t)  {int i, key;for(i = 0; i < 5; i ++ ){key = computercard[i];t = treecharu(t, key);}return t;} // 顺序输出玩家或电脑手牌 void treepaixu1(node *t)  {if(t != NULL){treepaixu1(t->LChild);printf("%d ", t->data);treepaixu1(t->RChild);}} // 先序遍历玩家平衡二叉树 void treepaixu2(node *t, int *p)  {if(t == NULL) return;else{// 先序遍历,将玩家手牌有序化 treepaixu2(t->LChild,  p);playercard[(*p) ++ ] = t->data;treepaixu2(t->RChild, p);}}// 先序遍历电脑平衡二叉树 void treepaixu3(node *t, int *p)  {if(t == NULL) return;else{// 先序遍历,将电脑手牌有序化 treepaixu3(t->LChild, p);computercard[(*p) ++ ] = t->data;treepaixu3(t->RChild, p);}}  // 主函数 int main(){int k = 0;// 随机函数,通过时间种子来获取随机数种子,获得随机数 srand((unsigned)time(NULL));int n = 0;// 选择菜单 while(k != -1){puts("");puts("");puts(""); printf("\t\t\t ****纸牌游戏****\n");printf("\t\t\t****1.游戏说明****\n");printf("\t\t\t****2.开始游戏****\n");printf("\t\t\t****3.开始出牌****\n");printf("\t\t\t****4.游戏结束****\n");printf("\t\t\t******************\n");puts("");printf("\t\t**********************************\n");printf("\t\t**********************************\n");puts("");printf("\t\t\t请输入(1、2、3、4):\n");scanf("%d", &k);switch(k){// 游戏说明 case 1: PlayingCardsyxsm(); break;// 发牌阶段 case 2:{// 发牌   PlayingCardsfp();    // 建立玩家二叉树   node *t1 = NULL;t1 = jianlib(t1);printf("玩家手牌为:");   treepaixu1(t1);    // 建立电脑二叉树   node *t2 = NULL;t2 = jianlic(t2);puts("");printf("电脑手牌为:"); treepaixu1(t2);// 玩家手牌有序化   n = 0;  treepaixu2(t1, &n);    // 电脑手牌有序化 n = 0;  treepaixu3(t2, &n);    puts("");  // 输出玩家和电脑的手牌   PlayingCardsxswj();  PlayingCardsxsdn(); break;  }  // 出牌阶段 case 3:{PlayingCardscp();break; } // 退出游戏  case 4:k=-1; break;}}return 0;}

看完上述内容,你们对怎样用C语言实现纸牌游戏有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网其他教程频道,感谢大家的支持。

--结束END--

本文标题: 怎样用C语言实现纸牌游戏

本文链接: https://www.lsjlt.com/news/302160.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎样用C语言实现纸牌游戏
    今天就跟大家聊聊有关怎样用C语言实现纸牌游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 基本要求一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一个人...
    99+
    2023-06-22
  • C语言实战之纸牌游戏
    目录1. 基本要求2. 运行界面3. 代码解释 1. 基本要求 一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一个人为用户,另一个人为计算机; ...
    99+
    2024-04-02
  • C语言怎样实现扫雷游戏
    这篇文章主要介绍了C语言怎样实现扫雷游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。概述扫雷是一款大众类的益智小游戏。游戏目标是根据点击格子出现的数字找出所有非雷格子,同时...
    99+
    2023-06-15
  • C语言如何实现扑克牌游戏
    这篇文章主要介绍C语言如何实现扑克牌游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 设计目的扑克牌是我们从小玩到大的纸牌类小游戏,我们有各种玩法跟不同的规则。我之所以选择的这个扑克牌,是因为我觉得可以提高我的...
    99+
    2023-06-22
  • C语言怎样实现三子棋游戏
    这篇文章给大家分享的是有关C语言怎样实现三子棋游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。思路:main函数结构部署game函数功能的实现①创建存储空间②初始化存储空间为空格③打印棋盘④实现玩家下棋⑤实现电...
    99+
    2023-06-25
  • C语言中怎样实现三子棋游戏
    这篇文章将为大家详细讲解有关C语言中怎样实现三子棋游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概述三子棋棋盘为九宫格形式,玩家和电脑分别轮流落子,若有一方有三个棋连在一起的情况则胜。实现过程玩家交互...
    99+
    2023-06-15
  • 用c语言实现《狼人杀》游戏发牌系统
    目录1.前言2.程序效果3.完整代码总结1.前言 新年将至,亲戚朋友在家中免不了玩一下桌游,狼人杀确实是一个不错选择。那么针对正常的狼人杀玩法(8人局和12人局),博主利用一上午时间...
    99+
    2024-04-02
  • 基于WPF实现经典纸牌游戏
    目录1 纸牌类2 布局3 初始化4 事件点击牌堆拖动牌的去留1 纸牌类 之所以产生这个无聊至极的念头,是因为发现Unicode中竟然有这种字符。。。 这就意味着不用任何资源就可以实...
    99+
    2023-02-27
    WPF实现纸牌游戏 WPF纸牌游戏 WPF游戏
  • 用C语言实现2048游戏
    本文实例为大家分享了用C语言实现2048游戏的具体代码,供大家参考,具体内容如下 我遇到的几个问题: 问题1:如何显示? system("clear");//清屏 每次发生变化就清屏...
    99+
    2024-04-02
  • 怎么用C语言实现2048游戏
    本篇内容主要讲解“怎么用C语言实现2048游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C语言实现2048游戏”吧!本文实例为大家分享了用C语言实现2048游戏的具体代码,供大家参考,...
    99+
    2023-06-20
  • Python+numpy实现一个蜘蛛纸牌游戏
    目录1.过程2.思路3.配置4.代码四.效果图1.过程 蜘蛛纸牌大家玩过没有?之前的电脑上自带的游戏,用他来摸鱼过的举个手。 但是现在的电脑上已经没有蜘蛛纸牌了。所以…...
    99+
    2022-12-08
    Python numpy蜘蛛纸牌游戏 Python numpy蜘蛛纸牌 Python 蜘蛛纸牌 Python 游戏
  • C语言扑克牌游戏示例
    目录一、 设计目的二、 设计内容与要求三、 设计思路四、 实现过程五、 结论与改进一、 设计目的 扑克牌是我们从小玩到大的纸牌类小游戏,我们有各种玩法跟不同的规则。我之所以选择的这个...
    99+
    2024-04-02
  • C语言实现随机抽取纸牌程序
    本文实例为大家分享了C语言实现随机抽取纸牌的具体代码,供大家参考,具体内容如下 程序设计要求 本程序负责发一副标准纸牌,每张标准纸牌都有一种花色(梅花、方块、黑桃、红桃)和一个等级(...
    99+
    2024-04-02
  • 用C语言实现扫雷游戏
    用C语言实现扫雷游戏,因为代码会比较多,所以采用多文件的方式,使代码看起来更好。 一.main.c 在主调函数中首先要提供一个给用户选择的界面,在这里我们假定选择1为开始游戏,0为退...
    99+
    2024-04-02
  • 用C语言实现排雷游戏
    目录设计简单的游戏界面菜单排雷过程相应的代码一级目录排雷游戏的缺陷与不足一级目录改进总结设计简单的游戏界面菜单 输入数字1,进入游戏; 输入数字0,退出游戏;输入其他数字,将显示...
    99+
    2024-04-02
  • 基于HTML+CSS+JS实现纸牌记忆游戏
    目录知识点HTML 用户界面CSS 部分一些基本样式纸牌的样式分数面板的样式祝贺面板的样式动画媒体查询JavaScript 部分洗牌功能开始新游戏的功能显示卡片的功能当卡片匹配时的功...
    99+
    2024-04-02
  • 基于Java实现经典蜘蛛纸牌游戏
    目录效果展示游戏结构核心代码AboutDialog.java类PKCard.java类SpiderMenuBar.java类Spider.java 类效果展示 前面的导入过...
    99+
    2024-04-02
  • 基于WPF如何实现经典纸牌游戏
    这篇“基于WPF如何实现经典纸牌游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于WPF如何实现经典纸牌游戏”文章吧。1...
    99+
    2023-07-05
  • C语言实现数独游戏
    本文实例为大家分享了C语言实现数独游戏的具体代码,供大家参考,具体内容如下 目标 写一个数独游戏,有以下功能: 1:能随机产生题目并给出答案。 2:求解输入的题目并输出答案。 实现说...
    99+
    2024-04-02
  • C语言实现空战游戏
    本文实例为大家分享了C语言实现空战游戏的具体代码,供大家参考,具体内容如下 一、项目描述和成果展示 项目描述:   在以往的程序中进行了改进。例如:   可以发射...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作