|
#include <iostream>
#include <list>
#include <cstdlib>
#include <string>
using namespace std;
int js = 0;
string *ace[20] = {0};
list<string> ::iterator iter;
void begin()
{
cout << "**************************" << endl << "**************************" << endl <<
" 你在一次冒险中迷路了。。。。。" << endl << " 余下的食物和水只能坚持2天。。。。" << endl
<< " 3天时间,出不去便是死亡!" << endl << " (提示:每做出一次行动都会消耗0.5天的补给)"
<< endl << endl << endl << endl << endl << endl << endl << endl;
}
void p_ing()
{
list<string> a;
a.push_front("不前进是不行的\n"); //1
a.push_back("发现武器,这对野兽或许有点用,但会占用自身能带的东西\n"); //2
a.push_back("什么东西都没发现,希望能早点出去。\n"); //3
a.push_back("这里好像来过。\n"); //4
a.push_back("这是什么,野兽的毛发?\n"); //5
a.push_back("咦,这是什么?\n噢,感谢上帝,有食物!\n"); //6
a.push_back("滚开,该死的东西\n"); //7
a.push_back("你看见一只野狼\n"); //8
a.push_back("这里居然还有药品"); //9
a.push_back("这里也没有东西,该死,出路在哪?\n"); //10
a.push_back("出口!出口!上帝,我出来了!\n"); //11
a.push_back("没想到,我居然会死在这里。。。。\n"); //12
a.push_back("制作:zeroyetj,谢谢游戏!\n"); //13
int i = 0;
for (iter = a.begin(); iter != a.end(); iter++, i++)
{
js += 1;
*ace[i] = *iter;
}
}
void f_1()
{
int a;
*iter = *ace[1];
cout << *iter << endl;
cout << "1:向前走。";
cin >> a;
switch (a)
{
case 1:void f_2(); break;
}
}
void f_2()
{
int a;
*iter = *ace[2];
cout << *iter << endl;
cout << "1:向左走。" << "2:向右走。";
cin >> a;
switch (a)
{
case 1:void f_3(); break;
case 2:void f_4(); break;
}
}
void f_3()
{
int a;
*iter = *ace[3];
cout << *iter << endl;
cout << "1:向前走。" << "2:向左走。" << "3:向后走。";
cin >> a;
switch (a)
{
case 1:void f_5(); break;
case 2:void f_6(); break;
case 3:void f_2(); break;
}
}
int main()
{
begin();
p_ing();
cin.get();
f_1();
}
还没有写完,想先运行一下,结果。。。。 |
|
|
指针或迭代器未初始化
|
|
|
我应该都初始化了啊,指针为0,迭代器为list里第一个元素 |
|
|
确定都有初值? |
|
有啊 |
|
| 10分 |
下断点,调试
|
好像没什么用啊,他会自动打开一个头文件,然后显示下面的代码 |
|
|
你的ace数组内保存的是string*内型的元素,但是你却尝试赋string型的值给它.
|
|
| 10分 |
*ace[i] = *iter; 改成 ace[i] = new string(*iter); |
*ace[i] = *iter; 谢谢,一直有事耽搁了,这样一来好像整个程序都要改的样子 |
|