一设计目的
1. 培养学生运用算法与数据结构的基本知识解决实际编程中的数据结构设计和算法设计问题。
2. 培养学生独立设计程序与解决问题的能力,培养学生团队协作集成程序模块及调试能力。
3. 培养学生初步的软件设计及软件测试的能力。
二、设计任务及要求:
设计任务:
设计并实现《斗地主》、《德州扑克》、《跑得快》、《推火车》四种棋牌游戏的一种。游戏规则参照QQ游戏。需要注意的是,本课程设计不要求图形界面,同学们可以在控制台模拟游戏过程即可。不需要网络通信,也就是说,启动程序后,一人扮演多种玩家,实现游戏过程,最终分出胜负即可。对实现图形界面的同学可以考虑另行加分。
设计要求:
学生必须仔细阅读《数据结构》课程设计指导书,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。
学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。
课程设计按照教学要求需要一周时间完成,一周中每天(按每周5天)至少要上2小时的机来调试C语言设计的程序,总共至少要上机调试程序10小时。
根据设计报告要求编写设计报告。
每个人必须有可运行的程序,学生能对自己的程序面对教师提问并能熟练地解释清楚,学生回答的问题和程序运行的结果作为评分的主要衡量标准。
三程序包括的功能:
随机发牌
打印当前玩家的手牌
判断玩家出牌的类型
自动删除已经出过得牌
判断玩家的牌是否符合出牌规则
判断出输赢
改变背景和字体颜色
四主要功能的实现方法:
,,。
(2)static deck* deck_init() 洗牌堆
static void player_init() 初始化玩家
static void handcard_init() 补全扑克牌
的信息如大小王
void print() 打印当前玩家手牌
void gc() 游戏初始化
static int require() 询问是否出牌
static void reset() 清空出牌缓冲区
static void buffer_put() 放牌进入缓冲区
static void turnstart() 定义界面
static int continuum(int num,int total) 判断是否连续
static int type_buffer() 获取缓冲区牌类型
static int level_buffer(int type) 获取缓冲区牌类等级
static void annealation() 除去走过的手牌
void turning() 回合循环
void turn_switch() 切换玩家
int main() 主函数
(3)char num[] 存储了扑克牌的数字
char* type_arr[] 存储牌的类型
char* sta_arr[2] 存储玩家的角色
typedef struck card 定义卡的存储结构
typedef struck players 定义玩家的存储结构
typedef struck games 定义桌面的存储结构
typedef struck buffers 定义出牌缓冲区
(4)main函数中调用gc()函数完成游戏初始化,再
调用turning函数完成游戏循环出牌,其次调用win()函数判断是否产生胜者,最后调用turn_swith()函数;另外应用#include<> system(color, )来完成背景和字体颜色的改变。
五所用到的数据结构知识:
;
#ifndef __HEAD_H__
#define __HEAD_H__
#define MAXLEVEL 15
typedef struct DECK{
int top;
int arr[55];
}deck;
typedef struct PLAYERS{
int id;
int status;
card handcard[21];
int size;
}players;
typedef struct GAMES{
int type;
int level;
int sum;
int who;
int count;
int arr[16];
}games;
typedef struct CARD{
int number;
int level;
char *flower;
char num;
技术经济概论 第八章 投资项目的经济评价 来自淘豆网m.daumloan.com转载请标明出处.