Forum
Tipps
News
Menu-Icon

Hilfe!!!!!!!!!!! Programmieren in C++ brauche unbedingt Hilfe

Habe ein Problem und zwar soll ich mit visual studio 2008 folgendes programmieren.


 Schreiben Sie ein Programm, das die Position eines Springers auf einem Schachbrett einliest, und alle Felder des Schachbretts berechnet und ausgibt, die der Springer in einem Zug erreichen könnte. Das Programm, soll jede beliebige Ausgangs-Postion des Springers berücksichtigen. Das Programm soll auch den Fall berücksichtigen, daß das Schachbrett außer dem Springer weitere Figuren enthält.


Jedoch habe ich leider sehr wenig ahnung davon. bitte um hilfe, vielleicht hat das schonmal jemand gemacht und kann es mir dann evtl schicken? da ich sehr verzweifelt bin benötige ich dringend eure HILFE...

lg marie


Antworten zu Hilfe!!!!!!!!!!! Programmieren in C++ brauche unbedingt Hilfe:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

??? Seltsam. Wieso läßt Du Dir eine Aufgabe zumuten, die ohne vertiefte Spezialausbildung unerfüllbar ist? Warum sagst Du nicht "nein"?

Wenn Du dagegen so einen Ausbildungsgang hinter Dir hast, aber trotzdem "sehr wenig Ahnung", was hilft dann mogeln? Ein Programmierer muß programmieren können.

Wenn´s bloß ein Einmalauftrag ist, dann könnte man das für ein paar Euro an irgendeinen Programmierer vergeben.
Man bräuchte übrigens noch etliche Detailangaben von Dir, bevor man sich an´s Coden machen könnte...      

« Letzte Änderung: 31.01.10, 22:43:20 von harold »

Na, ein bisschen vorkentnisse habe ich ja schon..
welche Datailangaben benötigst du denn noch?
Habe das Projekt zugeteilt bekommen und muss es bis zu 12.02.2010 erledigt haben. Und da ich mir in diesem Forum Hilfe erhofft habe, deshalb habe ich hier gepostet. Hier, was ich bisher geschafft habe aber irgendwo ist ein fehler, den ich nicht finden kann. Wäre sehr dankbar wnn mir jemand dabei helfen könnte:

# include <stdio.h>
# include <stdlib.h>

int springer[8][8];

int weg(int start_z, int start_s, int ziel_z, int ziel_s, int x)
{
if( (start_z == ziel_z) && (start_s == ziel_s) ) /* ziel erreicht */
{
springer[start_z][start_s] = x;
return 1;
}
if( (springer[start_z-2][start_s-1] == 0) && ((start_z-2)>=0) && ((start_s-1)>=0) ) /* sprung 1 */
{
springer[start_z][start_s] = x;
if( weg( start_z-2,start_s-1, ziel_z,ziel_s,x+1) )
return 1;
}
if( (springer[start_z-2][start_s+1] == 0) && ((start_z-2)>=0) && ((start_s+1)<8) ) /* sprung 2 */
{
springer[start_z][start_s] = x;
if( weg( start_z-2,start_s+1, ziel_z,ziel_s,x+1) )
return 1;
}
if( (springer[start_z-1][start_s+2] == 0) && ((start_z-1)>=0) && ((start_s+2)<8) ) /* sprung 3 */
{
springer[start_z][start_s] = x;
if( weg( start_z-1,start_s+2, ziel_z,ziel_s,x+1) )
return 1;
}
if( (springer[start_z+1][start_s+2] == 0) && ((start_z+1)<8) && ((start_s+2)<8) ) /* sprung 4 */
{
springer[start_z][start_s] = x;
if( weg( start_z+1,start_s+2, ziel_z,ziel_s,x+1) )
return 1;
}
if( (springer[start_z+2][start_s+1] == 0) && ((start_z+2)<8) && ((start_s+1)<8) ) /* sprung 5 */
{
springer[start_z][start_s] = x;
if( weg( start_z+2,start_s+1, ziel_z,ziel_s,x+1) )
return 1;
}
if( (springer[start_z+2][start_s-1] == 0) && ((start_z+2)<8) && ((start_s-1)>=0) ) /* sprung 6 */
{
springer[start_z][start_s] = x;
if( weg( start_z+2,start_s-1, ziel_z,ziel_s,x+1) )
return 1;
}
if( (springer[start_z+1][start_s-2] == 0) && ((start_z+1)<8) && ((start_s-2)>=0) ) /* sprung 7 */
{
springer[start_z][start_s] = x;
if( weg( start_z+1,start_s-2, ziel_z,ziel_s,x+1) )
return 1;
}
if( (springer[start_z-1][start_s-2] == 0) && ((start_z-1)>=0) && ((start_s-2)>=0) ) /* sprung 8 */
{
springer[start_z][start_s] = x;
if( weg( start_z-1,start_s-2, ziel_z,ziel_s,x+1) )
return 1;

}

springer[start_z][start_s] = 0; /* aktuelle ebene unangetastet lassen */
x -=1;

return 0;
}

void main()
{
int start_z,start_s,ziel_z,ziel_s;
int zeile,spalte;
int x=1;
char s;

for(zeile=0;zeile<8;zeile++)
{
for(spalte=0;spalte<8;spalte++)
{
springer[zeile][spalte] = 0;
}
}

printf("startpunkt (zeile) (spalte): ");
scanf("%d %d",&start_z,&start_s);
fflush(stdin);
printf(" zielpunkt (zeile) (spalte): ");
scanf("%d %d",&ziel_z,&ziel_s);
fflush(stdin);
printf("\n");

start_z -= 1;
start_s -= 1;
ziel_z -=1;
ziel_s -=1;

if( weg(start_z,start_s, ziel_z,ziel_s, x) )
{
printf("  ");
for( s='A'; s<='H'; s++ )
{
printf("%4c",s);
}
printf("\n\n");
for(zeile=0;zeile<8;zeile++)
{
printf("%d ",zeile+1);
for(spalte=0;spalte<8;spalte++)
{
if( springer[zeile][spalte] == 0 )
printf("    ");
else
printf("%4d",springer[zeile][spalte]);
}
printf("\n");
}
printf("\n");
}
else
printf("error\n");
}
« Letzte Änderung: 31.01.10, 21:57:17 von Dr.Nope »

Hilfe kannste haben:
Gib deinen threads vernünftige Namen, Hilfe gehört nicht dazu, nochmal zu erwähnen dass du hilfe brauchst auch nicht und ne halbe million ausrufezeichen gehört gleich 3 mal nicht dazu. Die einzig sinnvolle angabe ist die Programmiersprache (immerhin).

Was mir nicht ganz klar ist:
a) warum lässt du n Zielpunkt eingeben?
b) wozu diese weg() funktion?
Ein Springer bewegt sich von seiner Position 2 Felder gerade aus und dann nach links oder rechts, bzw. oben oder unten davon.
Also egal wo er steht Zeile+=2/-=2 und Spalte++ oder Spalte-- oder aber Spalte += 2/-=2 und Zeile++/--

Wenn das erreichte Feld < 8 oder < 0 ist in zeile oder spalte verwirf möglichkeit, ansonsten gib aus koordinaten.

Wenn andere Figuren dort stehen sollen (von deiner Farbe) empfehle ich einfach eine boolsche Matrix (2D Array) aus dem du "Feld belegt" Prüfen kannst.
oder aber du schnappst dir dein "int iSpringer" und vergibst zahlen je nach figur, hätte auch die schöne eigenheit dass sich figuren unterscheiden ließen und ggf. einen weitern Bewegungsablauf realisieren lassen.

Fragen? (Ja, ich kann dir das schreiben, mein stundensatz beträgt 90€)


« Lua Compiler gesuchtIch habe mit dem Befehel sendkey bei visual basic script »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

Eingabefelder
Als Eingabefelder werden in einem Programm oder in Online-Formularen die Stellen bezeichnet, an denen Informationen eingetippt werden können. Die Beschriftung neben ...