Autor Beitrag
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Mo 09.08.04 16:20 
Hallo, ich bin dabei ein Schachprogramm zu schreiben. Dabei habe ich eine Klasse(Tchess) entwickelt. Diese Klasse stellt ein virtuelles Schachbrett bereit.
Die Klasse sollte unter allen Delphiversionen laufen und auch leicht in andere Sprachen zu adaptieren sein, da ich auf grafische Elemte verzichtet habe und keine uses verwende.
ausblenden Delphi-Quelltext
1:
edit:entfernt					


Verwendung der Klasse:
Nach dem Createaufruf muss als erstes die Procedure Reset aufgerufen werden, weil es sonst Fehler gibt!
Mit isMovepossible kann abgefragt werden, ob éin Zug möglich ist.
Die Function isPlatzbelegt gibt an, ob ein Feld von einer Figur belegt ist.
Die Function isFigur gibt ein Record zurück, welches angibt, ob auf dem Feld ein Figur ist und gibt im Gegensatz zu isPlatzbelegt noch die Figurnummer zurück.

Was die Klasse nicht kann:
Sie beinhaltet keine grafische Ausgabe, das müßt ihr selbst machen.
Wenn ihr eine Figur bewegt, müßt ihr die Position der Figur manuell verändern.
Wenn eine Figur geschlagen wird, müßt ihr die Eigenschaft Typ der Figur auf no setzen damit diese nicht mehr in die Routinen einbezogen wird.
Die Bauerntransformation ist ebenfalls nicht enthalten.

Ferner ist Die klasse noch nicht ganz fertig. Die Enpassant-Bewegung, die Rochade und die Schachabfrage sind noch nicht programmiert.

Ich hoffe ich kann damit einigen helfen.
Ich bin für Verbesserungsvorschläge und Kritik offen.

Hier ist eine Weiterentwicklung:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
unit moves2;

interface
type
  Tspieler=(weiss,schwarz);
  Tfigur = record
   spieler:Tspieler;
   typ:(Bauer,Turm,Springer,Laeufer,Koenig,Dame,no);
   xpos:1..8;
   ypos:1..8;
  end;
  TIsFigur = record
   bvar:boolean;
   num:integer;
  end;
  tsituation=(normal,win_white,win_black,patt,notallowed);
  Tchess=class
    figurs:array[0..31of Tfigur;
    situation:Tsituation;
   protected
    savefigurs:array of Tfigur;
    function bauernmove(figur:tfigur;xmove,ymove:integer):boolean;
    function Turmmove(figur:tfigur;xmove,ymove:integer):boolean;
    function springermove(figur:tfigur;xmove,ymove:integer):boolean;
    function laeufermove(figur:tfigur;xmove,ymove:integer):boolean;
    function delta(var1,var2:integer):integer;
    function takesituation:tsituation;
   public
    procedure reset;
    function MoveFigur(figurnr:byte;xmove,ymove:integer):Tsituation;
    function isMovePossible(Figur:Tfigur;xmove,ymove:integer):boolean;
    function isPlatzBelegt(x,y:integer):boolean;
    function isFigur(x:integer;y:integer):TISFigur;
   end;

var
turn:Tspieler;
implementation

procedure tchess.reset;
var
a,b:integer;
{$region'Figurpositionen'}
begin
for a:=0 to 7 do
begin
 figurs[a].typ:=Bauer;   figurs[a].ypos:=2;
 figurs[a].spieler:=weiss;       figurs[a].xpos:=a+1;
end;
b:=8;
for a:=0 to 7 do
begin
 figurs[a+b].spieler:=schwarz;   figurs[a+b].typ:=Bauer;
 figurs[a+b].ypos:=7;    figurs[a+b].xpos:=a+1;
end;
b:=b+8;
//TurmPositionen
Figurs[16].spieler:=weiss;       Figurs[16].typ:=turm;
Figurs[16].ypos:=1;     Figurs[16].xpos:=1;
Figurs[17].spieler:=weiss;       Figurs[17].typ:=turm;
Figurs[17].ypos:=1;     Figurs[17].xpos:=8;
Figurs[18].spieler:=schwarz;    Figurs[18].typ:=turm;
Figurs[18].ypos:=8;     Figurs[18].xpos:=1;
Figurs[19].spieler:=schwarz;    Figurs[19].typ:=turm;
Figurs[19].ypos:=8;     Figurs[19].xpos:=8;
//SpringerPositionen
Figurs[20].spieler:=weiss;      Figurs[20].typ:=springer;
Figurs[20].ypos:=1;     Figurs[20].xpos:=2;
Figurs[21].spieler:=weiss;      Figurs[21].typ:=springer;
Figurs[21].ypos:=1;     Figurs[21].xpos:=7;
Figurs[22].spieler:=schwarz;    Figurs[22].typ:=springer;
Figurs[22].ypos:=8;     Figurs[22].xpos:=7;
Figurs[23].spieler:=schwarz;    Figurs[23].typ:=springer;
Figurs[23].ypos:=8;     Figurs[23].xpos:=2;
//LäuferPositionen
Figurs[24].spieler:=weiss;      Figurs[24].typ:=laeufer;
Figurs[24].ypos:=1;     Figurs[24].xpos:=3;
Figurs[25].spieler:=weiss;      Figurs[25].typ:=laeufer;
Figurs[25].ypos:=1;     Figurs[25].xpos:=6;
Figurs[26].spieler:=schwarz;    Figurs[26].typ:=laeufer;
Figurs[26].ypos:=8;     Figurs[26].xpos:=3;
Figurs[27].spieler:=schwarz;    Figurs[27].typ:=laeufer;
Figurs[27].ypos:=8;     Figurs[27].xpos:=6;
//KönigPositionen
Figurs[30].spieler:=weiss;      Figurs[30].typ:=koenig;
Figurs[30].ypos:=1;     Figurs[30].xpos:=5;
Figurs[31].spieler:=schwarz;    Figurs[31].typ:=koenig;
Figurs[31].ypos:=8;     Figurs[31].xpos:=5;
//DamePositionen
Figurs[28].spieler:=weiss;      Figurs[28].typ:=dame;
Figurs[28].ypos:=1;     Figurs[28].xpos:=4;
Figurs[29].spieler:=schwarz;    Figurs[29].typ:=dame;
Figurs[29].ypos:=8;     Figurs[29].xpos:=4;
{$endregion}
turn:=weiss;
end;

function tchess.MoveFigur(figurnr:byte;xmove,ymove:integer):Tsituation;
var
isfigurvar:tISFIGUR;
begin
if ismovepossible(figurs[figurnr],xmove,ymove) then
begin
 isfigurvar:=isFigur(xmove,ymove);
 if isfigurvar.bvar=true then
  figurs[isfigurvar.num].typ:=no;
 savefigurs:=figurs;
 figurs[figurnr].xpos:=xmove;
 figurs[figurnr].ypos:=ymove;
 result:=takesituation;
 case turn of
  weiss:
  begin
   if result=win_black then
   begin
    figurs:=savefigurs;
    result:=notallowed;
   end;
   turn:=schwarz;
  end;
  schwarz:
  begin
   if result=win_white then
   begin
    figurs:=savefigurs;
    result:=notallowed;
   end;
   turn:=weiss;;
  end;
 end;
end;
end;

function Tchess.isMovePossible(Figur:Tfigur;xmove,ymove:integer):boolean;
var
isFigurvar2:TisFigur;
xinverse,yinverse:integer;
a:integer;
lokisfigurvar:Tisfigur;
begin
result:=false;
if figur.spieler=turn then
 case figur.typ of
  Bauer:
  //Schlagen Enpassent und Umformung fehlen!!
  begin
   if bauernmove(figur,xmove,ymove)=true then
    result:=true;
  end;
  Turm:
  begin
   if turmmove(figur,xmove,ymove)=true then
    result:=true;
  end;
  Springer:
  begin
   if Springermove(figur,xmove,ymove)=true then
    result:=true;
  end;
  Laeufer:
  begin
   if laeufermove(figur,xmove,ymove)=true then
    result:=true;
  end;
  Koenig:
  //Abfrage ob Zielposition =schach fehlt? vielleich bei movefigur abgefangen
  begin
   if delta(figur.xpos,xmove)<2 then
    if delta(figur.ypos,ymove)<2 then
    begin
     lokisfigurvar:=isfigur(xmove,ymove);
     if lokisfigurvar.bvar=true then
     begin
      if figurs[lokisfigurvar.num].spieler<>figur.spieler then
      result:=true;
     end
     else
      result:=true
    end;
  end;
  Dame:
  begin
   if turmmove(figur,xmove,ymove)=true then
    result:=true
   else
    if laeufermove(figur,xmove,ymove)=true then
     result:=true;
  end;
 end;

end;

function tchess.bauernmove(figur:tfigur;xmove,ymove:integer):boolean;
var
isfigurvar2:Tisfigur;
begin
  result:=false;
  if figur.spieler=weiss then
   {$Region 'WeisserBauerCode'}
  begin
   if xmove=figur.xpos then // normales vorwärtsgehen
    {$Region 'Normales Gehen'}
    begin
     if ymove-figur.ypos = 1 then
     begin
      if isPlatzBElegt(xmove,ymove)=false then
       result:=true
     end
     else
      if figur.ypos=2 then //Aus Start Positionen heraus
       if ymove=4 then
       begin
        if isPlatzBElegt(xmove,3)=false then //Test ob Figur im Weg
         if isPlatzBElegt(xmove,ymove)=false then
         begin
          result:= true;
         end;
       end;
    end;
    {$Endregion}
   //schlagen vorwärts links
    {$region 'schlagen vorwärts links'}
   if result=false then
   begin
    isFigurvar2:=isFigur(figur.xpos-1,figur.ypos+1);
    if isFigurvar2.bvar=true then
     if Figurs[isfigurvar2.num].spieler=schwarz then
     begin
      result:=true;
     end
    else
    begin
     isFigurvar2:=isFigur(figur.xpos-1,figur.ypos);
     if isFigurvar2.bvar=true then
      if Figurs[isfigurvar2.num].spieler=schwarz then
       result:=true;
    end;
   end;
    {$endregion}
   //schlagen vorwärts rechts
    {$region 'schlagen vorwärts rechts'}
   if result=false then
   begin
    isFigurvar2:=isFigur(figur.xpos+1,figur.ypos+1);
    if isFigurvar2.bvar=true then
    begin
     if Figurs[isfigurvar2.num].spieler=schwarz then
     begin
      result:=true;
     end;
    end
    else
    begin
     isFigurvar2:=isfigur(figur.xpos+1,figur.ypos);
     if isfigurvar2.bvar=true then
     begin
      if Figurs[isfigurvar2.num].spieler=schwarz then
      begin
       result:=true;
      end;
     end;
    end;
   end;
   {$endregion}
  end
   {$Endregion}
  else //Ab hier das gleich nur für Schwarz
   {$Region 'SchwarzerBauerCode'}
  begin
   {$Region 'Normales Gehen'}
   if xmove=figur.xpos then
   begin
    if ymove-figur.ypos = -1 then
    begin
     if isPlatzBElegt(xmove,ymove)=false then
      result:=true;
    end
    else
     if figur.ypos=7 then
      if ymove=5 then
      begin
       if isPlatzBElegt(xmove,6)=false then
        if isPlatzBElegt(xmove,ymove)=false then
        begin
         result:= true;
        end;
      end;
   end;
   {$Endregion}
   //schlagen vorwärts links
   {$region 'schlagen vorwärts links'}
   if result=false then
   begin
    isFigurvar2:=isFigur(figur.xpos-1,figur.ypos-1);
    if isFigurvar2.bvar=true then
    begin
     if Figurs[isfigurvar2.num].spieler=weiss then
     begin
      result:=true;
     end;
    end
    else
    begin
     isFigurvar2:=isFigur(figur.xpos-1,figur.ypos);
     if isFigurvar2.bvar = true then
      if figurs[isfigurvar2.num].spieler=weiss then
       result:=true;
    end;
   end;
   {$Endregion}
   //schlagen vorwärts rechts
    {$region 'schlagen vorwärts rechts'}
   if result=false then
   begin
    isFigurvar2:=isFigur(figur.xpos+1,figur.ypos-1);
    if isFigurvar2.bvar=true then
    begin
     if figurs[isfigurvar2.num].spieler=weiss then
      result:=true;
    end
    else
    begin
     isFigurvar2:=isfigur(figur.xpos+1,figur.ypos);
     if isfigurvar2.bvar=true then
      if figurs[isfigurvar2.num].spieler=weiss then
       result:=true;
    end;
   end;
  end;
   {$Endregion}
  {$Endregion}
 end;

function Tchess.Turmmove(figur:tfigur;xmove,ymove:integer):boolean;
var
lokisfigurvar:Tisfigur;
a,xinverse,yinverse:integer;
{$region 'Horizontal'}
begin
 result:=false;
 if figur.ypos=ymove then
 begin
  if figur.xpos>xmove then xinverse:=-1 else xinverse:=1;
  a:=figur.xpos+xinverse;
  if delta(figur.xpos,xmove)>1 then
  begin
   lokisfigurvar:=isfigur(a,ymove);
   if lokisfigurvar.bvar=false then
   begin
    while (isPlatzbelegt(a,ymove)=false) and (delta(a,xmove)<>0do
    begin
     if a+xinverse=xmove then
     begin
      lokisfigurvar:=isfigur(xmove,ymove);
      if lokisfigurvar.bvar=true then
      begin
       if figurs[lokisfigurvar.num].spieler<>figur.spieler then
        result:=true;
      end
      else
      begin
       result:=true;
      end;
     end;
     a:=a+xinverse;
    end;
   end;
  end
  else
  begin
   lokisfigurvar:=isfigur(xmove,ymove);
   if lokisfigurvar.bvar=true then
   begin
    if figurs[lokisfigurvar.num].spieler<>figur.spieler then
     result:=true;
   end
   else
    result:=true;
  end;
 end;
 {$endregion}
 {$region 'Vertikal'}
 if figur.xpos=xmove then
 begin
  if figur.ypos>ymove then yinverse:=-1 else yinverse:=1;
  a:=figur.ypos+yinverse;
  if delta(figur.ypos,ymove)>1 then
  begin
   lokisfigurvar:=isfigur(xmove,a);
   if lokisfigurvar.bvar=false then
   begin
    while (isPlatzbelegt(xmove,a)=false) and (delta(a,ymove)<>0do
    begin
     if a+yinverse=ymove then
     begin
      lokisfigurvar:=isfigur(xmove,ymove);
      if lokisfigurvar.bvar=true then
      begin
       if figurs[lokisfigurvar.num].spieler<>figur.spieler then
        result:=true;
      end
      else
      begin
       result:=true;
      end;
     end;
     a:=a+yinverse;
    end;
   end;
  end
  else
  begin
   lokisfigurvar:=isfigur(xmove,ymove);
   if lokisfigurvar.bvar=true then
   begin
    if figurs[lokisfigurvar.num].spieler<>figur.spieler then
     result:=true;
   end
   else
    result:=true;
 end;
end;
 {$Endregion}
end;

function tchess.springermove(figur:tfigur;xmove,ymove:integer):boolean;
var
lokisfigurvar:Tisfigur;
begin
 result:=false;
 if Figur.xpos-xmove=(2 or -2then
  if figur.ypos-ymove=(1 or -1then
   begin
    lokisfigurvar:=isfigur(xmove,ymove);
    if lokisfigurvar.bvar=false then
    begin
     result:=true;
    end
    else
     if figurs[lokisfigurvar.num].spieler<>figur.spieler then
      result:=true;
   end;
 if Figur.ypos-ymove=(2 or -2then
  if figur.xpos-xmove=(1 or -1then
   begin
    lokisfigurvar:=isfigur(xmove,ymove);
    if lokisfigurvar.bvar=false then
    begin
     result:=true;
    end
    else
     if figurs[lokisfigurvar.num].spieler<>figur.spieler then
      result:=true;
   end;
end;

function Tchess.laeufermove(figur:tfigur;xmove,ymove:integer):boolean;
var
xinverse,yinverse:integer;
a,b:integer;
lokisfigurvar:Tisfigur;
begin
 result:=false;
 if delta(figur.xpos,xmove)=delta(figur.ypos,ymove) then
 begin
  if figur.xpos>xmove then xinverse:=-1 else xinverse:=1;
  if figur.ypos>ymove then yinverse:=-1 else yinverse:=1;
  a:=figur.xpos+xinverse;
  b:=figur.ypos+yinverse;
  if delta(figur.xpos,xmove)>1 then
  begin
   lokisfigurvar:=isfigur(a,b);
   if lokisfigurvar.bvar=false then
   begin
    while (isplatzbelegt(a,b)=false) and (delta(a,xmove)<>0do
    begin
     if a+xinverse=xmove then
     begin
      lokisfigurvar:=isfigur(a,b);
      if lokisfigurvar.bvar=true then
      begin
       if figurs[lokisfigurvar.num].spieler<>figur.spieler then
        result:=true;
      end
      else
       result:=true;
     end;
     a:=a+xinverse;
     b:=b+yinverse;
    end;
   end;
  end
  else
  begin
   lokisfigurvar:=isfigur(xmove,ymove);
   if lokisfigurvar.bvar=true then
   begin
    if figurs[lokisfigurvar.num].spieler<>figur.spieler then
     result:=true;
   end
   else
    result:=true;
  end;
 end;
end;

function Tchess.isPlatzBelegt(x,y:integer):boolean;
var
a:integer;
begin
result:=false;
for a:=0 to length(Figurs)-1 do
 if figurs[a].typ<>no then
  if figurs[a].xpos=x then
   if Figurs[a].ypos=y then
    result:=true;
end;

function Tchess.isFigur(x:integer;y:integer):TISFigur;
var a:integer;
begin
isfigur.num:=0;
IsFigur.bvar:=false;
for a:=0 to length(figurs)-1 do
 if figurs[a].typ<>no then
  if x=figurs[a].xpos then
   if y=figurs[a].ypos then
    begin
    IsFigur.bvar:=true;
    isFigur.num:=a;
    end;
end;

function Tchess.delta(var1,var2:integer):integer;
begin
 if var1>var2 then
 begin
  result:=var1-var2;
 end
 else
  if var2>var1 then
  begin
   result:=var2-var1;
  end
  else
   if var1=var2 then
    result:=0;
end;

function tchess.takesituation:tsituation;
var
a:integer;
begin
 result:=normal; a:=0;
 while (result=normal) and (a<length(figurs)) do
 begin
  if figurs[a].typ<>no then
   if figurs[a].spieler=weiss then
   begin
    if ismovepossible(figurs[a],figurs[31].xpos,figurs[31].ypos)=true then
     result:=win_white;
   end
   else
    if ismovepossible(figurs[a],figurs[30].xpos,figurs[30].ypos)=true then
     result:=win_black;
  inc(a)
 end;
 if result=win_white then
 begin
  a:=0;
  while (result=win_white) and (a<length(figurs)) do
   if Figurs[a].typ<>no then
    if Figurs[a].spieler=schwarz then
     if ismovepossible(figurs[a],figurs[30].xpos,figurs[30].ypos) =true then
      result:=patt;
 end
 else
  if result=win_white then
  begin
   a:=0;
   while (result=win_black) and (a<length(figurs)) do
    if Figurs[a].typ<>no then
     if Figurs[a].spieler=weiss then
      if ismovepossible(figurs[a],figurs[31].xpos,figurs[31].ypos) =true then
       result:=patt;
  end;

end;

end.


Änderung:
Es steht der Befehl movefigur zur Verfügung. Damit braucht ihr die Figuren nicht mehr selbst bewegen. Außerdem gibtz der Befehl auf gleich die entstandenen Situation(Normal, schach oder patt) zurück.
biochip2
Hält's aus hier
Beiträge: 15

Win 2000

BeitragVerfasst: Sa 20.11.04 18:44 
Titel: Tchess syntaxfehler
Hi, Tilo
Ich habe dein Programm propieren wollen aber es kommen syntaxfehler .
Die compilerdirektiven in den Proceduren und funktionen $region,$Endregion, und das offene Array savefirst.

savefirst:=first syntaxfehler ->Imkomptibe Typen 'Array' und 'Dynamic array'
$region -> ungültige compileranweisung
Beim formcreate wurde chess.reset aufgerufen.
Habe D6 Personal aber es soll auf anderen versionen auch laufen.

Biochip2
Tilo Threadstarter
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: So 21.11.04 14:34 
Danke erstmal für dein Interese am Code.
Der Code stellt kein eigenständiges Programm dar. Der Code dient lediglich daszu, die Figurenpositionen zu verwalten, zu prüfen ob ein Zug gültig ist und welche Spielsituation sich ergibt.
Der Code enthält keine grafische Ausgabe oder KI.
Um den Code zu verwenden must Du diese Unit unter der Uses Klausel deines Programms angeben. Dann must eine Variable als Tchess deklarieren(z.B. MeinFeld:Tchess;) damit es funktioniert.
Grafische Ausgabe und KI must Du selbst erstellen. Ich bin an der KI verzweifelt und arbeite an diesem Projekt nicht weiter.
Zu Fragen zu den bereits veröffentlichten Code antworte ich trotzdem weiter.
Edit:
Die Compileranweisungen
{$region'Name der Region'}
und
ausblenden Quelltext
1:
{$endregion}					

sind nur D8 gültig soweit ich weiss. Die könnten aber gelöscht werden, da sie KEINEN Einfluß auf das Programm haben. Mit diesen Aneisung kann man während des Programmierens Code ausblenden, was die Übersichtlichkeit fördert.
//Edit