3 gewinnt

lz9c1j

Mitglied
also habe wiedermal ne kleine frage. ich möchte das 3 gewinnt programmieren. das sieht (sollte) dann so aussehen.

A B C
------------------
1 | | | |
------------------
2 | | | |
------------------
3 | | | |
-----------------

jetzt die frage. ich möchte das man ein feld eingeben kann. z.B A1 und dass es dann ein x macht. wie mach ich jetzt dort das x rein?

hoffe auf gute antworten

nimmt die abstände leider nicht mit. sollten immer 5 abstände sein dazwischen
 
habe es jetzt trotzdem anderst gemacht. ich habe jedem feld eine nummer gegeben 1-9. ich habe es zahl1-zahl9 gennent. wie kann ich in char eine zahl eingeben. ich möchte eben, wenn einer ein feld gewählt hat das dort ein x oder ein o steht. bei int geht das ja nicht. und bei char müsste ich die felder zuerst benennen mit zahlen. aber wie? sonst mach ich es im schlimmsten fall mit a, b usw.
 
Hi!

Also mit den Informationen kann man eigentlich alles antworten!

Was hast du bis jetzt überhaupt an Code?
Welche Sprache C oder C++?
Wie werden die Felder gespeichert?
Console oder GUI? (Eingabe)

Wenn du diese Fragen beantwortet hast, kann man dir vielleicht helfen!

Gruß
Johannes
 
#include <stdio.h>

void main()

{

int zahl1=1;
int zahl2=2;
int zahl3=3;
int zahl4=4;
int zahl5=5;
int zahl6=6;
int zahl7=7;
int zahl8=8;
int zahl9=9;



printf("\n ------- ------- ------- ");
printf("\n| | | |");
printf("\n| %i | %i | %i |", zahl1, zahl2, zahl3);
printf("\n| | | |");
printf("\n ------- ------- ------- ");
printf("\n| | | |");
printf("\n| %i | %i | %i |", zahl4, zahl5, zahl6);
printf("\n| | | |");
printf("\n ------- ------- ------- ");
printf("\n| | | |");
printf("\n| %i | %i | %i |", zahl7, zahl8, zahl9);
printf("\n| | | |");
printf("\n ------- ------- ------- ");


getchar();

}


hoffentlich sind da alle nötigen fragen beantwortet. ausser die letzte verstehe ich nicht richtig. ich wollte einfach mal das spielfeld machen. und seit dort bin ich mir folgende frage von oben am überlegen. müsste man die felder vielleich in char änder. will eben, wenn man ein feld gewählt hat, dass ein x oder o erscheint anstelle der zahl.

thx for help

edith: man sieht nie schön aus :( nimmt die abstände nie mit
 
man sieht nie schön aus nimmt die abstände nie mit
benutze [ CODE ] [ /CODE ]

nimm doch ein 3x3 Matrix
Code:
char Feld[3][3];
int y,x;

// am anfang des Spiels
for(x= 0;x < 3;x++)
for(y= 0;y < 3;y++)
{
  Feld[x][y] = ' ';
}

// das Malen
for(y= 0;y < 3;y++)
{
  printf("\n ------- ------- ------- ");
  printf("\n|       |       |       |");
  printf("\n|   %c   |   %c   |   %c   |", Feld[0][y], Feld[1][y], Feld[2][y]);
  printf("\n|       |       |       |");
}

Du musst nur noch in das entsprechende Feld[][] ein 'x' oder 'o' eintragen
 
sieht gut aus, aber ich verstehe es leider nicht ganz. nämlich: wie heisst das erste feld auf der zweiten zeile. ach feld[0] [y]
 
Hi,

erst mal zur letzen Frage. Consolen-Anwendungen zeigen dem User im Gegensatz zu GUI-Anwendungen nur Text als Programmausgaben. Du hast die Frage allerdings durch deinen Code-Schnipsel beantwortet: Es handelt sich um eine Consolenanwendung.

Noch ein kleiner Hinweis: Benutze beim Posten von Code IMMER die dafür vorgesehenen Code-Tags! So bleiben die Einrückungen erhalten!
(Ich habs mal für dich gemacht :))
Code:
#include <stdio.h>;

void main()
{
    int zahl1=1;
    int zahl2=2;
    int zahl3=3;
    int zahl4=4;
    int zahl5=5;

    int zahl6=6;
    int zahl7=7;
    int zahl8=8;
    int zahl9=9;

    printf("\n ------- ------- ------- ");

    printf("\n| | | |");
    printf("\n| %i | %i | %i |", zahl1, zahl2, zahl3);
    printf("\n| | | |");
    printf("\n ------- ------- ------- ");
    printf("\n| | | |");

    printf("\n| %i | %i | %i |", zahl4, zahl5, zahl6);
    printf("\n| | | |");
    printf("\n ------- ------- ------- ");
    printf("\n| | | |");
    printf("\n| %i | %i | %i |", zahl7, zahl8, zahl9);

    printf("\n| | | |");
    printf("\n ------- ------- ------- ");

    getchar();

}
So zurück zu deinem Problem. Du hast die Speicherung der Daten sehr unpraktisch gelöst. Daher werden die weiteren Funktionen ebenfalls sehr unpraktisch und unschön, wenn du das nicht ändern willst.

Ich würde vorschlagen, das ganze in einer logischen Matrix (zweidimensionaler Array) zu speichern.
Näheres dazu bei google oder hier im Forum.

Wenn dir das zu kompliziert ist, kannst du mit scanf einfach einen String einlesen und diesen in einer länferen Fallunterscheidung deinen Variabeln zuordnen.

Kleiner Ausschnitt:
Code:
char buffer[32]; // Dein Eingabe-String

scanf("%s", buffer); // Einlesen der Daten, AdressOf-Operator überflüssig da buffer char * ist

// Zuordnung der Werte
if(strcmp("A1", buffer) == 0)
  zahl1 = 88; // ASCII-Code für X speichern
....

Gruß
Johannes
 
(Ich habs mal für dich gemacht :D ):
leider etwas falsch, denn die Leerzeichen stimmen nicht. das Ergebniss würde am Ende so ziemlich unschoen aussehen. ;)
----
das erste Feld in der zweiten Zeile Feld[0][1]

ich mal ma das ganze ding auf:
Code:
Feld[0][0] Feld[1][0] Feld[2][0]
Feld[0][1] Feld[1][1] Feld[2][1]
Feld[0][2] Feld[1][2] Feld[2][2]
 
ok langsam kommt es. und wenn ich jetzt die felder anschreiben möchte. wäre es besser draussen a und oben 1 oder auch in die kästchen rein mit 1. komme mit dem matrix anschreiben noch nicht ganz klar
 
Hi,

@ Pixelshader: Ich sprach auch nur von der Codeeinrückung...... ;)

Noch was: Ich glaube nicht, dass es ihm irgendetwas bringt, wenn du ihm hier erstens eine komplette Lösung aufschreibst und zweitens darin Elemente benutzt, die er gar nicht versteht! :rolleyes:

Der Lerneffekt ist gleich Null! Na gut er hat ein lauffähiges Programm...... Aber ich bezweifle stark, dass er in der Lage ist, dieses ohne Hilfe neu zu formulieren.....
(Deshalb auch mein wirklich unschöner Ansatz!)

Gruß
Johannes
 
Zurück