1 C++ Tictactoe Mi Apr 21, 2010 1:27 pm
Delta
Admin
Vor etwa nem halben Jahr habe ich ein Konsolen-Tictactoe porgrammiert.
Wollte hier einfach mal den Code reinstellen:
Der Header dazu:
Wenn ihr Verbesserungsvorschläge habt einfach posten;)
Wollte hier einfach mal den Code reinstellen:
- Code:
#include <iostream>
#include "TicTacToeHeader.h"
int main()
{
srand(time(NULL));
cout<<"Tic,Tac,Toe\nComputer vs. YOU\n\n";
Sleep(1500);
int wahl=1;
cout<<"Let's beginn\n";
Sleep(1500);
for(;;)
{
aktualisieren();
cout<<"Welches Feld\n";
int y;
cin>>y;
set(y,'x');
if(wahl==1)
{
wennbesetzt:
int cw=rand()%10;
set(cw,'o');
if(besetzt==true)
{
goto wennbesetzt;
}
besetzt=false;
Sleep(999);
aktualisieren();
}
winchek();
}
cin.clear(); cin.ignore(cin.rdbuf()->in_avail()); cin.get();
}
Der Header dazu:
- Code:
#include <windows.h>
#include <cstdlib>
#include <math.h>
#include <time.h>
#include <string>
using namespace std;
string one="|_|";
string two="|_|";
string three="|_|";
string four="|_|";
string five="|_|";
string six="|_|";
string seven="|_|";
string eight="|_|";
string nine="|_|";
bool wino=false;
bool winx=false;
bool unentschieden=false;
bool besetzt=false;
int zug=0;
void gotoxy(int xpos, int ypos)
{
COORD scrn;
HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
scrn.X = xpos; scrn.Y = ypos;
SetConsoleCursorPosition(hOuput,scrn);
}
void set(int feld, char p)
{
if(p=='o')
{
if(feld==1&&one=="|_|")
{
one="|o|";
}
else if(feld==2&&two=="|_|")
{
two="|o|";
}
else if(feld==3&&three=="|_|")
{
three="|o|";
}
else if(feld==4&&four=="|_|")
{
four="|o|";
}
else if(feld==5&&five=="|_|")
{
five="|o|";
}
else if(feld==6&&six=="|_|")
{
six="|o|";
}
else if(feld==7&&seven=="|_|")
{
seven="|o|";
}
else if(feld==8&&eight=="|_|")
{
eight="|o|";
}
else if(feld==9&&nine=="|_|")
{
nine="|o|";
}
else
{
besetzt=true;
}
}
else
{
if(feld==1&&one=="|_|")
{
one="|x|";
}
else if(feld==2&&two=="|_|")
{
two="|x|";
}
else if(feld==3&&three=="|_|")
{
three="|x|";
}
else if(feld==4&&four=="|_|")
{
four="|x|";
}
else if(feld==5&&five=="|_|")
{
five="|x|";
}
else if(feld==6&&six=="|_|")
{
six="|x|";
}
else if(feld==7&&seven=="|_|")
{
seven="|x|";
}
else if(feld==8&&eight=="|_|")
{
eight="|x|";
}
else if(feld==9&&nine=="|_|")
{
nine="|x|";
}
}
}
void winchek()
{
if(one=="|o|" && five=="|o|" && nine=="|o|")//o
{ // o
wino=true; // o
}
if(three=="|o|"&&five=="|o|"&&seven=="|o|")// o
{ // o
wino=true; //o
}
if(one=="|o|"&&two=="|o|"&&three=="|o|")//o o o
{ //
wino=true; //
}
if(four=="|o|"&&five=="|o|"&&six=="|o|")//
{ //o o o
wino=true; //
}
if(seven=="|o|"&&eight=="|o|"&&nine=="|o|")//
{ //
wino=true; //o o o
}
if(one=="|o|"&&four=="|o|"&&seven=="|o|")//o
{ //o
wino=true; //o
}
if(two=="|o|"&&five=="|o|"&&eight=="|o|")// o
{ // o
wino=true; // o
}
if(three=="|o|"&&six=="|o|"&&nine=="|o|")// o
{ // o
wino=true; // o
}
if(one!="|_|"&&two!="|_|"&&three!="|_|"&&four!="|_|"&&five!="|_|"&&six!="|_|"&&seven!="|_|"&&eight!="|_|"&&nine!="|_|")
{
unentschieden=true;
}
if(one=="|x|"&&five=="|x|"&&nine=="|x|")//o
{ // o
winx=true; // o
}
if(three=="|x|"&&five=="|x|"&&seven=="|x|")// o
{ // o
winx=true; //o
}
if(one=="|x|"&&two=="|x|"&&three=="|x|")//o o o
{ //
winx=true; //
}
if(four=="|x|"&&five=="|x|"&&six=="|x|")//
{ //o o o
winx=true; //
}
if(seven=="|x|"&&eight=="|x|"&&nine=="|x|")//
{ //
winx=true; //o o o
}
if(one=="|x|"&&four=="|x|"&&seven=="|x|")//o
{ //o
winx=true; //o
}
if(two=="|x|"&&five=="|x|"&&eight=="|x|")// o
{ // o
winx=true; // o
}
if(three=="|x|"&&six=="|x|"&&nine=="|x|")// o
{ // o
winx=true; // o
}
if(wino==true)
{
cout<<"Computer win\n";
Sleep(1500);
cout<<"Vielen dank dass sie verloren haben\n";
Sleep(3000);
exit(1);
}
if(winx==true)
{
cout<<"You win\n";
Sleep(1500);
cout<<"Bye\n";
Sleep(3000);
exit(1);
}
}
void aktualisieren()
{
system("cls");
cout<<" _ _ _\n";
cout<<one<<two<<three<<"\n";
cout<<four<<five<<six<<"\n";
cout<<seven<<eight<<nine<<"\n";
}
Wenn ihr Verbesserungsvorschläge habt einfach posten;)