![]() |
Hilfe C++ Probleme
Hi Leute!
So sollte der Bildschirmausdruck vorerst einmal aussehen: ______ | | | ______ | | | ______ | | | Ich habe das ganze mir arrays programmiert weil nachher in die 4 freien Kästchen noch etwas hineinkommen soll! Jedoch zeigt es mir bei meiner Idee etwas ganz anderes auf der Ausgabemaske an.Ich brauche das auf einer win32 konsolenanwendung!Meine Idee war so: int a,b,i,zz[9]; for(i=1;i<=6;i++) printf("-"); printf("\n"); for(b=0;b<9;b=b+3){ for(a=0;a<3;a++){ printf("I "); printf("%c\n",zz[a+b]); } printf("------\n"); } Ich hoffe mir kann wer helfen! Danke schon im voraus Bye Jürgen |
was soll das programm machen ??
hallo !
warum gibts du am Anfang die zeichenfolge "------" mit einer for schleife aus - geht doch, wie auch am schluss mit printf("------\n"); Was für eine aufgabe soll dieses programm überhaupt erfüllen ?? wenn du willst, dass dir jemand hilft, solltest du ev. die zu lösende aufgabe genauer beschreiben ! mfg -hannes |
Es soll ein XXO, oder Tic Tac To Programm werden
Sorry, dass ich das nicht geschrieben haben.
Es soll also so ein simples X-X-O Spiel werden, wo 2 Spieler am Computer gegeneinander spielen! Der vorhandene Raster wird in A-C und 0-2 unterteilt und der Spieler gibt dann das Feld an wo sein X oder O reinkommen soll.Hat dann einer 3 X/bzw O´s in einer Reihe egal ob horizontal oder vertikal hat er gewonnen. Hier einmal das Programm soweit ich bin, es fehlt halt leider noch einiges.Jedoch habe ich jetzt erstmal das Problem dass die Ausgabe falsch erscheint. #include "stdafx.h" #include <math.h> #include <stdlib.h> #include <time.h> #include <conio.h> int main(int argc, char* argv[]) { int i, b, a, y, x, z,zz[9]; char xc,A,B,C; printf(" Tic Tac Toe\n"); //Feld zeichnen// for(i=1;i<=6;i++) printf("-"); printf("\n"); for(b=0;b<9;b=b+3){ for(a=0;a<3;a++){ printf("I "); printf("%c\n",zz[a+b]); } printf("------\n"); } //Frage// printf("1.Spieler:[z.B.A]"); xc=getch(); printf("1.Spieler:[z.B.1]"); scanf("%i", &y); if (xc=A) x=0; if (xc=B) x=1; if (xc=C) x=2; y=y*3; z=x+y; return 0; } |
habs schnell programmiert
...möglich, dass noch fehler drinnen sind, aber fürs erste sollte das reichen.
die gewinnabfrage kannst dir noch selbst überlegen. (is ja fad, wenn ma alles vorgegeben bekommt, oder ? ;) mfg -hannes #include "stdafx.h" #include "string.h" #define ZEILEN 3 #define SPALTEN 3 #define SPIELER_1 'X' #define SPIELER_2 'O' char feld[ZEILEN][SPALTEN]; void ausgabe() { for (int z=0; z < ZEILEN; z++) { printf("-------\n"); for (int s=0; s < SPALTEN; s++) printf("|%c",feld[z][s]); printf("|\n"); } printf("-------\n"); } void initfeld() { for (int z=0; z < ZEILEN; z++) for (int s=0; s < SPALTEN; s++) feld[z][s] = '\0'; } bool checkifwon() { // selbst ausdenken - sonst is ja fad !! ;) return false; } int main(int argc, char* argv[]) { int zeile,spalte,zuege = 1; char meinzeichen; printf("\n TIC-TAC-TOE\n\n"); initfeld(); while ((zuege <= ZEILEN * SPALTEN) && (checkifwon() == false)) { ausgabe(); if (zuege % 2 == 0) meinzeichen = SPIELER_1; else meinzeichen = SPIELER_2; fflush(stdin); printf("\nIhr Zug (Zeile):"); scanf("%d",&zeile); printf("Ihr Zug (Spalte):"); scanf("%d",&spalte); if (zeile >=0 && zeile <= 2 && spalte >=0 && spalte <= 2) { if (feld[zeile][spalte] == '\0') { feld[zeile][spalte] = meinzeichen; zuege++; } else printf("Feld bereits belegt !\n"); } else printf("Zug ungueltig !\n"); } fflush(stdin); getchar(); return 0; } |
von C nach C++
Die nächste Aufgabe wäre dann, statt einem C-Programm eines in C++ zu schreiben. Der Bildschirm wird als Klasse definiert, 'void initfeld()' kommt in den Konstruktor dieser Klasse usw. .
|
c++
hallo !
genaugenommen ist mein lösungsvorschlag schon C++. variablenvereinbarungen innerhalb einer for-schleife geht in C nicht. glaub aber nicht, dass du für dieses "problem" irgendwelche speziellen möglichkeiten von C++ benötigst. viel spaß beim tic-tac-toe spielen. ...wär sicha intressant, einen computergegner zu programmiern ! ;) -hannes |
Re: c++
Zitat:
|
Hier noch ein Satz der mich in meinem Glauben daß Varibalendeklarationen innerhalb der for-Schleife zulässig sind, bestärkt:
"In C, a variable must be declared before it can be used. Variables can be declared at the start of any block of code," Wenn wer Genaueres bezüglich dieser Thematik in ANSI-C weiß dann wäre ich dankbar. Hab außer diesem Satz nicht viel gefunden, ehrlich gesagt hab ich aber auch nicht wirklich intensiv gesucht. Ist nur so aus Neugier... |
variablendeklaration
hallo !
Also ich hab ja schon echt lange nicht mehr in C(++) programmiert, aber wenn du mit "Variablenvereinbarungen gehen nicht in for-Schleifen in C" z.B. das meinst: for (int z=0;...) ja genau das for (int z=0....) mein ich ! "In C, a variable must be declared before it can be used. Variables can be declared at the start of any block of code," soweit ich weiß, ist ein "block of code" in C: { // z.B. int i; // block of code } ist aber auch schon länger her, dass ich ansi c programmiert habe (programmier dzt. nur visual c++ unter windows), bin mir aber trotzdem sicher, dass eine variablendeklaration innerhalb einer schleife in ansi C NICHT geht - will das jetzt aber nicht irgendwie beweisen oder danach suchen - soooo wichtig is ma das nicht. cin und cout ist auch meiner meinung nach vorzuziehen, aber es ging ja um eine lösung in C, oder ? ;) |
Re: variablendeklaration
Zitat:
ad 2. Schon, aber hat da dann nicht jemand gesagt: "genaugenommen ist mein lösungsvorschlag schon C++." ;) |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 21:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag