只使用开关声明的地雷游戏...错误发生,,,,?

时间:2012-02-20 12:49:13

标签: c++

看看这个...... https://www.youtube.com/watch?v=b7PD5969hho (它是氦离子:P(奇怪的是)我需要关于如何在不使代码超长的情况下合并2个电子的建议)

我也希望删除这些点。 http://www.2shared.com/document/RbqXfIdH/Helium_ion_XD.html(这是我的c ++代码)

下面的代码也有问题......我遇到了switch语句

的问题
#include<iostream>
#include<cmath>
#include<string>
#include<iomanip>
using namespace std;
#include <stdlib.h>

int main ()
{
   int i=1,t=0,live=3;
   char choice=' ';
   char b1='a';
   char b2='b';
   char b3='c';
   char b4='d';
   char b5='e';
   char b6='f';
   char b7='g';
   char b8='h';
   char b9='i';
   char b10='j';

   clear:
   switch (choice)
   case 'a':
      b1='*';
      live--;
      break;
   case 'b':
      b2='-';
      t++;
      break;
   case 'c':
      b3='*';
      live--;
      break;
   case 'd':
      b4='-';t++;
      break;
   case 'e':
      b5='-';t++;
      break;
   case 'f':
      b6='-';t++;
      break;
   case 'g':
      b7='-';t++;
      break;
   case 'h':
      b8='*';
      live--;
      break;
   case 'i':
      b9='-';t++;
      break;
   case 'j':
      b10='-';t++;
      break;
   ///////////////////////////BOX////////…
   cout<<setw(20)<<'|'<<setw(10)<<'|'<<se…
   cout<<setw(15)<<b1<<setw(5)<<'|'<<setw(5…
   cout<<setw(20)<<'|'<<setw(10)<<'|'<<setw…
   cout<<setw(20)<<'|'<<setw(10)<<'|'<<setw…
   cout<<setw(60)<<"---------------------…
   //////////////////////////////////////…
   cout<<setw(20)<<'|'<<setw(10)<<'|'<<se…
   cout<<setw(15)<<b6<<setw(5)<<'|'<<setw(5…
   cout<<setw(20)<<'|'<<setw(10)<<'|'<<setw…
   cout<<setw(20)<<'|'<<setw(10)<<'|'<<setw…
   cout<<setw(60)<<"---------------------…

   /////////////////////////////////box end/////////////////////////////////////…
   //////////////start////////////////
   cout<<setw(40)<<"THIS GRID CONTAINS 8 BOMBS...CHOOSE 15 NUMBERS WITHOUT hittng a landmine";  
   { 
      cout<<"YOUR "<<live <<"LIVES REMAIN"<<endl;
      cout<<"ENTER YOUR"<< i << "NUMBER :";
      i++;
      cin>>choice;
      if(t==15)
      {
         cout<<"YOU WIN";
         goto end;
      };
      if(live==0)
         cout<<"YOU LOSE";

      goto clear;};
   if(live==0)
      cout<<"YOU LOSE";
   end:
   return 0;
 }

1 个答案:

答案 0 :(得分:2)

我提供的视频中的第一印象是,您需要某种形式的简单图形库来输出您要执行的操作。在控制台中输出“伪图形”只会变得越来越混乱和管理混乱。例如,请查看SDL

要解决问题的第二部分,例如,你的switch语句需要大括号来封装它的主体。缩进和格式化实践将帮助您快速,独立地识别这些问题,因此养成使用这些问题的习惯是个好主意。

作为旁注,我建议您避免在代码中使用goto语句,当项目增长时,它们很快就会变得无法管理。也许修改你的C / C ++是个好主意。