资源描述
实验报告
实验需求:
需求分析
本次试验包括三类,有card类,player类,game.h。试验过程中先有对游戏的简介,然后进入玩牌界面,有洗牌和发牌过程。发牌后有牌面设计的形式,比较符合实际中的牌的排列形式。这样比较容易让人看懂,然后通过按任意键来开始游戏,总牌数为五十二张,分别发给每一个player,每个人先把对儿拿出去,再相互抽对方的牌,直到最后其中一方只剩下大王和一张八。游戏结束。试验中主要难点是设计牌面,抽牌过程。
实验小组成员:
陶坤栋 邢翱 张健伦 赵培培
Card 类,每张扑克牌的属性集合,对象为扑克牌。<Card.h>里的。
Color花色 number
Player类,来类化玩家,实例化为玩家。<Player.h>里的
玩家的牌数number 牌面(phead下指针)
游戏的主要执行编码
<Game.h>里的函数:
{
void cancel(Card *pc,Card * &ph); //删除结点
void canceldouble(Player *player,int n) ;//删除成对的牌
void Giveout(Player * player,int a); //给玩家发牌
void showplayer(Player *player,int n);//显示玩家手里的牌
void vircancel(Card *pc,Player & player) ;//假删除只除名不删除内存
void comparecard(Player & player,Card * pc);//比较有无相同的牌 有删没连接上
Card *find(Card * ph,int n) ;//查找所要抽取的牌的地址
void index(Card * &ph,Card *pc,int n);//将抽取的牌插入玩家已有牌中
int playgame(Player * player,int n) ;//进行游戏
void introduction();//开始的引入介绍
void end();//结局语
}
游戏流程:引入语【introduction( )】 然后发牌【Giveout( )】 显示玩家的牌 【showplayer()】 删除玩家手中的相同的牌【cancedouble()】 进入游戏【 playgame()】 抽取牌并假删除【vircancel()】 然后将抽取的牌与玩家手中的牌比较【comparecard】 相同的删除【delete】,不同的插入【index()】
玩家依次抽取牌,知道只有一个玩家剩两张牌是结束【end()】
最两张牌为“王,八”即持牌者为……。游戏结束。
整个游戏两个类,一个Game 文件,采用链表形式来连接玩家手里的牌,包括显示,删除,进行游戏,比较,等等利用链表的创建,循环,删除,查找,插入来完成游戏。
游戏中采用的函数特色:
Card:
Show(0,0) showline(,0,15) 合一块 一张牌
从牌数最多的玩家开始游戏,抽取下一个玩家的牌:
显示相同的牌,并删除相同的牌
注意牌数变化
删除被抽的牌,转到其他玩家手里
跳过没牌玩家,继续游戏
游戏的结局
最后一个持牌玩家,即使本游戏的输家!
展开阅读全文