资源简介
采用C++开发的基于控制台的应用程序.
完成三国杀部分基本功能:杀,闪,桃,无中生有,过河拆桥,无懈可击,顺手牵羊,诸葛连弩,青釭剑,+1马,-1马.
三国杀最复杂之处在于逻辑性直观但是很不好把握.

代码片段和文件信息
#include “stdafx.h“
#include “card.h“
#include “heap.h“
#include “util.h“
//Card
ostream& operator<<(ostream &outCard &cd)
{
char *cl[]={“““黑桃““红心““梅花““方片“};
out<<“[“< if(cd.value==1) out<<“A“;
else out< cout<<“]“;
return out;
}
//Equipment
Equipment::Equipment()
{
for(int i=0;i<4;i++)
equip[i]=NULL;
}
Equipment::~Equipment()
{
for(int i=0;i<4;i++)
delete equip[i];
}
ostream& operator<<(ostream &outEquipment &eq)
{
out<<“[装备]: “;
for(int i=0;i<4;i++)
{
out< if(eq[i]!=NULL)
out<<*(eq[i]);
out<<“ “;
}
return out;
}
void Equipment::add(Card* cd)
{
int k;
switch(cd->type)
{
case 7:
case 8: k=0; break;
case 9:
case 10: k=1; break;
case 11: k=2; break;
case 12: k=3; break;
default: return;
}
//如果装备区原本有牌则需收集
if(equip[k]!=NULL)
hp.collect(equip[k]);
equip[k]=cd;
}
void Equipment::remove(int kbool bring)
{
//如果不是顺手则收集
if(!bring)
hp.collect(equip[k]);
equip[k]=NULL;
}
int Equipment::count()
{
int cn=0;
for(int i=0;i<4;i++)
if(equip[i]!=NULL)
cn++;
return cn;
}
bool Equipment::has(int type)
{
for(int i=0;i<4;i++)
if(equip[i]!=NULL&&equip[i]->type==type)
return true;
return false;
}
Card* Equipment::operator[](int k)
{
return equip[k];
}
//Hand
Hand::Hand()
{
top=0;
for(int i=0;i<10;i++)
hand[i]=NULL;
}
Hand::~Hand()
{
for(int i=0;i<10;i++)
delete hand[i];
}
ostream& operator<<(ostream &outHand &hd)
{
out<<“[手牌]:“< for(int i=0;i {
out< if((i+1)%4==0)
cout< }
return out;
}
void Hand::add(Card* cd)
{
hand[top]=cd;
top++;
}
void Hand::remove(int kbool bring)
{
int last=top-1;
if(!bring)
hp.collect(hand[k]);
hand[k]=hand[last];
hand[last]=NULL;
top--;
}
int Hand::count()
{
return top;
}
int Hand::has(int type)
{
for(int i=0;i if(hand[i]->type==type)
{
return i;
}
return -1;
}
Card* Hand::operator[](int k)
{
return hand[k];
}
//People
People::People(char *chbool _me)
{
life=max_life=4;
strcpy_s(namech);
me=_me;
}
void People::disp()
{
int y=0yy=getY();
if(!me) y=7;
clear(y5); gotoxy(y);
cout< cout< gotoxy(yy);
}
void People::entry(People &other)
{
first=true;
cal_dis(other);
}
void People::cal_dis(People &other)
{
int ki=1br=1;
//我有青釭剑
if(eq.has(8)) ki++;
//他有+1马
if(other.eq.has(11))
{
ki--;
br--;
}
//我有-1马
if(eq.has(12))
{ ki++;
br++;
}
bkill=(ki>=1)?true:false;
bring=(br>=1)?true:false;
}
//0=无 1=仅装备 2=仅手牌 3=都有
int People::cards()
{
int cn=0;
if(eq.count()>0) cn += 1;
if(hd.co
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-01-06 13:29 三国杀\
目录 0 2012-01-06 13:29 三国杀\Debug\
文件 104448 2012-01-06 13:26 三国杀\Debug\三国杀.exe
目录 0 2012-01-06 12:18 三国杀\ipch\
目录 0 2012-01-06 12:18 三国杀\ipch\三国杀-b3493956\
文件 2359296 2012-01-06 13:18 三国杀\ipch\三国杀-b3493956\三国杀-26ca9512.ipch
目录 0 2012-01-04 12:51 三国杀\三国杀\
文件 894 2012-01-03 13:00 三国杀\三国杀.sln
文件 17920 2012-01-06 13:29 三国杀\三国杀.suo
文件 11314 2012-01-06 13:26 三国杀\三国杀\card.cpp
文件 2034 2012-01-06 13:10 三国杀\三国杀\card.h
目录 0 2012-01-06 13:28 三国杀\三国杀\Debug\
文件 2168 2012-01-06 13:28 三国杀\三国杀\Debug\三国杀.Build.CppClean.log
文件 1856 2012-01-05 18:33 三国杀\三国杀\heap.cpp
文件 584 2012-01-06 13:07 三国杀\三国杀\heap.h
文件 1567 2012-01-03 13:00 三国杀\三国杀\ReadMe.txt
文件 490 2012-01-06 12:54 三国杀\三国杀\sgs.txt
文件 211 2012-01-03 13:00 三国杀\三国杀\stdafx.cpp
文件 233 2012-01-03 13:00 三国杀\三国杀\stdafx.h
文件 236 2012-01-03 13:00 三国杀\三国杀\targetver.h
文件 1254 2012-01-06 13:10 三国杀\三国杀\util.h
文件 161 2012-01-05 18:00 三国杀\三国杀\三国杀.cpp
文件 4554 2012-01-04 12:52 三国杀\三国杀\三国杀.vcxproj
文件 1747 2012-01-04 12:52 三国杀\三国杀\三国杀.vcxproj.filters
文件 143 2012-01-03 13:00 三国杀\三国杀\三国杀.vcxproj.user
文件 402 2012-01-06 13:36 三国杀\说明.txt
- 上一篇:mfc 对话框 创建进度条 显示当前进度
- 下一篇:[C++]多维离散小波变换库
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
评论
共有 条评论