C语言扑克牌游戏示例
目录
- 一、 设计目的
- 二、 设计内容与要求
- 三、 设计思路
- 四、 实现过程
- 五、 结论与改进
一、 设计目的
扑克牌是我们从小玩到大的纸牌类小游戏,我们有各种玩法跟不同的规则。我之所以选择的这个扑克牌,是因为我觉得可以提高我的编程逻辑能力跟运用循环的能力。还能让我自由运用所学知识完成我的项目设计的需求,对我综合能力的能力很有挑战!
二、 设计内容与要求
(1)设计内容:扑克牌游戏。
(2)介绍扑克牌:一副没有大小王的52张牌,该牌从大到小的顺序为:2、3、4、5、6、7、8、9、10、J、Q、K、A。
(3)设计的比赛规则是:为每位玩家随机分配13张牌,设计以玩家1为最先发牌者,并且可以任意n(1 <=n<= 4)张出牌,并且下一位玩家的牌数要与上一位玩家所出的牌的数量一致,并且比上位玩家大,只要有一个玩家的牌出完则该玩家胜利,游戏结束。
三、 设计思路
四、 实现过程
洗牌时使用rand函数,使每次产生的随机数与上一次的不相同,随机数范围在1到52之间,并且弄个循环,保证每次产生的数字都与之前的不一样。另外,定义一个结构体,把每次产生的随机数都放进这个结构体中。程序中每个玩家都必须出牌,所以要定义一个函数将数字分别转变为纸牌。将玩家出过的牌赋值为13,依次达到标记删除的目的。以玩家1为首先打牌者,从最小的牌开始,有几张一样的都出,以此达到任意n(1<=n<=4)张出牌的目的,玩家2看有没有牌大于玩家1,如果有则出牌,没有就轮到玩家3,同理轮到玩家4。把每个玩家已经打过的牌进行赋值为13,目的就是防止再一次打牌。当所有玩家没有出牌时,上轮赢的玩家就会重新出牌。游戏结束是以某位玩家的牌先出完为胜。
五、 结论与改进
项目已完成的效果:
\1. 一副扑克52张牌,从小到大的顺序为:2、3、4、5、6、7、8、9、10、J、Q、K、A,
\2. 由电脑随机洗牌,并分成4份(4个电脑玩家),并设计出一个对弈函数,每家调用该函数实现自动出牌;出牌后,若所有下家都没有牌出,则当前这一家可以选择出其它牌。一次出牌可以是1张、2张一样、3张一样或者4张一样,下家所出的牌,需要大于上家出的牌,若上家出2张一样的,那下家也要出2张一样的,而且比它大的牌;
到此这篇关于C语言扑克牌游戏示例的文章就介绍到这了,更多相关C语言扑克牌内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
使用C语言求解扑克牌的顺子及n个骰子的点数问题
扑克牌的顺子 问题描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字. 思路:可以将这5张牌排个序,然后统计出0的个数以及非0数字之间的间隔数,如果出现重复的非0数字,那么不是顺子.如果间隔数小于等于0的个数,那么是顺子.暂时未想到更好的办法. 参考代码: //函数功能 : 从扑克牌中随机抽5张牌,判断是不是一个顺子 //函数参数 : pCards
-
C语言实现随机发扑克牌
本文实例为大家分享了C语言实现随机发扑克牌的具体代码,供大家参考,具体内容如下 算法如下: 1.将1-10作为方块.2-20作为梅花,3-30作为红桃,4-40作为黑桃,JQK以及大小王分别排序共54张存放在一维数组中. 3.3个人用一个二维数组来存放三人的牌. 2.主要分为打散(乱序),分配,显示三个操作 打散即洗牌:通过rand以及srand函数来获得,为了避免相同的序列,使用标准时间来作为序列种子. void shuffle(int *cards, int lenth) { int tem
-
C语言实现简易扑克牌游戏
将一副扑克牌平均分成两份,每人拿一份.a先拿出手中的第一张扑克牌放在桌上,然后b也拿出手中的第一张扑克牌,并放在a刚打出的扑克牌的上面,就像这样两人交替出牌.出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾.当任意一人手中的牌全部出完时,游戏结束,对手获胜. 以下是代码的实现: #define _crt_secure_no_deprecate #include<stdio.h> #include<stdlib.h>
-
C语言实现扑克牌计算24点
题目描述: 一副扑克牌的每张牌表示一个数(J.Q.K分别表示11.12.13,两个司令都表示6).任取4张牌,即得到4个1~13的数,请添加运算符(规定为加+ 减- 乘* 除/ 四种)使之成为一个运算式.每个数只能参与一次运算,4个数顺序可以任意组合,4个运算符任意取3个且可以重复取.运算遵从一定优先级别,可加括号控制,最终使运算结果为24.请输出一种解决方案的表达式,用括号表示运算优先.如果没有一种解决方案,则输出-1表示无解. 输入格式说明: 输入在一行中给出4个整数,每个整数取值在[1,
-
C语言扑克牌游戏示例
目录 一. 设计目的 二. 设计内容与要求 三. 设计思路 四. 实现过程 五. 结论与改进 一. 设计目的 扑克牌是我们从小玩到大的纸牌类小游戏,我们有各种玩法跟不同的规则.我之所以选择的这个扑克牌,是因为我觉得可以提高我的编程逻辑能力跟运用循环的能力.还能让我自由运用所学知识完成我的项目设计的需求,对我综合能力的能力很有挑战! 二. 设计内容与要求 (1)设计内容:扑克牌游戏. (2)介绍扑克牌:一副没有大小王的52张牌,该牌从大到小的顺序为:2.3.4.5.6.7.8.9.10.J.Q.K
-
通过JavaScript实现扑克牌游戏的示例代码
首先,我们知道一副牌里有54张牌,然后牌里的数字是从 3 - 2 的里面总共有13张牌,然后 4 中花色 分别是 ♠️ ♥️ ♣️ ♦️ 另外加上2个大小王!第一步:我们肯定需要有一个数组来装牌吧? 然后再书写一个函数,我们知道有多少张牌,然后牌里有多少花色是不是应该用一个双重循环将 number 里面的内容 和 flower 里面的内容 进行一个循环嵌入?最后在用 push 生成一个对象放到数组的后面?再到最后放入 大小王 . const number = ['3', '4', '5', '6
-
Java实现扑克牌游戏的示例代码
目录 一.三人扑克 二.具体实现 Card类 生成52张牌 打乱顺序 发牌 三.完整代码 一.三人扑克 想不想带上好朋友来上一局三人扑克呢. 二.具体实现 Card类 定义一个花色color变量和一个大小rank变量. public class Card { public int rank; public String color; @Override public String toString() { return String.format("[%s,%d]",color,ran
-
JAVA collection集合之扑克牌游戏实例
Collection 层次结构中的根接口.Collection表示一组对象,这些对象也称为collection的元素.一些 collection 允许有重复的元素,而另一些则不允许.一些 collection 是有序的,而另一些则是无序的.JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现.此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection. 主要内容:这里使用collection集合,模拟香港电影中大佬们玩的
-
Android轻松实现多语言的方法示例
本文介绍了Android轻松实现多语言的方法示例,分享给大家,具体如下: 1.创建多语言包 2.首先在onCreate方法中调用此方法查看上一次保存的是什么语言 public void setLanguage() { //根据读取到存放在sp里面的数据 进行设置 Configuration configuration = getResources().getConfiguration(); SharedPreferences sharedPreferences = getSharedPrefer
-
go语言基础语法示例
周末天气不好,只能宅在家里,于是就顺便看了一下Go语言,觉得比较有意思,所以写篇文章介绍一下.我想写一篇你可以在乘坐地铁或公交车上下班时就可以初步了解一门语言的文章.所以,下面的文章主要是以代码和注释为主.只需要你对Java,Python,C等编程语言有一点基础,我相信你会在30分钟左右读完并对Go语言有一些初步了解的. 本文的唯一目的,就是希望大家阅读之后,能够了解go语言长什么样子... Hello World package main //声明本文件的package名 import "fm
-
Java实现的简单掷骰子游戏示例
本文实例讲述了Java实现的简单掷骰子游戏.分享给大家供大家参考,具体如下: 要求: 掷两个骰子,每个骰子有六面, 分别为1.2.3.4.5.6.检查这两个骰子的和. 如果为2.3或12你就输了:如果和是7或者11你就赢了. 但如果和是其他数字(例如4.5.6.8.9或者10), 就确定了一个点.继续掷骰子直至抛出一个7或者 掷出和刚才相同的点数.如果掷出的是7,你就输了. 如果掷出的点数和你前一次掷出的点数相同, 你就赢了. java实现代码: enum Status { Win, Lose,
-
Android多语言适配的示例代码(兼容7.0+)
一.前言 1.安卓系统本身对多语言适配就提供了一套框架和API.我们就直接用就可以了. 2.更换语言必须recreate Activity.目前,没见过可以不重建的方法.常用App,也都是重建的,可以看的到. 3.兼容性问题.现在越来越多设备都是安卓7.0+新手机的安卓版本会更高(安卓8.0+),所以适配是必要的. 4.目前,网上大部分相关文章都是不兼容7.0+的,具体做法一搜一大把. 二.具体做法 1.多语言文件 文件夹命名参考下面博客(网上有很多): 多国语言value文件夹命名 value
-
简单实现C语言2048游戏
本文实例为大家分享了C语言2048游戏的具体代码,供大家参考,具体内容如下 /*2048*/ #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<time.h> //全局变量 int x[4][4]={0}; int score=0; int can_move; int empty() { int i,j; int n=0; for(i=0;i<4;i++) { for(j=0
-
C语言魔塔游戏的实现代码
很早就很想写这个,今天终于写完了. 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到.觉得麻烦的直接下载C-mota_jb51.rar 解压后点击sln文件直接可以运行 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char name[20] = "黑蛋"; //
随机推荐
- node.js 使用ejs模板引擎时后缀换成.html
- 三十四、 WIN2000注册表应用九例
- Android图片压缩以及优化实例
- Oracle安装遇到INS-30131错误的解决方法
- JS点击链接后慢慢展开隐藏着图片的方法
- js无提示关闭浏览器窗口的两种方法分析
- Android中BroadcastReceiver(异步接收广播Intent)的使用
- ASP Eval、Execute、ExecuteGlobal区别分析
- JSP 开发之Spring Boot 动态创建Bean
- MySQL的子查询中FROM和EXISTS子句的使用教程
- 用PHP获取Google AJAX Search API 数据的代码
- GMap.Net开发之自定义Marker使用方法
- Fine Uploader文件上传组件应用介绍
- linux下mysql如何自动备份shell脚本
- 菜鸟学习JavaScript小实验之函数引用
- 在Linux操作系统上安装和更新JAVA8的教程
- 详解CentOS阿里云云服务器硬盘分区及挂载
- 查找服务器变慢的方法
- 基于Java 注解(Annotation)的基本概念详解
- ES6学习教程之块级作用域详解