C Code / Tic tac toe
-
I habe in Linux begonnen zu programmieren und nun auf Windows umgstiegen (Dev-C)
Warum 1) wird nun System ("clear") nicht mehr als gültig dargestellt. Was ist in Windows (Vista) anders einzutragen damit das klappt? (Der Bildschirm wird gelöscht)warum springt er jeweils nach den Abfragen wieder an die Hauptmenustelle zurück.. möchte ja nicht immer wieder mich durchklicken sondern spielen können.
und wie kriege ich das eintragen (resp. der X und O) hin?
/* Das Tic Tac Toe Programm */
/* Datei: tictactoe.c */#include <stdio.h>
#include <stdlib.h>//Initialisierungen von Methoden
void hauptmenu(); //Hauptmenuaufruf
void spielen(); //Ausgabe des Spiel
void credit(); //Ausgabe von credit
void spielart(); //Spielvariante (normal tic tac toe,...)
void spielertypen(); //Human,random
void output_field(); //Ausgabe des Spielfeldes
void spielstart(); //wer mit welcher Form
void set_mark(int player, int pos); //Spielermarkierung setzen
void check_field(); //gibt es einen Gewinner?
void game_again(); //nochmals spielen?char board [3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
int player=0; //0= Human 1=Random
int pos;
int gameende=0; //überprüfen ob spiel zu endeint main (void)
{ hauptmenu(); //Hauptmenu aufruf
return 0;
}
void hauptmenu() {
int a;do{
system("clear");
printf("TicTacToe\n");
printf("==========\n");
printf("1) Spielen\n");
printf("2) Credits\n");
printf("3) Beenden\n");printf("\n");
printf("\n");
printf("Ihre Eingabe:\n");scanf("%d",&a);
do { } while (getchar() != '\n');
switch (a){
case 1:
spielen();
break;
case 2:
credit();
break;
case 3:
system("clear");
break;
default:
printf("Ungueltige Eingabe\n");
}} while(a!=3);
}void spielen () {
int b;
system("clr");
printf("TicTacToe\n");
printf("==========\n");
printf("1) Spielart\n");
printf("2) Spieltypen\n");printf("\n");
printf("\n");
printf("Ihre Eingabe:\n");
scanf("%d",&b);
do { } while (getchar() != '\n');
switch (b){
case 1:
spielart();
break;
case 2:
spielertypen();
break;
default:
printf("Ungueltige Eingabe\n");
}
output_field();
spielstart();}
//Ausgabe der Creditzeilen
void credit() {
char b;
system("clear");
printf("\n");
printf("\n");
printf("\n");
printf("Tic Tac Toe Version 0.4.0a \n");
printf("Stand: 13.Juli 2009 \n");
printf("Programmiert in C\n");
printf("von Niklaus Rohrer\n");
printf("\n");
printf("\n");
printf("\n");
scanf("%c",&b);
}//Auswahl der Spielart
void spielart() {
printf("TicTacToe (normal)\n");
}
//Auswahl der Spieltypen (noch nicht verstanden)
void spielertypen(){
}void output_field(){
int i,j;
system("clear");
printf("TIC TAC TOE\n");
printf("==============\n");
printf("+---+---+---+\n");for (i=0;i<3;i++){
for (j=0;j<3;j++){
printf("+ ");
printf("%d", board[i][j]);
printf(" ");
}
printf("+\n");
printf("+---+---+---+\n");
}
}void spielstart(){
int frand = rand();
frand =frand%2; //Coins Flip, wer beginnt!if(frand <1)
{printf("Sie beginnen mit X\n");
player=0;}
else {printf("Random beginnen mit O\n");
player=1;
}set_mark(player, pos);
}void set_mark(int player, int pos){
char xoro;
if (player==0){
xoro='X';
printf("Ihre gewünschte Position:\n");
scanf("%d",&pos);
while ((pos <1) || (pos >9))
{printf("Ungültige Zahl, nochmals:\n");}
}
else {
printf("Computer am Zug\n");
xoro='O';
int frand = rand();
frand =frand%10; //Random
if (frand<1) pos=1;
else if (frand<2) pos=2;
else if (frand<3) pos=3;
else if (frand<4) pos=4;
else if (frand<5) pos=5;
else if (frand<6) pos=6;
else if (frand<7) pos=7;
else if (frand<8) pos=8;
else pos=9;
}
printf("Random position: ");
printf("%d",pos);
printf("\n");}
/*--------- bis hier alles ok -----------*/
/*do
{
output_field();
set_mark(player,pos);
check_field();//gibt es einen gewinner?
}
while (gameende!=99);/*void check_field()
{ if (((board[0][0] == "X") && (board[0][1] == "X") &&
(board[0][2] == "X")) ||
((board[1][0] == "X") && (board[1][1] == "X") &&
(board[1][2] == "X")) ||
((board[2][0] == "X") && (board[2][1] == "X") &&
(board[2][2] == "X")) ||
((board[0][0] == "X") && (board[1][0] == "X") &&
(board[2][0] == "X")) ||
((board[0][1] == "X") && (board[1][1] == "X") &&
(board[2][1] == "X")) ||
((board[0][2] == "X") && (board[1][2] == "X") &&
(board[2][2] == "X")) ||
((board[0][0] == "X") && (board[1][1] == "X") &&
(board[2][2] == "X")) ||
((board[2][0] == "X") && (board[1][1] == "X") &&
(board[0][2] == "X")))
{ //X Spieler gewinnt
gameende=99;
}
else if (((board[0][0] == "O") && (board[0][1] == "O") && (board[0][2]
== "O")) ||
((board[1][0] == "O") && (board[1][1] == "O") &&
(board[1][2] == "O")) ||
((board[2][0] == "O") && (board[2][1] == "O") &&
(board[2][2] == "O")) ||
((board[0][0] == "O") && (board[1][0] == "O") &&
(board[2][0] == "O")) ||
((board[0][1] == "O") && (board[1][1] == "O") &&
(board[2][1] == "O")) ||
((board[0][2] == "O") && (board[1][2] == "O") &&
(board[2][2] == "O")) ||
((board[0][0] == "O") && (board[1][1] == "O") &&
(board[2][2] == "O")) ||
((board[2][0] == "O") && (board[1][1] == "O") &&
(board[0][2] == "O")))
{//o Spieler gewinnt
gameende=99;
}
}switch (pos){
case 1:
if ((board[0][0]) = 1) {
(board[0][0])= xoro;}//wird gesetzt wenn 1
vorhanden
else //schon vorhanden, neue Eingabe
break;
case 2:
if ((board[0][1]) = 2) {
(board[0][1])= xoro;}//wird gesetzt wenn 2
vorhanden
else //schon vorhanden, neue Eingabe
break;
case 3:
if ((board[0][2]) = 3) {
(board[0][2])= xoro;}//wird gesetzt wenn 3
vorhanden
else //schon vorhanden, neue Eingabe
break;
case 4:
if ((board[1][0]) = 4) {
(board[1][0])= xoro; }//wird gesetzt wenn 4
vorhanden
else //schon vorhanden, neue Eingabe
break;
case 5:
if ((board[1][1]) = 5) {
(board[1][1])= xoro; }//wird gesetzt wenn 5
vorhanden
else //schon vorhanden, neue Eingabe
break;
case 6:
if ((board[1][2]) = 6) {
(board[1][2])= xoro;}//wird gesetzt wenn 6
vorhanden
else //schon vorhanden, neue Eingabe
break;
break;
case 7:
if ((board[2][0]) = 7) {
(board[2][0])= xoro;}//wird gesetzt wenn 7
vorhanden
else //schon vorhanden, neue Eingabe
break;
case 8:
if ((board[2][1]) ={
(board[2][1])= xoro;}//wird gesetzt wenn 8
vorhanden
else //schon vorhanden, neue Eingabe
break;
case 9:
if ((board[2][2]) = 9) {
(board[2][2])= xoro;
}//wird gesetzt wenn 9 vorhanden
else //schon vorhanden, neue Eingabe
break;player=1-player;
default:
printf("Ungueltige Eingabe\n");
}
else(printf("normals bitte, keine gültige Position");printf("Wurde gesetzt");
}
*/
-
Registriert und kennt immernoch keine Cpp-Tags...
-
system("cls")