Problem mit eclipse cdt

chrisnolde

chrisnolde

Mitglied
Ich bräuchte hilfe von jemand der sich mit dem cdt plugin für eclipse auskennt.

ich hab ein kleines c- programm geschrieben das allein wunderbar funktioniert.

nur wenn ich es in der internen konsole von eclipse anschauen will passiert nichts...


ich hab echt keine ahnung woran das liegen könnte.

Code:
#define FELD_BREITE 9
#define FELD_HOEHE  5

#define LEER     ' '
#define SCHWARZ  'x'
#define WEISS    'o'

#define FALSE 0
#define TRUE  1

char spielFeld[FELD_BREITE][FELD_HOEHE];

#include <stdio.h>
#include <stdlib.h>

/**************************/
/* Funktionsdeklarationen */

void neuesSpiel();
void zeichneSpielfeld();
int  setzeStein(char stein, int x);
int  freiesFeld();
void dumpBuffer();
void spielzug(char c); 


/******************************/
/* Funktionsimplementierungen */

/* 
   Initialisiere das zweidimensionale Feld spielFeld mit leeren Einträgen
*/
void neuesSpiel() {
    int zeile;
    int spalte;
    for (zeile = 0; zeile <= FELD_HOEHE-1 ; zeile++)
    {
        for(spalte = 0 ; spalte <= FELD_BREITE-1 ; spalte++)
        {
            spielFeld[spalte][zeile] = LEER;
        }
    }
    
}


/*
   Zeichne Spielfeld als ASCII-Zeichen auf den Bildschirm.
   Darstellung x entspricht einem schwarzen und o einem weissen Stein.
*/
void zeichneSpielfeld() {
    int zeile;
    int spalte;
    int i;
    for (zeile = FELD_HOEHE-1; zeile >= 0 ; zeile--)
    {
        for( i = 0; i < FELD_BREITE;i++) printf("+-");
        printf("+\r\n");
        for(spalte = 0 ; spalte <= FELD_BREITE-1 ; spalte++)
        {
            printf("|%c",spielFeld[spalte][zeile]);            
        }
        printf("|\r\n");
    }
    for( i = 0; i < FELD_BREITE;i++) printf("+-");
    printf("+\r\n");
    for( i = 1; i <= FELD_BREITE;i++) printf(" %i",i);
    printf("\r\n");
}

/*
   Setze einen Spielstein in Spalte x.
   Durchlaufe die Spalte vom Boden des Spielfeldes her bis ein leeres Feld 
   gefunden wird und setze den entsprechenden Stein in der Spielfeldmatrix.
   Falls die Spalte des Spielfeldes voll ist oder der Index der 
   Spaltenindizierung ungültig ist wird -1 zurückgegeben, sonst die 
   y-Koordinate des gesetzen Spielsteins.
   x: [0, FELD_BREITE-1]
   y: [0, FELD_HOEHE-1]
*/
int setzeStein(char stein, int x) {
    int zeile;
    int treffer = -2;
    zeile = 0;
    while( zeile <= FELD_HOEHE-1 && treffer == -2)
    {
        if (spielFeld[x][zeile] == LEER)
        {
            treffer = x;
            spielFeld[x][zeile] = stein;
        }
        zeile++;
    }
    if ( treffer == -2 )
    {
        printf("Spalte %i schon voll besetzt.\r\n",x+1);
    }
    return treffer+1;     

} 

int freiesFeld() {
    int zeile;
    int spalte;
    zeile = FELD_HOEHE-1;
    for(spalte = 0 ; spalte <= FELD_BREITE-1 ; spalte++)
    {
        if(spielFeld[spalte][zeile] == LEER)
        {
            return TRUE;
        }
    }    
    return FALSE;
} 

/*  function dumpBuffer
 *  This function reads and dumps any remaining characters on the current input
 *  line.
 */
void dumpBuffer() {
  int ch;
  while( (ch = fgetc(stdin)) != EOF && ch != '\n' );
}

void spielzug(char c) {

  int zugX, zugY;   
  int spalte;
  
  do {
    spalte = -1;
    printf("Spieler %c: In welcher Spalte soll ein Stein gesetzt werden? [1:%i]\n", 
       c, FELD_BREITE);
    scanf("%i", &spalte);
    dumpBuffer();
    zugX=spalte-1;
    zugY=setzeStein(c, zugX);
  } while(zugY==-1);
  zeichneSpielfeld();
}


int main() {

   char weiter = 'j';
   char s1 = WEISS;
   char s2 = SCHWARZ;
   char s;
   int i;
   printf("Hallo es geht los!\r\n");
   while(weiter == 'j' || weiter == 'J') {
     neuesSpiel();  
     zeichneSpielfeld();
     i=0;
     s=s1;
     while(freiesFeld() == TRUE) {
       spielzug(s);
       i++;
       if(i%2==0) s=s1; else s=s2;   
     }
     printf("Neues Spiel? [J/N]\n");
     scanf("%c", &weiter);
     dumpBuffer();
   }
   printf("Ende\n");
   return 0;
}
 

Ähnliche Themen

"non blocking console input" wieder rückgängig machen?

Unix Webserver mit HTML Seite erstellen

ip6tables Problem

Crontab und Scripts - Problem

Port generieren, wenn nicht dann

Zurück
Oben