// Sudoku.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "ctime"
#include "stdio.h"
#include "string.h"
using namespace std;
const int X=61, Y=40;
char Spielfeld[Y][X];
int irand (int min, int max)
{
double r=max-min+1;
return min+(int)(r*rand()/(RAND_MAX+1.0));
}
int prufen (int waagerecht,int senkrecht, int zahl)
{
int help;
char buffer[3000];
sprintf(buffer,"%d",zahl);
for(int i=0;i<=40;i++)
{
if (stmcmp(buffer, &Spielfeld[waagerecht][i], 1))
return(1);
else
return (0);
}
}
int kasten_errechnen_senkrecht (int Feld)
{
switch(Feld)
{
case 1:
Feld=3;
break;
case 2:
Feld=7;
break;
case 3:
Feld=11;
break;
case 4:
Feld=16;
break;
case 5:
Feld=20;
break;
case 6:
Feld=24;
break;
case 7:
Feld=29;
break;
case 8:
Feld=33;
break;
case 9:
Feld=37;
break;
}
return (Feld);
}
int kasten_errechnen_waagerecht (int Feld)
{
switch(Feld)
{
case 1:
Feld=6;
break;
case 2:
Feld=12;
break;
case 3:
Feld=18;
break;
case 4:
Feld=25;
break;
case 5:
Feld=31;
break;
case 6:
Feld=37;
break;
case 7:
Feld=44;
break;
case 8:
Feld=50;
break;
case 9:
Feld=56;
break;
}
return (Feld);
}
int schreiben_ins_Feld (int Zahl, int waagerecht, int senkrecht)
{
switch(Zahl)
{
case 1:
Spielfeld[senkrecht][waagerecht]= '1';
break;
case 2:
Spielfeld[senkrecht][waagerecht]= '2';
break;
case 3:
Spielfeld[senkrecht][waagerecht]= '3';
break;
case 4:
Spielfeld[senkrecht][waagerecht]= '4';
break;
case 5:
Spielfeld[senkrecht][waagerecht]= '5';
break;
case 6:
Spielfeld[senkrecht][waagerecht]= '6';
break;
case 7:
Spielfeld[senkrecht][waagerecht]= '7';
break;
case 8:
Spielfeld[senkrecht][waagerecht]= '8';
break;
case 9:
Spielfeld[senkrecht][waagerecht]= '9';
break;
}
return (Zahl);
}
int _tmain(int argc, _TCHAR* argv[])
{
//vorher imagineres Erstellen des Spielbrettes
for(int senkrecht=0;senkrecht<=Y;senkrecht++)
{
for (int waagerecht=0;waagerecht<=X;waagerecht++)
{
if (waagerecht<=2)
Spielfeld[(senkrecht)][waagerecht] =' ';
else
{
switch(senkrecht)
{
case 1:
case 5:
case 9:
case 13:
case 14:
case 18:
case 22:
case 26:
case 27:
case 31:
case 35:
case 39:
Spielfeld[senkrecht][waagerecht]= '_';
break;
case 2:
case 3:
case 4:
case 6:
case 7:
case 8:
case 10:
case 11:
case 12:
case 15:
case 16:
case 17:
case 19:
case 20:
case 21:
case 23:
case 24:
case 25:
case 28:
case 29:
case 30:
case 32:
case 33:
case 34:
case 36:
case 37:
case 38:
{
if (waagerecht==3 || waagerecht==9|| waagerecht==15|| waagerecht==21 || waagerecht==22 ||waagerecht==28 || waagerecht==34 || waagerecht==40 ||waagerecht==41 || waagerecht==47 || waagerecht==53 || waagerecht==59|| waagerecht==60)
Spielfeld[senkrecht][waagerecht]= '|';
else
Spielfeld[senkrecht][waagerecht] =' ';
}
break;
case 0:
case 40:
Spielfeld[senkrecht][waagerecht]=' ';
break;
}
}
}
}
bool Schleifenende=true;
do
{
int waagerecht, senkrecht;
for(senkrecht=0;senkrecht<=Y;senkrecht++)
{
for(waagerecht=0;waagerecht<=X;waagerecht++)
cout<<Spielfeld[senkrecht][waagerecht]; //Ausgabe des Spielfeldes
cout<<endl;
}
//Computer erstellt 3 Zahlen (zwei als Feldkoordinate, eine für die Zahl
int erstellte_zahl, zahl_waagerecht, zahl_senkrecht, max_zahl;
srand((unsigned)time(NULL));
cout<<"Wieviele Zahlen wollen Sie erstellen lassen?"<<endl;
cin>>max_zahl;
for (int i=0;i<=(max_zahl-1);i++)
{
int help;
zahl_waagerecht=irand(1,9); //waagerecht Feldkoordinate
erstellte_zahl=irand(1,9); // zu schreibende Zahl
zahl_senkrecht=irand(1,9); //senkrechte Feldkoordinate
cout<<i<<" zahl: "<<erstellte_zahl<<" "<<"senkrecht: "<<zahl_senkrecht<<" "<<"waagerecht: "<<zahl_waagerecht<<endl;
zahl_waagerecht=kasten_errechnen_waagerecht(zahl_waagerecht);
zahl_senkrecht=kasten_errechnen_senkrecht(zahl_senkrecht);
//Prüfung
help=prufen(zahl_waagerecht,zahl_senkrecht,erstellte_zahl);
switch(help)
{case 1:
erstellte_zahl=schreiben_ins_Feld(erstellte_zahl,zahl_waagerecht,zahl_senkrecht);
cout<<"Fall eins!";
break;
case 0:
i=i-1;
break;
}
}
/*//Schreiben der Zahlen in die Felder
cout<<"Eingabe der senkrechten Zahl"<<endl;
cin>>senkrecht;
cout<<"Eingabe der waagerechten Zahl"<<endl;
cin>>waagerecht;
cout<<"Welche Zahl wollen Sie eingeben!";
int zahl;
cin>>zahl;
max_zahl=zahl;
senkrecht=kasten_errechnen_senkrecht(senkrecht);
waagerecht=kasten_errechnen_waagerecht(waagerecht);*/
}
while (Schleifenende);
getch();
}