/**********************************************************/
/*Prinz Stefan/2BHEL                                      */
/**********************************************************/
/*Schiffe versenken +Highscore                            */
/**********************************************************/

#include 
#include 
#include 
#include "raster.h"                   

using namespace std;

typedef int koo[61][21];

struct ship
{
  int breite,lange,startx,starty;                     //Breite des Schiffes, Länge des Schiffes
                                                      //Feld (vom Rand x7,y3) 
  char lage;                                          //Senkrecht[s] Waagrecht[w]
};
struct game
{
  char name[25];                                      //Name der Spieler
  int treffer,punkte,farbe,fehler;                    //Anzahl der Treffer, Punkte der Spieler, Farbe der Spieler, Fehltreffer
  long lmin,lsec;                                     //Zeiten der Spieler
};

void Zeit(long &,long &,long &);
void positionen(ship *, koo,int,int,int);
int steuer(ship *, koo, game *,int,int,int,long &,long &,long &);
void Eingabe(game *,int,int &,int &,int &);
char prufen(koo,int,int,int &,game *);
char ausgabe(game *, int,long,long);
void highscore(game *);
char Hausgabe(void);

int main(void)
{
  srand(time(NULL));
  ship Schiff[25];                                    //maximale anzahl der Schiffe: 25
  koo FELD;
  int i=0,a=0,b=0,sAnz=0,GROSEx=30,
      GROSEy=15,ANZAHL=4,treffer=0;
  long ubertr,Startz=0,minuten;
  bool fertig;
  game Spieler[2];
  char ende,c_eingabe;
  
  do
  {        
    i=0;a=0;b=0;sAnz=0;GROSEx=30;GROSEy=15;ANZAHL=4;treffer=0;Startz=0;
    do
    {
      clrscr();
      gotoxy(10,2);
      cout << "(1) __ [1] Spieler?";
      gotoxy(10,4);
      cout << "(2) __ [2] Spieler?";
      gotoxy(10,6);
      cout << "(3) __ [H]ighscore anzeigen";
      gotoxy(10,8);
      cout << "(4) __ Spiel [B]eenden";
      gotoxy(10,10);
      c_eingabe=getch();
      c_eingabe=tolower(c_eingabe);
      if(c_eingabe=='h')
        c_eingabe='3';
      else if(c_eingabe=='b')
        c_eingabe='4';
      sAnz=int(c_eingabe-'0');
    }while((sAnz!=1)&&(sAnz!=2)&&(sAnz!=3)&&(sAnz!=4));
  
  if(sAnz==3)
    ende=Hausgabe();
  else if(sAnz==4)
    ende='N';
  else
  {
    Eingabe(Spieler,sAnz,GROSEx,GROSEy,ANZAHL);
    for(a=0;a enthalten in raster.h            
    positionen(Schiff,FELD,GROSEx,GROSEy,ANZAHL);
    fflush(stdin);
    if(getch())
    {
      time(&Startz);                                //Setzen der anfangszeit
      Spieler[0].treffer=0;
      Spieler[0].punkte=1;
      Spieler[1].treffer=0;
      Spieler[1].punkte=1;
      Spieler[0].fehler=0;
      Spieler[1].fehler=0;
      ubertr=0;
      minuten=0;
      gotoxy(1,8);
      cout << " Zeit";
      do
      { 
        gotoxy(1,1);                                                         //Steuerung von Player1
        textcolor(Spieler[0].farbe);
        clreol();
        printf("************* %s ***************",Spieler[0].name);
        treffer=steuer(Schiff,FELD,Spieler,0,GROSEx,GROSEy,Startz,ubertr,minuten);
        switch(treffer)
        {
        case 1:
          Spieler[0].treffer++;
          Spieler[0].punkte+=50;break;
        case 2:
          return 0;                            //Abbruch wenn ESC gedrückt wurden
        default:
          Spieler[0].punkte--;
          Spieler[0].fehler++;
        }
        gotoxy(10,21);
        textcolor(Spieler[0].farbe);
        printf("Punkte Spieler1: %d",Spieler[0].punkte);
        if(sAnz==2)                                                            //Steuerung von Player2
        {
          gotoxy(1,1);
          textcolor(Spieler[1].farbe);
          clreol();
          printf("************* %s ***************",Spieler[1].name);
          treffer=steuer(Schiff,FELD,Spieler,1,GROSEx,GROSEy,Startz,ubertr,minuten);
          switch(treffer)
          {
          case 1:
            Spieler[1].treffer++;
            Spieler[1].punkte+=50;
			break;
          case 2:                                         //Abbruch wenn ESC gedrückt wurden
            return 0;
          default:
            Spieler[1].punkte--;
            Spieler[1].fehler++;
          }
          gotoxy(10,22);
          textcolor(Spieler[1].farbe);
          printf("Punkte Spieler2: %d",Spieler[1].punkte);
        }
        fertig=0;          
        i=0;
        for(a=0;a