Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Afprøvning af "midt" skak program...

Af Bruger Aspirant Rogn | 08-06-2005 16:02 | 1429 visninger | 12 svar, hop til seneste
Jeg har fået lavet et skak program, sammen med en anden på min skole. Og jeg vil gerne vide hvordan det nogunlunde spiller. Så det ville være lækkert om i gad afprøve programmet og fortælle mig om grove mangler eller mulige forbrdringer. Jeg ved at der er nogle problemer når spillet når sin slutning, men det opdager i nok. Der er Pawn Promotion og Castling implementeret. I Starter spillet ved at sige hvem der skal være computer osv. Så kan man indtaste hvor meget tid computer skal have i "time limit". Gør man ikke det vil en default tid bruges (20s). Jo mere tid i giver den, jo bedre spiller den. Når i har lavet alt dette, trykker i på Initialize, så starter spillet og det er klart at rykke. her kan i downloade spillet.... http://bigup.peecee.lir.dk[...]
--
Cpu Barton 2500+ Ram 512 mb DDR Pc 3200 Grafikkort Gforce FX5900XT 2 X 180 IBM + 160Gb Maxtor, 8mb cache Bundkort AsRock K7S8X rev.3
#1
Najdorf
Bruger
08-06-2005 17:21

Rapporter til Admin
Hejsa Jeg har testet jeres spil lidt, men vil kigge mere på det i aften. Det er umiddelbart pænt og virker! Spørgsmål: Jeg tror I har implemeteret rokaden lidt forkert: Man ikke rokere når man står i skak, men man må godt rokere bagefter så længe man ikke har flyttet korn el. tårn, eller rokere over et truet felt m. kongen. Bruger I hash-tabeller til at gemme evalueringer? Eller er alt "glemt", når den har udført et træk? Feltet "moves to score", hvilken funktion har det? og kan det ikke oversættes let til almindelig skaknotation? Bruges der nogen form for åbningsbog? mvh Jesper
--
#2
Rogn
Bruger Aspirant
08-06-2005 17:46

Rapporter til Admin
Hej Jesper, tak for responsen Det med rokaden skulle være implementeret, men jeg kan lige kigge på det. Vi bruger ikke hash-tabeller. Det er måske noget vi vil tænke på at lave senere. Vi har ingen opnings bog. Moves to Score kan ses her, det er bare den repræsentation vi har i spillet. Her kan du se, hvordan de ligger i forhold til et normalt skak bræt. 0 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 Vi har et 8x8 unsigned char array til at repræsentere boardet. Her kan du se lidt om hvordan vore datastrukur er for selve brikkerne. Ideen med datastrukturen for brikkerne er, at brikkernes værdi skal designes så vi med en ’and’ eller ’or’ operation kan identificere farve og type. Dette kan gøres på følgende måde: De to mest betydende bit bestemmer farven, og de 6 mindst betydende bit bestemmer typen Briktype (Farve)(Type) Sort (01)(xxxxxx) 64 Hvid (10)(xxxxxx) 128 Kong (xx)(000000) 0 Dronning (xx)(000001) 1 Løber (xx)(000010) 2 Tårn (xx)(000011) 3 Hest (xx)(000100) 4 Hvid Bonde (xx)(000101) 5 Sort Bonde (xx)(000110) 6 Den eneste undtagelse er bønderne, som ses som forskellige typer. Dette design giver mulighed for, at vi hurtigt kan tjekke hvilken farve og type en brik er. Laver man en ’and’, med den farve man vil finde (64 eller 128), vil man få 0 hvis brikken ikke har samme farve. Denne funktionalitet kan vi udnytte i vores ’if sætninger’, da vi med én instruktion kan tjekke farven på en brik. Laves en ’and’ med 63, kan brikkens type bestemmes, da de to øverste bit vil blive sat til 0. Og hvis vi laver en ’and’ med 192 vil vi få farven, da de nederste 6 bit vil være 0.
--
Cpu Barton 2500+ Ram 512 mb DDR Pc 3200 Grafikkort Gforce FX5900XT 2 X 180 IBM + 160Gb Maxtor, 8mb cache Bundkort AsRock K7S8X rev.3
#3
Rogn
Bruger Aspirant
08-06-2005 18:11

Rapporter til Admin
Du havde ret Jesper, der var en fejl med at lave rokade. Vi manglede at sørge for at se om kongen også var truet. Men der er blevet fikset nu. her er en ny version http://bigup.peecee.lir.dk[...] Det viser bare hvor svært det er at teste det, der er hele tiden et eller andet man har glemt..
--
Cpu Barton 2500+ Ram 512 mb DDR Pc 3200 Grafikkort Gforce FX5900XT 2 X 180 IBM + 160Gb Maxtor, 8mb cache Bundkort AsRock K7S8X rev.3
#4
Zimes
Moderator
08-06-2005 18:20

Rapporter til Admin
Der burde nok være feltindikatorer på, bare for at gøre det overskueligt ned træk. I har altså ingen standardrespons på diverse gambitter såsom Blackmar-Diemer gambit? Hvad med en passant, har I fået den regel med?
--
"When one is not capable of true intelligence, it is good to consult with someone of good sense" - Hagakure
#5
Rogn
Bruger Aspirant
08-06-2005 18:44

Rapporter til Admin
#4 Vi har ikke nogle standardrespons på de forskellige åbninger. En passent valgte vi ikke at implementere da vi havde andre ting der havde højere prioritet. Det er rigtigt at det ville gøre det nemmere om vi brukte standard skak positioner, isteden for den nummerering vi bruger. Men det er kun blevet lavet for at kunne debugge applikationen.
--
Cpu Barton 2500+ Ram 512 mb DDR Pc 3200 Grafikkort Gforce FX5900XT 2 X 180 IBM + 160Gb Maxtor, 8mb cache Bundkort AsRock K7S8X rev.3
#6
Najdorf
Bruger
08-06-2005 18:49

Rapporter til Admin
Styrken er slet ikke så ringe, den er meget materialistisk, som man kunne forvente. Men ved 20sek på min pentium M 2GHz har den vel en 14-1500 i vurderet rating, vil jeg umiddelbart tro. Jeg synes I skulle prøve at bygge en minimal åbningsbog op, det kræver meget skakviden at gøre det godt, men fx bare et par skabelon træk i træk 1 vil være en god ide. Fx åbner den med c2-c3 som hvid, det giver ikke særligt spændende stillinger som hovedregel. Fx 30% chance for e4, 30% for d4 , 25% c4 og 15% Sf3. Kunne være en start, så er der samtidigt lidt variation. Har I nogen som helst skakviden inde? Som fx gode og dårlige brikker, åbne linier osv. Jeg kunne forestille mig det var svært, men derfor kunne I godt have prøvet. Det er fint at den annocere mat, men lidt irriterende at den bruger de 20sek først alligevel. Det samme gælder ved forcerede stillinger, hvor der kun er et valg. Der kunne det være smart at udføre trækket øjeblikkeligt. Hvilket programmeringssprog har I anvendt? Jesper
--
#7
Rogn
Bruger Aspirant
08-06-2005 19:29

Rapporter til Admin
Problemet er at vi mildt sagt ikke er særlig skrappe til at spille skak. Vores evaluering er meget simpel, jeg kan tage et eksempel her: case 6://PAWN BlackEvaluationValue += (100 + m_PawRow[i] + (m_PawLine[j]*i)/2); break; case 2://BISHOP BlackEvaluationValue += (300 + (double)Movelist.NumOfEndPos * 2.0) ; break; case 3://ROOK BlackEvaluationValue += (500 + (double)Movelist.NumOfEndPos * 1.5) ; break; case 4://Knight BlackEvaluationValue += ((300 + 3.0 * (4 - m_Knight_Distance_Board[i][j]))); break; case 0://King BlackEvaluationValue += 10000 - 100*(40-m_iTurn); break; case 1://Queen BlackEvaluationValue +=(900 + (double)Movelist.NumOfEndPos * 1.0) ; break; Som det kan ses har alle brikkerne et materalistisk værdi. Og så er der forskellige andre faktorer der spiller ind. F.eks. for tårnet, løberen og dronningen giver vi ekstra poeng for hvert felt de kan dække. Ridderen for ekstra for at være tæt på midten. For bønderne har vi hardkodet nogle værdiger ind. Der giver vi f.eks. ekstra for at starte med at rykke to frem. Kongen er meget meget simpel. Hann starter med at have en værdig på 10000, og får så mindre og mindre score, jo flere træk der bliver lavet. Desse værdiger vi bruger fik vi udleveret i en node fra en lektor på skolen. Vi har så nogle ekstra ting med, f.eks straffer vi det at være truet af modstanderens prikker. Gui'en er blevet lavet i C++/MFC. Alt andet er blevet lavet i C++.
--
Cpu Barton 2500+ Ram 512 mb DDR Pc 3200 Grafikkort Gforce FX5900XT 2 X 180 IBM + 160Gb Maxtor, 8mb cache Bundkort AsRock K7S8X rev.3
#8
N´far
Gæst
08-06-2005 19:40

Rapporter til Admin
Fejl med tårnene... spillede lige 5 sorte mod 3 hvide tårne...
--
Gæstebruger, opret dit eget login og få din egen signatur.
#9
Rogn
Bruger Aspirant
08-06-2005 19:48

Rapporter til Admin
#8 Det lyder da for mærkeligt, har ikke selv oplevet det. Var det i nogen særlig position?
--
Cpu Barton 2500+ Ram 512 mb DDR Pc 3200 Grafikkort Gforce FX5900XT 2 X 180 IBM + 160Gb Maxtor, 8mb cache Bundkort AsRock K7S8X rev.3
#10
Najdorf
Bruger
09-06-2005 00:26

Rapporter til Admin
Jeg har ikke fundet flere fejl. Hvorfor falder kongens værdi, jo flere træk der bliver spillet? I har allerede lidt skakviden i programmet når en briks værdi afhænger af, hvor på brættet den står; det er glimrende. Jeg synes de første 4-5 træk er programmets svaghed, en lille åbningsbog villle hjælpe meget. Men hvis I ikke har den store skakviden, vil det næppe være sjovt for jeg at prøve at bygge en op fra bunden. Det skal være op til jer. Et par fikse detaljer jeg lige kom i tanke om: Det kunne være smart at man kunne vende brættet grafisk, hvis man nu fik lyst til at spille sort. Desuden kunne en trækliste over hele partiet være mere sjovt, i sær hvis det er i et vindue man kunne copy-paste fra. Jeg kan klart anbefale det simple simpel og kendte tekst baserede pgn-format. Jesper
--
#11
deo
Gæst
09-06-2005 00:30

Rapporter til Admin
#0 Computeren tænker lidt for meget :P
--
Gæstebruger, opret dit eget login og få din egen signatur.
#12
??
Monster Supporter
11-06-2005 13:18

Rapporter til Admin
#6, bare fordi du ikke kan spille siceliansk mod c3 ;) har ikke prøvet spillet endnu, ubuntu er ikke helt glad for .rar :/
--
Q. How many mathematicians does it take to change a lightbulb? A. 1, he gives the lightbulb to 3 engineers, thus reducing the problem to a previously solved joke.

Opret svar til indlægget: Afprøvning af "midt" skak program...

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning