⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 C++制作的简单的文字游戏
💻 CPP
字号:
#include <iostream>
#include <fcntl.h>
#include <io.h>
#include "player.h"
#include "actor.h"
using namespace std;
class t
{
public:
		t()
		{

		}
		void getname(char* f);
		void getinsect(char *g);
		int x,y;
		char* m_name;
		char* m_insect;
		void ia(int a)
		{
			m_name=new char[a];
		}
		void ib(int b)
		{
			m_insect=new char[b];
		}
		t::~t()
		{
			delete[] m_name;
			delete[] m_insect;
		}
};
t* t1;
void initiate(int r,int j)
{	
	int point;
	int len,len2;
	char* mem;
	char* mem2;
	char* mem0;
	char* mem1;
	char* m1;
	char *m2;
	point=_open("地图.txt",_O_RDONLY);
	len=_filelength(point);
	_close(point);
	point=_open("地图介绍.txt",_O_RDONLY);
	len2=_filelength(point);
	_close(point);
	mem=new char[len];
	mem1=new char[len2];
	mem0=mem;
	mem2=mem1;
	m1=mem;
	m2=mem1;
	FILE *p;
	p=fopen("地图.txt","rb");
	fread(mem,len,1,p);
	fclose(p);
	FILE *q;
	q=fopen("地图介绍.txt","rb");
	fread(mem1,len2,1,q);
	fclose(q);
	t1=new t[r*j];
	for (int k=0;k<j;k++)
		for(int h=0;h<r;h++)
		{
			t1[k*r+h].x=h;
			t1[k*r+h].y=k;


			int cx=0;
			while (*mem0!='-')
			{
				cx++;
				mem0++;
			}
			mem0+=1;
			t1[k*r+h].ia(cx);
			strncpy(t1[k*r+h].m_name,mem,cx);
			t1[k*r+h].m_name[cx] = '\0';
			mem+=cx+1;

			//cout << cx << endl;


			int dx=0;
			while (*mem2!=' ')
			{
				dx++;
				mem2++;
			}
			mem2+=1;
			t1[k*r+h].ib(dx);
			strncpy(t1[k*r+h].m_insect,mem1,dx);
			t1[k*r+h].m_insect[dx] = '\0';
			mem1+=dx+1;
		}
		delete[] m1;
		delete[] m2;
}
void mapshow(char* g)
{
	int point;
	int len;
	point=_open(g,_O_RDONLY);
	len=_filelength(point);
	_close(point);
	char* play=new char[len];
	FILE *pfile;
	pfile=fopen(g,"rb");
	fread(play,len,1,pfile);
	fclose(pfile);
	int i=0;
	while(i<len)
	{
		cout<<play[i];
		i++;
	}
	cout<<endl;
	delete[] play;
}
void main()
{
	initiate(5,5);
	
	cout<<"输入人物名字"<<endl;
	char name[10];
	int act,eat;
	cin>>name;
	player p1(name,"初入江湖",100,100,5000,0,0);
	p1.book();
	cin>>eat;
	while (p1.gethp()>0)
	{
		t *tp=t1;
		mapshow("地图.txt");
		for(int i=0;i<=4;i++)
			for(int j=0;j<=4;j++)
			{
				if (p1.x==tp->x&&p1.y==tp->y)
				{
					cout<<tp->m_name<<endl;
					cout<<tp->m_insect<<endl;
				}
				tp++;
			}
		cout<<"买货物请输入1"<<endl;
		cin>>act;
		if (act==1)
		{
			cout<<"请输入买的数量"<<endl;
			cin>>act
			p1.buy()
		}
		cout<<"小键盘输入8向上走,6向右,4向左,2向下"<<endl;
		cin>>act;
		switch(act)
		{
		case 8:
			p1.y-=1;
			if (p1.y==-1)
				p1.y=4;
			break;
		case 2:
			p1.y+=1;
			if (p1.y==5)
				p1.y=0;
			break;
		case 6:
			p1.x+=1;
			if (p1.x==5)
				p1.x=0;
		    break;
		case 4:
			p1.x-=1;
			if (p1.x==-1)
				p1.x=4;
		    break;
		}
		p1.eat(eat);
		p1.act(act);
		p1.disply();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -