资源简介
采用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++]多维离散小波变换库
相关资源
- [C++]多维离散小波变换库
- C语言C++通用自定义log打印函数
- SVM算法C++代码
- MFC(C++)程序与文件关联后缀名含C
- 实现追赶法求解三对角矩阵方程组的
- Win32窗口创建源码 by浅墨
- vc++6.0配置OpenCV
- http协议实现c++
- log4z-master
- 象棋C++棋牌网络游戏
- compat-libstdc++-33-3.2.3.i386.rpm
- C++学籍管理系统
- VC++ 多光谱影像处理
- C++ 几何运算源码
- 音像店(用c++做的课程设计)
- 基于MPI-GA的TSP问题C++代码
- C++ 开发大全基础篇PDF扫描版
- RANSAC算法 C++实现
- DNS中继服务器C++版
- Huffman 编码器与解码器-----数据结构课
- 酒店管理系统 VC++ MFC实现)
- 不精确一维搜索wolfe算法
- 用c++ 定义一个车(Vehicle)基类,有
- c++写的学生成绩管理系统
- 操作系统实习:动态分区分配C++实现
- 遥感图像彩色合成C++
- vc++ 浏览器 完整版
- 电话簿管理程序C++语言编写
- C++选课系统
- 原创c++二叉树抽象数据类型实现
评论
共有 条评论