![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() Registriert seit: 02.05.2002
Alter: 40
Beiträge: 4
|
![]() 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 |
![]() |
![]() |
![]() |
#2 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() 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 |
![]() |
![]() |
![]() |
#3 |
Newbie
![]() Registriert seit: 02.05.2002
Alter: 40
Beiträge: 4
|
![]() 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; } |
![]() |
![]() |
![]() |
#4 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() ...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; } |
![]() |
![]() |
![]() |
#6 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() 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 |
![]() |
![]() |
![]() |
#7 | |
Elite
![]() |
![]() Zitat:
|
|
![]() |
![]() |
![]() |
#8 |
Elite
![]() |
![]() 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... |
![]() |
![]() |
![]() |
#9 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() 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 ? ![]() |
![]() |
![]() |
![]() |
#10 | |
Elite
![]() |
![]() Zitat:
ad 2. Schon, aber hat da dann nicht jemand gesagt: "genaugenommen ist mein lösungsvorschlag schon C++." ![]() |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|