该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

//SimGame:  cell.h

//格子的类

#ifndef CELL_H

#define CELL_H

#include "mouse.h"

//格子的基类

class TapBase

{

public:

TapBase(int x,int y):p1(new Mouse1),p2(new Mouse2){

Rlife=x;

Acoin=y;

}

virtual ~TapBase(){}

virtual intReduceLife(int n);//计算减少生命值  n为老鼠的种类

virtual int AddCoin(int n);//计算增加金币值  n为老鼠的种类

virtual int IsTrap() {return 0;};//判断是否为带障碍的格子

virtual int getRlife() {return Rlife;}//返回减少生命值

virtual int getCoin() {return Acoin;}//返回增加金币值

virtual int getMouseLife(int n) {//返回老鼠的生命值n为老鼠的种类

if(n==1)return p1->getLife();

if(n==2)return p2->getLife();

}

protected:

int Rlife;

int Acoin;

MouseBase * p1;

MouseBase * p2;

};

//格子的派生类1: 普通格子

class Tap1:public TapBase

{

public:

Tap1():TapBase(0,0){}

virtual int IsTrap() {return 0;}

};

//格子的派生类2: 带金币的格子

class Tap2:public TapBase

{

public:

Tap2():TapBase(0,50){}

virtual int IsTrap() {return 0;}

};

//格子的派生类3: 带陷阱的格子

class Tap3:public TapBase

{

public:

Tap3():TapBase(80,0){}

virtual int IsTrap() {return 0;}

};

//格子的派生类4: 带障碍的格子

class Tap4:public TapBase

{

public:

Tap4():TapBase(0,0){}

virtual int IsTrap() {return 1;}

};

#endif // CELL_H ///:~

//SimGame: mouse.h

#ifndef MOUSE_H

#define MOUSE_H

//老鼠的基类

class MouseBase

{

public:

MouseBase(int x,int y){

life=x;

coin=y;

}

virtual ~MouseBase(){}

virtual int getLife()=0;

virtual int getCoin()=0;

protected:

int life;

int coin;

};

class Mouse1:public MouseBase

{

public:

Mouse1():MouseBase(100,100){}

virtual ~Mouse1(){}

virtual int getLife(){return life;}

virtual int getCoin(){return coin;}

};

class Mouse2:public MouseBase

{

public:

Mouse2():MouseBase(100,100){}

virtual ~Mouse2(){}

virtual int getLife(){return life;}

virtual int getCoin(){return coin;}

};

#endif // MOUSE_H ///:~

//simgame.h

#ifndef SIMGAME_H

#define SIMGAME_H

#include "mouse.h"

#include "cell.h"

class SimGame

{

public:

SimGame(){

array=0;

}

virtual ~SimGame(){}

virtual void Init(int * p,int n);

virtual void Run(int num);

//void Terminate();

private:

TapBase ** array;   //格子的指针数组

static int site1;   //老鼠1的位置

static int site2;//老鼠2的位置

static int datemax; //main函数中给定数组的上界     用来防止数组超界

};

#endif // SIMGAME_H ///:~

//cell.cpp

#include "cell.h"

#include

//TapBase::ReduceLife

int TapBase::ReduceLife(int n)

{

if(n==1){

static int m1=p1->getLife();

m1-=Rlife;

return m1;

}

if(n==2){

static int m2=p2->getLife();

m2-=Rlife;

return m2;

}

}

//TapBase::AddCoin

int TapBase::AddCoin(int n)

{

if(n==1){

static n1=p1->getCoin();

n1+=Acoin;

return n1;

}

if(n==2){

static n2=p2->getCoin();

n2+=Acoin;

return n2;

}

}

//simgame.cpp

#include

#include "cell.h"

#include "mouse.h"

#include "simgame.h"

JAVA大富翁游戏编程_一道模拟大富翁游戏的程序,希望高手指教一下相关推荐

  1. Java Review - 并发编程_ 回环屏障CyclicBarrier原理源码剖析

    文章目录 Pre 小Demo 类图结构 CyclicBarrier核心方法源码解读 int await() int await(long timeout, TimeUnit unit) int dow ...

  2. Java Review - 并发编程_读写锁ReentrantReadWriteLock的原理源码剖析

    文章目录 ReentrantLock VS ReentrantReadWriteLock 类图结构 非公平的读写锁实现 写锁的获取与释放 void lock() void lockInterrupti ...

  3. Java Review - 并发编程_原子操作类LongAdder LongAccumulator剖析

    文章目录 概述 小Demo 源码分析 重要的方法 long sum() reset sumThenReset longValue() add(long x) longAccumulate(long x ...

  4. 使用python开发网页游戏_四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程...

    原标题:四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程 前言 学习编程虽然对有些人来说是件乐事,但是对大多数人来说仍然是一件比较枯燥困难的事情.当然,面临这样困惑的人,并不是只有你一个 ...

  5. 【游戏编程扯淡精粹】游戏编程设计模式

    [游戏编程扯淡精粹]游戏编程设计模式 本文最初写于2018/9/4 毛星云 RIP 如何练习设计模式 基本盘:长期维护一个大型工程,持续积累 维护一个设计模式表格,日常查找使用 多学几门编程语言和编程 ...

  6. 【3D游戏编程与设计】一 游戏的分类与热点

    [3D游戏编程与设计]一 游戏的分类与热点 游戏分类与热点探索 使用思维导图描述游戏的分类.(游戏分类方法特别多) 按游戏设备划分 按游戏参与者类型划分 按网络使用情况划分 按视角维度划分 按人称视角 ...

  7. 开始利用CSDN做学习笔记,从windows 游戏编程大师技巧和3D游戏编程大师开始

    利用两个月的空余时间将windows 游戏编程大师技巧和3D游戏编程大师技巧看了一遍. 第一遍读的并不深入,代码也没有仔细研究.特别是3D下册,基本只是草草浏览了一遍而已.这一遍是为了对整体有个印象和 ...

  8. easyx游戏编程:魔塔(C++游戏开发)

    easyx游戏编程:魔塔(C++游戏开发) 魔塔: 本游戏用到了图形界面库graphics.h,图形界面库下载安装: 下载链接: https://easyx.cn/downloads/. 下方有源码. ...

  9. 【3D游戏编程与设计】四 游戏对象与图形基础 : 构建游戏场景+牧师与魔鬼 动作分离版

    [3D游戏编程与设计]四 游戏对象与图形基础 : 构建游戏场景+牧师与魔鬼 动作分离版 基本操作演练 下载 Fantasy Skybox FREE, 构建自己的游戏场景 下载 Fantasy Skyb ...

最新文章

  1. opencv读取avi视频并抽取帧
  2. 鸟哥的Linux私房菜基础学习篇(第二版)第二章课后习题与答案
  3. 路由器计算机无法上网,路由器安装后电脑无法上网怎么办
  4. flink 自定义 窗口_《从0到1学习Flink》—— Flink Data transformation(转换)
  5. Win10一周更新系统开始面向企业分支推送
  6. 《可爱的Python》读书笔记(五)
  7. 批量下载小说网站上的小说(python爬虫)
  8. 【Java】获取Java代码段运行毫秒数的策略
  9. Laravel核心解读--完结篇 1
  10. [CTO札记]谁在使用SNS
  11. 网友调侃特斯拉股价要冲向火星 马斯克:疯狂的时代
  12. 笔记本电脑主板电池_深圳外星人笔记本电脑维修服务中心
  13. 我们需要什么样的计算
  14. C/C++——黑客数字雨特效
  15. 77---Python 计算Sin(x)的积分
  16. xign跨平台游戏引擎演示
  17. 微信公众号文章怎么制作?
  18. 小刘的BUG(sql注入)
  19. Android Studio4.0|XXX keeps stopping
  20. [SUCTF 2019]EasySQL1

热门文章

  1. Echarts解决默认单位为PX
  2. C语言--编写程序,从键盘输入月份号,输出该月的英文名。(用指针知识)
  3. 【立创开源】两节锂电池8.4V充电电路(USB-5V充电)
  4. 数据库2:SELECT-天池龙珠计划SQL训练营
  5. 双边滤波opencv-python
  6. R-C3D—基于区域卷积3D网络的时序行为检测
  7. 视频播放的微信小程序
  8. kotlin list总结
  9. Kotlin 自定义 View
  10. Redis - 慢查询