<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[2D Ritter Spiel char Funktion]]></title><description><![CDATA[<p>Hallo Freunde,<br />
habe ein Problemchen bei einem Programm. Es ist ein 2D Ritter <a href="http://spiel.Es" rel="nofollow">spiel.Es</a> ist ein spielfeld 6x6 mit 2 Bäumen gekennzeichnet durch O und drei Spielern. Die züge werden durch einen Würfel generiert mit den zahlen 1 oder 2, und funkzionieren nach dem Läuferprinzip wie bei einem Schachspiel. Bei 1 läuft er 2 felder in x richtung und 1 in y richtung und bei würfelzahl 2 1stelle in x und 2 stellen in y. Das Spiel läuft soweit , nur jetzt will ich mein Spielfeld bisschen vergrössern, sprich die Felder. Jetzt erscheint auf dem Bildschirm ein Feld 6x6 durch X gekennzeichnet, will es aber schöner machen und Grösser:). Könnt ihr mir dabei helfen??Vielleicht noch ein paar Verbesserungsvorschläge zu dem ganzen Programm geben. Ich meine könnte man das ganze evnt. einfacher machen? Ich danke euch schon mal im Vorraus. Hier ist der Programmcode:<br />
#include &lt;stdio.h&gt;<br />
#include &lt;math.h&gt;<br />
#include &lt;time.h&gt;<br />
#include &lt;stdlib.h&gt;</p>
<p>typedef struct spieler{<br />
double nr;<br />
char name [30], symbol;<br />
int status,x,y;<br />
}SPIELER;</p>
<p>/*Spielfeld, Spieler und Bäume-Ausgabe*/</p>
<p>void spielplatz(int *ptrsp0x, int *ptrsp0y, int *ptrsp1x, int *ptrsp1y, int *ptrsp2x, int *ptrsp2y, int b1x, int b1y, int b2x, int b2y,char *ptr1symbol,char *ptr2symbol,char *ptr3symbol)<br />
{ int i; int j; char spielfeld[6][6];<br />
SPIELER sp[4];<br />
for (i=0;i&lt;6;i++){<br />
printf(&quot;\n&quot;);<br />
for (j=0;j&lt;6;j++){<br />
spielfeld[i][j]= '|';</p>
<p>if(b1y==i&amp;&amp;b1x==j||b2y==i&amp;&amp;b2x==j){<br />
spielfeld[b1y][b1x]='O';<br />
spielfeld[b2y][b2x]='O';<br />
}</p>
<p>if(*ptrsp0y==i&amp;&amp;*ptrsp0x==j||*ptrsp1y==i&amp;&amp;*ptrsp1x==j||*ptrsp2y==i||*ptrsp2x==j){<br />
spielfeld[*ptrsp0y][*ptrsp0x]=*ptr1symbol;<br />
spielfeld[*ptrsp1y][*ptrsp1x]=*ptr2symbol;<br />
spielfeld[*ptrsp2y][*ptrsp2x]=*ptr3symbol;<br />
}<br />
printf(&quot;%c&quot;,spielfeld[i][j]);</p>
<p>}}</p>
<p>}<br />
/*Wuerfel*/<br />
void wuerfel(void)<br />
{ int wuerfel_zahl;<br />
srand ( time(NULL) );<br />
wuerfel_zahl= 1+rand() %2;<br />
printf(&quot;\n\nEs wurde folgende Zahl gewuerfelt:\t%d\n\n&quot;,wuerfel_zahl);<br />
}</p>
<p>int main(void)<br />
{</p>
<p>/*Prototypen*/<br />
SPIELER sp[4];</p>
<p>char *ptr1symbol;<br />
char *ptr2symbol;<br />
char *ptr3symbol;<br />
int *ptrsp0x=&amp;sp[0].x;<br />
int *ptrsp0y=&amp;sp[0].y;<br />
int *ptrsp1x=&amp;sp[1].x;<br />
int *ptrsp1y=&amp;sp[1].y;<br />
int *ptrsp2x=&amp;sp[2].x;<br />
int *ptrsp2y=&amp;sp[2].y;<br />
int i,j,p,n,b1x,b1y,b2x,b2y,z;<br />
int wuerfel_zahl;<br />
int bew1;<br />
char spielfeld [6][6];</p>
<p>/*Spieler-Identifikation*/</p>
<p>for(p=1;p&lt;=3;p++){<br />
printf(&quot;Bitte geben Sie den Namen des %d.Spielers ein?\n&quot;,p);<br />
scanf(&quot;%s&quot;,&amp;sp[p].name);getchar();<br />
printf(&quot;\nBitte geben Sie das Spielersymbol fuer %s ein\n&quot;,sp[p].name);<br />
scanf(&quot;%c&quot;,&amp;sp[p].symbol);getchar();<br />
}<br />
ptr1symbol=&amp;sp[1].symbol;<br />
ptr2symbol=&amp;sp[2].symbol;<br />
ptr3symbol=&amp;sp[3].symbol;</p>
<p>/*Spielfeld und Bäume*/</p>
<p>do{<br />
srand ( time(NULL) );<br />
b1x= 1+rand() % 5;<br />
b1y= 1+rand() % 5;<br />
b2x= 1+rand() % 5;<br />
b2y= 1+rand() % 5;<br />
/*Spieler*/</p>
<p>sp[0].x= 1+rand() % 5;<br />
sp[0].y= 1+rand() % 5;<br />
sp[1].x= 1+rand() % 5;<br />
sp[1].y= 1+rand() % 5;<br />
sp[2].x= 1+rand() % 5;<br />
sp[2].y= 1+rand() % 5;<br />
}while(sp[0].x-sp[1].x&lt;2&amp;&amp;sp[0].y-sp[1].y&lt;2&amp;&amp;sp[0].x-sp[2].x&lt;2&amp;&amp;sp[0].y-sp[2].y&lt;2&amp;&amp;sp[1].x-sp[2].x&lt;2&amp;&amp;sp[1].y-sp[2].y&lt;2&amp;&amp;b1x-sp[0].x&lt;2&amp;&amp;b1y-sp[0].y&lt;2&amp;&amp;b2x-sp[0].x&lt;2&amp;&amp;b2y-sp[1].y&lt;2&amp;&amp;b1x-sp[1].x&lt;2&amp;&amp;b2x-sp[1].x&lt;2&amp;&amp;b2y-sp[1].y&lt;2&amp;&amp;b1x-sp[2].x&lt;2&amp;&amp;b1y-sp[2].y&lt;2&amp;&amp;b2x-sp[2].x&lt;2&amp;&amp;b2y-sp[2].y&lt;2);<br />
//}while(b1x==b2x||b1y==b2y||sp[1].x==sp[2].x||sp[1].x==sp[3].x||sp[2].x==sp[3].x||sp[1].y==sp[2].y||sp[1].y==sp[3].y||sp[2].y==sp[3].y||b1x==sp[1].x||b1x==sp[2].x||b1x==sp[3].x||b1y==sp[1].y||b1y==sp[2].y||b1y==sp[3].y||b2x==sp[1].x||b2x==sp[2].x||b2x==sp[3].x||b2y==sp[1].y||b2y==sp[2].y||b2y==sp[3].y);<br />
ptrsp0x=&amp;sp[0].x;<br />
ptrsp0y=&amp;sp[0].y;<br />
ptrsp1x=&amp;sp[1].x;<br />
ptrsp1y=&amp;sp[1].y;<br />
ptrsp2x=&amp;sp[2].x;<br />
ptrsp2y=&amp;sp[2].y;<br />
/*Spielfeld, Spieler und Bäume-Ausgabe*/</p>
<p>spielplatz(ptrsp0x,ptrsp0y,ptrsp1x,ptrsp1y,ptrsp2x,ptrsp2y,b1x,b1y,b2x,b2y,ptr1symbol,ptr2symbol,ptr3symbol);</p>
<p>sp[0].status=1;<br />
sp[1].status=1;<br />
sp[2].status=1;</p>
<p>printf(&quot;\nEs sind folgende Spielzuege moeglich: \n [R]: 6 \n [L]: 4 \n [U]: 2 \n [O]: 8 \n&quot;);</p>
<p>/*Spielzeuge*/<br />
do {<br />
for(z=0;z&lt;3;z++){</p>
<p>wuerfel();<br />
printf(&quot;\nBitte geben Sie beide Spielzuege ein!\n&quot;);<br />
scanf(&quot;%d&quot;, &amp;bew1);<br />
printf(&quot;\nSpielzug=%d\n&quot;,bew1);</p>
<p>if(sp[0].status==0&amp;&amp;z==0)<br />
z++;<br />
if(sp[1].status==0&amp;&amp;z==1)<br />
z++;<br />
if(sp[2].status==0&amp;&amp;z==2)<br />
z=z-2;<br />
printf(&quot;Status0=%d\n&quot;,sp[0].status);<br />
printf(&quot;Status1=%d\n&quot;,sp[1].status);<br />
printf(&quot;Status2=%d\n&quot;,sp[2].status);</p>
<p>switch(bew1)<br />
{</p>
<p>case 26 ://unten,rechts</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x+2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x++;}<br />
if(sp[z].y&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&lt;5&amp;&amp;wuerfel_zahl==2||sp[z].x&lt;5&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x--;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y--;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}</p>
<p>break;<br />
case 24 ://unten, links</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x-2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x--;}<br />
if(sp[z].y&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x+2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].x&gt;5&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x++;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x+2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x++;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 42 ://links, unten</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y+2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y++;}<br />
if(sp[z].x&lt;0&amp;&amp;wuerfel_zahl==1||sp[z].y&gt;5&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y-2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].x&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y--;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y--;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 48 ://links, oben</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y-2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y--;}<br />
if(sp[z].x&lt;0&amp;&amp;wuerfel_zahl==1||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y+2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&lt;0&amp;&amp;wuerfel_zahl==2||sp[z].x&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y++;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y+2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y++;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 84 ://oben,links</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x-2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x--;}<br />
if(sp[z].x&lt;0&amp;&amp;wuerfel_zahl==1||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x+2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&lt;0&amp;&amp;wuerfel_zahl==2||sp[z].x&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x++;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x+2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x++;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 86 ://oben,rechts</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x+2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x++;}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x--;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y++;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 68 ://rechts, oben</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y-2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y--;}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y+2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y++;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y+2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y++;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 62 ://rechts, unten</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y+2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y++;}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].y&gt;5&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y-2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].y&gt;5&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y--;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y--;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;<br />
default: printf(&quot;Sie haben einen falschen Spielzug eingegeben. Bitte wiederholen Sie den Spielzug&quot;);z--;<br />
}</p>
<p>//Spielerausfall//</p>
<p>if(z==0&amp;&amp;sp[0].x==sp[1].x&amp;&amp;sp[0].y==sp[1].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr2symbol);<br />
*ptrsp1x='-'; *ptrsp1y='-';sp[1].status=0;}<br />
if(z==0&amp;&amp;sp[0].x==sp[2].x&amp;&amp;sp[0].y==sp[2].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr3symbol);<br />
*ptrsp2x='-'; *ptrsp2y='-';sp[2].status=0;}<br />
if(z==1&amp;&amp;sp[1].x==sp[0].x&amp;&amp;sp[1].y==sp[0].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr1symbol);<br />
*ptrsp0x='-'; *ptrsp0y='-';sp[0].status=0;}<br />
if(z==1&amp;&amp;sp[1].x==sp[2].x&amp;&amp;sp[1].y==sp[2].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr3symbol);<br />
*ptrsp2x='-'; *ptrsp2y='-';sp[2].status=0;}<br />
if(z==2&amp;&amp;sp[2].x==sp[1].x&amp;&amp;sp[2].y==sp[1].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr2symbol);<br />
*ptrsp1x='-'; *ptrsp1y='-';sp[1].status=0;}<br />
if(z==2&amp;&amp;sp[2].x==sp[0].x&amp;&amp;sp[2].y==sp[0].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr1symbol);<br />
*ptrsp0x='-'; *ptrsp0y='-';sp[0].status=0;}<br />
printf(&quot;\n&quot;);<br />
spielplatz(ptrsp0x,ptrsp0y,ptrsp1x,ptrsp1y,ptrsp2x,ptrsp2y,b1x,b1y,b2x,b2y,ptr1symbol,ptr2symbol,ptr3symbol);</p>
<p>if(sp[0].status==0&amp;&amp;sp[1].status==0||sp[0].status==0&amp;&amp;sp[2].status==0||sp[1].status==0&amp;&amp;sp[2].status==0)<br />
{goto RAUS;}<br />
}<br />
//}while (sp[0].x!=sp[1].x&amp;&amp;sp[0].y!=sp[1].y||sp[0].x!=sp[2].x&amp;&amp;sp[0].y!=sp[2].y||sp[1].x!=sp[2].x&amp;&amp;sp[1].y!=sp[2].y);<br />
}while (sp[0].status!=0&amp;&amp;sp[1].status!=0||sp[0].status!=0&amp;&amp;sp[2].status!=0||sp[1].status!=0&amp;&amp;sp[2].status!=0);</p>
<p>// Spielger x hat gewonnen //<br />
RAUS:<br />
if(sp[0].status==1)<br />
printf(&quot;Spieler %s hat gewonnen&quot;,sp[0].name);<br />
if(sp[1].status==1)<br />
printf(&quot;Spieler %s hat gewonnen&quot;,sp[1].name);<br />
if(sp[2].status==1)<br />
printf(&quot;Spieler %s hat gewonnen&quot;,sp[2].name);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203069/2d-ritter-spiel-char-funktion</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 08:08:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203069.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Jan 2008 13:47:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2D Ritter Spiel char Funktion on Fri, 18 Jan 2008 13:47:40 GMT]]></title><description><![CDATA[<p>Hallo Freunde,<br />
habe ein Problemchen bei einem Programm. Es ist ein 2D Ritter <a href="http://spiel.Es" rel="nofollow">spiel.Es</a> ist ein spielfeld 6x6 mit 2 Bäumen gekennzeichnet durch O und drei Spielern. Die züge werden durch einen Würfel generiert mit den zahlen 1 oder 2, und funkzionieren nach dem Läuferprinzip wie bei einem Schachspiel. Bei 1 läuft er 2 felder in x richtung und 1 in y richtung und bei würfelzahl 2 1stelle in x und 2 stellen in y. Das Spiel läuft soweit , nur jetzt will ich mein Spielfeld bisschen vergrössern, sprich die Felder. Jetzt erscheint auf dem Bildschirm ein Feld 6x6 durch X gekennzeichnet, will es aber schöner machen und Grösser:). Könnt ihr mir dabei helfen??Vielleicht noch ein paar Verbesserungsvorschläge zu dem ganzen Programm geben. Ich meine könnte man das ganze evnt. einfacher machen? Ich danke euch schon mal im Vorraus. Hier ist der Programmcode:<br />
#include &lt;stdio.h&gt;<br />
#include &lt;math.h&gt;<br />
#include &lt;time.h&gt;<br />
#include &lt;stdlib.h&gt;</p>
<p>typedef struct spieler{<br />
double nr;<br />
char name [30], symbol;<br />
int status,x,y;<br />
}SPIELER;</p>
<p>/*Spielfeld, Spieler und Bäume-Ausgabe*/</p>
<p>void spielplatz(int *ptrsp0x, int *ptrsp0y, int *ptrsp1x, int *ptrsp1y, int *ptrsp2x, int *ptrsp2y, int b1x, int b1y, int b2x, int b2y,char *ptr1symbol,char *ptr2symbol,char *ptr3symbol)<br />
{ int i; int j; char spielfeld[6][6];<br />
SPIELER sp[4];<br />
for (i=0;i&lt;6;i++){<br />
printf(&quot;\n&quot;);<br />
for (j=0;j&lt;6;j++){<br />
spielfeld[i][j]= '|';</p>
<p>if(b1y==i&amp;&amp;b1x==j||b2y==i&amp;&amp;b2x==j){<br />
spielfeld[b1y][b1x]='O';<br />
spielfeld[b2y][b2x]='O';<br />
}</p>
<p>if(*ptrsp0y==i&amp;&amp;*ptrsp0x==j||*ptrsp1y==i&amp;&amp;*ptrsp1x==j||*ptrsp2y==i||*ptrsp2x==j){<br />
spielfeld[*ptrsp0y][*ptrsp0x]=*ptr1symbol;<br />
spielfeld[*ptrsp1y][*ptrsp1x]=*ptr2symbol;<br />
spielfeld[*ptrsp2y][*ptrsp2x]=*ptr3symbol;<br />
}<br />
printf(&quot;%c&quot;,spielfeld[i][j]);</p>
<p>}}</p>
<p>}<br />
/*Wuerfel*/<br />
void wuerfel(void)<br />
{ int wuerfel_zahl;<br />
srand ( time(NULL) );<br />
wuerfel_zahl= 1+rand() %2;<br />
printf(&quot;\n\nEs wurde folgende Zahl gewuerfelt:\t%d\n\n&quot;,wuerfel_zahl);<br />
}</p>
<p>int main(void)<br />
{</p>
<p>/*Prototypen*/<br />
SPIELER sp[4];</p>
<p>char *ptr1symbol;<br />
char *ptr2symbol;<br />
char *ptr3symbol;<br />
int *ptrsp0x=&amp;sp[0].x;<br />
int *ptrsp0y=&amp;sp[0].y;<br />
int *ptrsp1x=&amp;sp[1].x;<br />
int *ptrsp1y=&amp;sp[1].y;<br />
int *ptrsp2x=&amp;sp[2].x;<br />
int *ptrsp2y=&amp;sp[2].y;<br />
int i,j,p,n,b1x,b1y,b2x,b2y,z;<br />
int wuerfel_zahl;<br />
int bew1;<br />
char spielfeld [6][6];</p>
<p>/*Spieler-Identifikation*/</p>
<p>for(p=1;p&lt;=3;p++){<br />
printf(&quot;Bitte geben Sie den Namen des %d.Spielers ein?\n&quot;,p);<br />
scanf(&quot;%s&quot;,&amp;sp[p].name);getchar();<br />
printf(&quot;\nBitte geben Sie das Spielersymbol fuer %s ein\n&quot;,sp[p].name);<br />
scanf(&quot;%c&quot;,&amp;sp[p].symbol);getchar();<br />
}<br />
ptr1symbol=&amp;sp[1].symbol;<br />
ptr2symbol=&amp;sp[2].symbol;<br />
ptr3symbol=&amp;sp[3].symbol;</p>
<p>/*Spielfeld und Bäume*/</p>
<p>do{<br />
srand ( time(NULL) );<br />
b1x= 1+rand() % 5;<br />
b1y= 1+rand() % 5;<br />
b2x= 1+rand() % 5;<br />
b2y= 1+rand() % 5;<br />
/*Spieler*/</p>
<p>sp[0].x= 1+rand() % 5;<br />
sp[0].y= 1+rand() % 5;<br />
sp[1].x= 1+rand() % 5;<br />
sp[1].y= 1+rand() % 5;<br />
sp[2].x= 1+rand() % 5;<br />
sp[2].y= 1+rand() % 5;<br />
}while(sp[0].x-sp[1].x&lt;2&amp;&amp;sp[0].y-sp[1].y&lt;2&amp;&amp;sp[0].x-sp[2].x&lt;2&amp;&amp;sp[0].y-sp[2].y&lt;2&amp;&amp;sp[1].x-sp[2].x&lt;2&amp;&amp;sp[1].y-sp[2].y&lt;2&amp;&amp;b1x-sp[0].x&lt;2&amp;&amp;b1y-sp[0].y&lt;2&amp;&amp;b2x-sp[0].x&lt;2&amp;&amp;b2y-sp[1].y&lt;2&amp;&amp;b1x-sp[1].x&lt;2&amp;&amp;b2x-sp[1].x&lt;2&amp;&amp;b2y-sp[1].y&lt;2&amp;&amp;b1x-sp[2].x&lt;2&amp;&amp;b1y-sp[2].y&lt;2&amp;&amp;b2x-sp[2].x&lt;2&amp;&amp;b2y-sp[2].y&lt;2);<br />
//}while(b1x==b2x||b1y==b2y||sp[1].x==sp[2].x||sp[1].x==sp[3].x||sp[2].x==sp[3].x||sp[1].y==sp[2].y||sp[1].y==sp[3].y||sp[2].y==sp[3].y||b1x==sp[1].x||b1x==sp[2].x||b1x==sp[3].x||b1y==sp[1].y||b1y==sp[2].y||b1y==sp[3].y||b2x==sp[1].x||b2x==sp[2].x||b2x==sp[3].x||b2y==sp[1].y||b2y==sp[2].y||b2y==sp[3].y);<br />
ptrsp0x=&amp;sp[0].x;<br />
ptrsp0y=&amp;sp[0].y;<br />
ptrsp1x=&amp;sp[1].x;<br />
ptrsp1y=&amp;sp[1].y;<br />
ptrsp2x=&amp;sp[2].x;<br />
ptrsp2y=&amp;sp[2].y;<br />
/*Spielfeld, Spieler und Bäume-Ausgabe*/</p>
<p>spielplatz(ptrsp0x,ptrsp0y,ptrsp1x,ptrsp1y,ptrsp2x,ptrsp2y,b1x,b1y,b2x,b2y,ptr1symbol,ptr2symbol,ptr3symbol);</p>
<p>sp[0].status=1;<br />
sp[1].status=1;<br />
sp[2].status=1;</p>
<p>printf(&quot;\nEs sind folgende Spielzuege moeglich: \n [R]: 6 \n [L]: 4 \n [U]: 2 \n [O]: 8 \n&quot;);</p>
<p>/*Spielzeuge*/<br />
do {<br />
for(z=0;z&lt;3;z++){</p>
<p>wuerfel();<br />
printf(&quot;\nBitte geben Sie beide Spielzuege ein!\n&quot;);<br />
scanf(&quot;%d&quot;, &amp;bew1);<br />
printf(&quot;\nSpielzug=%d\n&quot;,bew1);</p>
<p>if(sp[0].status==0&amp;&amp;z==0)<br />
z++;<br />
if(sp[1].status==0&amp;&amp;z==1)<br />
z++;<br />
if(sp[2].status==0&amp;&amp;z==2)<br />
z=z-2;<br />
printf(&quot;Status0=%d\n&quot;,sp[0].status);<br />
printf(&quot;Status1=%d\n&quot;,sp[1].status);<br />
printf(&quot;Status2=%d\n&quot;,sp[2].status);</p>
<p>switch(bew1)<br />
{</p>
<p>case 26 ://unten,rechts</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x+2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x++;}<br />
if(sp[z].y&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&lt;5&amp;&amp;wuerfel_zahl==2||sp[z].x&lt;5&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x--;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y--;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}</p>
<p>break;<br />
case 24 ://unten, links</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x-2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x--;}<br />
if(sp[z].y&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x+2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].x&gt;5&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x++;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x+2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x++;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 42 ://links, unten</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y+2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y++;}<br />
if(sp[z].x&lt;0&amp;&amp;wuerfel_zahl==1||sp[z].y&gt;5&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y-2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].x&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y--;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y--;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 48 ://links, oben</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y-2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y--;}<br />
if(sp[z].x&lt;0&amp;&amp;wuerfel_zahl==1||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y+2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&lt;0&amp;&amp;wuerfel_zahl==2||sp[z].x&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y++;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y+2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y++;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 84 ://oben,links</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x-2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x--;}<br />
if(sp[z].x&lt;0&amp;&amp;wuerfel_zahl==1||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x+2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].y&lt;0&amp;&amp;wuerfel_zahl==2||sp[z].x&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x++;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x+2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x++;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 86 ://oben,rechts</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].y--;sp[z].x=sp[z].x+2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y-2;sp[z].x++;}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y=sp[z].y+2;sp[z].x--;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].y++;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].y++;sp[z].x=sp[z].x-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 68 ://rechts, oben</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y-2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y--;}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y+2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].y&lt;0&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y++;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y+2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y++;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;</p>
<p>case 62 ://rechts, unten</p>
<p>if(wuerfel_zahl==1)<br />
{sp[z].x++;sp[z].y=sp[z].y+2;}<br />
if(wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x+2;sp[z].y++;}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==1||sp[z].y&gt;5&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y-2;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x&gt;5&amp;&amp;wuerfel_zahl==2||sp[z].y&gt;5&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y--;z--;<br />
printf(&quot;\nDieser Spielzug liegt ausserhalb des Spielfeldes&quot;);<br />
}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==1||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==1)<br />
{sp[z].x--;sp[z].y=sp[z].y-2;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
if(sp[z].x==b1x&amp;&amp;sp[z].y==b1y&amp;&amp;wuerfel_zahl==2||sp[z].x==b2x&amp;&amp;sp[z].y==b2y&amp;&amp;wuerfel_zahl==2)<br />
{sp[z].x=sp[z].x-2;sp[z].y--;z--;<br />
printf(&quot;Die Spielregeln erlauben keine Spruenge ueber oder auf Baeume&quot;);}<br />
break;<br />
default: printf(&quot;Sie haben einen falschen Spielzug eingegeben. Bitte wiederholen Sie den Spielzug&quot;);z--;<br />
}</p>
<p>//Spielerausfall//</p>
<p>if(z==0&amp;&amp;sp[0].x==sp[1].x&amp;&amp;sp[0].y==sp[1].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr2symbol);<br />
*ptrsp1x='-'; *ptrsp1y='-';sp[1].status=0;}<br />
if(z==0&amp;&amp;sp[0].x==sp[2].x&amp;&amp;sp[0].y==sp[2].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr3symbol);<br />
*ptrsp2x='-'; *ptrsp2y='-';sp[2].status=0;}<br />
if(z==1&amp;&amp;sp[1].x==sp[0].x&amp;&amp;sp[1].y==sp[0].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr1symbol);<br />
*ptrsp0x='-'; *ptrsp0y='-';sp[0].status=0;}<br />
if(z==1&amp;&amp;sp[1].x==sp[2].x&amp;&amp;sp[1].y==sp[2].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr3symbol);<br />
*ptrsp2x='-'; *ptrsp2y='-';sp[2].status=0;}<br />
if(z==2&amp;&amp;sp[2].x==sp[1].x&amp;&amp;sp[2].y==sp[1].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr2symbol);<br />
*ptrsp1x='-'; *ptrsp1y='-';sp[1].status=0;}<br />
if(z==2&amp;&amp;sp[2].x==sp[0].x&amp;&amp;sp[2].y==sp[0].y)<br />
{printf(&quot;\nDer Spieler %c ist gefallen\n&quot;,*ptr1symbol);<br />
*ptrsp0x='-'; *ptrsp0y='-';sp[0].status=0;}<br />
printf(&quot;\n&quot;);<br />
spielplatz(ptrsp0x,ptrsp0y,ptrsp1x,ptrsp1y,ptrsp2x,ptrsp2y,b1x,b1y,b2x,b2y,ptr1symbol,ptr2symbol,ptr3symbol);</p>
<p>if(sp[0].status==0&amp;&amp;sp[1].status==0||sp[0].status==0&amp;&amp;sp[2].status==0||sp[1].status==0&amp;&amp;sp[2].status==0)<br />
{goto RAUS;}<br />
}<br />
//}while (sp[0].x!=sp[1].x&amp;&amp;sp[0].y!=sp[1].y||sp[0].x!=sp[2].x&amp;&amp;sp[0].y!=sp[2].y||sp[1].x!=sp[2].x&amp;&amp;sp[1].y!=sp[2].y);<br />
}while (sp[0].status!=0&amp;&amp;sp[1].status!=0||sp[0].status!=0&amp;&amp;sp[2].status!=0||sp[1].status!=0&amp;&amp;sp[2].status!=0);</p>
<p>// Spielger x hat gewonnen //<br />
RAUS:<br />
if(sp[0].status==1)<br />
printf(&quot;Spieler %s hat gewonnen&quot;,sp[0].name);<br />
if(sp[1].status==1)<br />
printf(&quot;Spieler %s hat gewonnen&quot;,sp[1].name);<br />
if(sp[2].status==1)<br />
printf(&quot;Spieler %s hat gewonnen&quot;,sp[2].name);<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439027</guid><dc:creator><![CDATA[juri.mellit]]></dc:creator><pubDate>Fri, 18 Jan 2008 13:47:40 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Ritter Spiel char Funktion on Fri, 18 Jan 2008 13:53:24 GMT]]></title><description><![CDATA[<p>Solche Sachen:</p>
<pre><code class="language-cpp">sp[0].x= 1+rand() % 5;
sp[0].y= 1+rand() % 5;
sp[1].x= 1+rand() % 5;
sp[1].y= 1+rand() % 5;
sp[2].x= 1+rand() % 5;
sp[2].y= 1+rand() % 5;
</code></pre>
<p>und</p>
<pre><code class="language-cpp">if(sp[0].status==1)
printf(&quot;Spieler %s hat gewonnen&quot;,sp[0].name);
if(sp[1].status==1)
printf(&quot;Spieler %s hat gewonnen&quot;,sp[1].name);
if(sp[2].status==1)
printf(&quot;Spieler %s hat gewonnen&quot;,sp[2].name);
</code></pre>
<p>kann man gut in Schleifen unterbringen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Und: Bitte sieh zu, dass du irgendwie die 'goto's rauskriegst, ordentliche Schleifen oder Bedingungen ziehen da oft besser (abgesehen von Lesbarkeit und Sauberkeit).<br />
Ach, und die cpp-Codetags könntest du verwenden, dann funktionieren Einrückung und Syntax-Highlighting hier im Forum auch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439035</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 18 Jan 2008 13:53:24 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Ritter Spiel char Funktion on Fri, 18 Jan 2008 13:55:26 GMT]]></title><description><![CDATA[<p>Aber wie würdest du das mit dem Spielfeld machen??Also schöner und grösser:). Danke dir!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439041</guid><dc:creator><![CDATA[juri.mellit]]></dc:creator><pubDate>Fri, 18 Jan 2008 13:55:26 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Ritter Spiel char Funktion on Fri, 18 Jan 2008 13:57:35 GMT]]></title><description><![CDATA[<p>juri.mellit schrieb:</p>
<blockquote>
<p>Aber wie würdest du das mit dem Spielfeld machen??Also schöner und grösser:). Danke dir!!!</p>
</blockquote>
<p>Sorry, aber ohne Code-Tags gucke ich mir deinen Code nicht näher an (kannst ja den Post editieren)! Hätte aber grad auch keine Zeit, das zu testen oder mich rein-zuvertiefen, erst wieder heut (spät-)Nachmittag <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439042</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 18 Jan 2008 13:57:35 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Ritter Spiel char Funktion on Fri, 18 Jan 2008 13:57:43 GMT]]></title><description><![CDATA[<p>Größer? Die Grenzen erhöhen... Benutze Konstanten da, wo du dich auf die Spielfeldgröße beziehst und das erweitern der Grenze geht auch später noch in Sekunden.</p>
<p>Schöner? Wenn du keine Grafik nutzen willst/kannst, dann schau dir die verfügbaren ASCII-Zeichen an und nutze Sonderzeichen für zB den Spielfeldrand, die Bäume etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439044</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 18 Jan 2008 13:57:43 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Ritter Spiel char Funktion on Fri, 18 Jan 2008 14:02:13 GMT]]></title><description><![CDATA[<p>Du solltest dir vielleicht ein GUI-Toolkit anschauen (z.B. <a href="http://www.wxwidgets.org" rel="nofollow">WxWidgets</a>).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439048</guid><dc:creator><![CDATA[Thracian]]></dc:creator><pubDate>Fri, 18 Jan 2008 14:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Ritter Spiel char Funktion on Fri, 18 Jan 2008 14:33:14 GMT]]></title><description><![CDATA[<p>Außerdem sieht mir der Code nach reinem C aus, d.h. falsches Sub-Forum -)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1439077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1439077</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Fri, 18 Jan 2008 14:33:14 GMT</pubDate></item></channel></rss>