Hier mein kleines TicTacToe das ich gestern Nacht entworfen habe.
Es wäre eine Frechheit die Computerzüge als KI zu bezeichnen aber man hat wenigstens einen Gegenspieler. (Eine halbwegs intelligente KI wollt ich demnächst noch entwerfen)
Was für TicTacToe ja eigentlich gut machbar sein sollte.
Es geht mir um meinen Code ich bin kein erfahrener programmiere. Ich öffne halt ab und zu meine IDE und schreib n paar Zeilen.
Daher wollt ich fragen wie eigentlich die qualität vom code ist. Funktionieren tuts ja.
Der Code sollte c++ darstellen, hab nich soviel ahnung vom programmieren ^.^
Ausführbare .exe findet sich im Anhang
Es wäre eine Frechheit die Computerzüge als KI zu bezeichnen aber man hat wenigstens einen Gegenspieler. (Eine halbwegs intelligente KI wollt ich demnächst noch entwerfen)
Was für TicTacToe ja eigentlich gut machbar sein sollte.
Es geht mir um meinen Code ich bin kein erfahrener programmiere. Ich öffne halt ab und zu meine IDE und schreib n paar Zeilen.
Daher wollt ich fragen wie eigentlich die qualität vom code ist. Funktionieren tuts ja.
Der Code sollte c++ darstellen, hab nich soviel ahnung vom programmieren ^.^
Ausführbare .exe findet sich im Anhang
Code:
#include <iostream>
#include <windows.h>
using namespace std;
char line1[4] = "XXX";
char line2[4] = "XXX";
char line3[4] = "XXX";
void display()
{
cout<<"----------------\n";
cout<<" ";
cout<<line1<<endl;
cout<<" ";
cout<<line2<<endl;
cout<<" ";
cout<<line3<<endl;
cout<<"----------------";
cout<<"\n";
}
bool checkwin(char token)
{
if (line1[0] == token && line1[1] == token && line1[2] == token)
{
return 0;
}
if (line2[0] == token && line2[1] == token && line2[2] == token )
{
return 0;
}
if (line3[0] == token && line3[1] == token && line3[2] == token )
{
return 0;
}
if (line1[0] == token && line2[0] == token && line3[0] == token )
{
return 0;
}
if (line1[0] == token && line2[1] == token && line3[2] == token )
{
return 0;
}
if (line1[2] == token && line2[1] == token && line3[0] == token )
{
return 0;
}
if (line1[1] == token && line2[1] == token && line3[1] == token )
{
return 0;
}
if (line1[2] == token && line2[2] == token && line3[2] == token )
{
return 0;
}
else
{
return 1;
}
}
void pcMoveEasy()
{
for (int j=0; j<4;j++)
{
if (line1[j] != 1 && line1[j] !=2)
{
line1[j] = 2;
break;
}
if (line2[j] != 1 && line2[j] != 2)
{
line2[j] = 2;
break;
}
if (line3[j] != 1 && line3[j] != 2)
{
line3[j] = 2;
break;
}
}
}
void playerMove()
{
int token;
cin>>token;
cout<<"\n";
switch (token)
{
case 0:
break;
case 1:
if (line1[0] != 2)
{
line1[0] = 1;
}
break;
case 2:
if (line1[1] != 2)
{
line1[1] = 1;
}
break;
case 3:
if (line1[2] != 2)
{
line1[2] = 1;
}
break;
case 4:
if (line2[0] != 2)
{
line2[0] = 1;
}
break;
case 5:
if (line2[1] != 2)
{
line2[1] = 1;
}
break;
case 6:
if (line2[2] != 2)
{
line2[2] = 1;
}
break;
case 7:
if (line3[0] != 2)
{
line3[0] = 1;
}
break;
case 8:
if (line3[1] != 2)
{
line3[1] = 1;
}
break;
case 9:
if (line3[2] != 2)
{
line3[2] = 1;
}
break;
default:
cout<<"Ungueltige Eingabe! Eingabe muss zwischen 1 und 9 sein!\n";
break;
}
}
int main ()
{
SetConsoleTitle("TicTacToe");
cout<<"TicTacToe\n";
cout<<"X = unused field\n";
cout<<"Use 1-9 as Input ; 1 = first field | 9 = last field | 0 = Computer starts!";
cout<<"\n\n\n";
int n = 0;
display();
while (n<9)
{
playerMove();
cout<<"Your move:\n";
display();
if (!checkwin(1))
{
cout<<"You Win!";
break;
}
if (!checkwin(2))
{
cout<<"You Lose!";
break;
}
pcMoveEasy();
cout<<"Computer move:\n";
display();
if (!checkwin(1))
{
cout<<"You Win!";
break;
}
if (!checkwin(2))
{
cout<<"You Lose!";
break;
}
n++;
}
system("PAUSE");
return 0;
}