============================================================================= MDJBACKGAMMON ============================================================================= "Åhh nej, ikke endnu et backgammonspil..." Jo! Jeg havde længe savnet et ordentligt backgammonspil til computeren, som spillede godt, som ikke krævede det helt store af grafikken, som var mere betjeningsvenligt end bare musestyret, og som ikke kostede en bondegård! Jeg fandt nogle stykker på Internettet, men jeg var ikke tilfreds med den grafiske fremtoning på nogle af dem, 3D kan se meget godt ud, men til at skaffe sig et overblik over en indviklet stilling, er det ikke meget bevendt. Jeg var heller ikke tilfreds med styringen af nogle af dem. Primært mus! Og spillestyrke. Jeg er ikke nogen habil backgammonspiller, så jeg kunne måske sagtens nøjes med "middelmådig spillestyrke", men det er jo helt klart, at de neurale netværk udgør de langt stærkeste spil, og de programmer med neurale netværk, der er på markedet er ganske dyre, måske fordi det ikke er alle og enhver, der kan finde ud af at kode sådan noget. Da jeg gik på universitet og læste datalogi, tog jeg nogle grundkurser i neurale netværk, og jeg havde længe haft lyst til at bruge det til noget, og backgammon er mere eller mindre ideelt til at implementere med et neuralt netværk. Jeg fandt på Internettet en artikel om IBM's svar på lige præcis denne opgave, og de kunne fortælle, hvordan deres program var blevet til formentligt verdens bedste, hvordan det (næsten) spillede lige op med de bedste mennesker i verden, og hvordan det havde påpeget mindre fejl i tekstbogsanalyserne af nogle ganske bestemte stillinger. Programmet havde simpelthen stædigt holdt på, at man skulle trække sådan og ikke sådan, og havde kunnet understøtte det med "roll outs", dvs. en statistisk analyse over tusindvis af spil ud fra den givne situation, der viste, at den ene strategi faktisk gav et bedre udbytte end den anden. IBM's forsker, forfatteren til artiklen, beskrev ligeledes lidt mere i detaljer, nogle af principperne for træningen af det neurale netværk, programmet benyttede. Interesserede kan finde artiklen på , ligesom jeg kan anbefale . Jeg havde allerede udtænkt nogle af mine egne ideer til at opbygge et neuralt netværk, og selvom den gennemgående nyhed i IBM's forskning umiddelbart lød tillokkende, brugte jeg ikke straks princippet i mit eget program. Men nu, hvor jeg har haft mulighed for at sammenligne metoderne, har TD ("Time Difference" fundet på af IBM) bevist sig en anelse bedre, så nu benytter mit program også denne metode under træningen. Det er dog alligevel fortrinsvist mine egne ideer, som programmet er bygget op ad, og hvis det på et tidspunkt kan skabe sig et navn, der nævnes sammen med de andre "store" programmer, så vil jeg være meget tilfreds. Det neurale netværk, der implementerer evalueringsfunktionen, er endnu ikke fuldt optrænet i denne udgave af MDJBackGammon. I takt med, at optræningen fuldendes vil der blive releaset nyere versioner, som også vil indeholde flere og flere funktioner. Og så til det kedelige: Jeg forbeholder mig enhver ret til programmet MDJBackGammon (c) 1997-99. Programmet må ikke kopieres eller benyttes i nogen henseende uden min tilladelse. Den licens til brug af programmet, som du køber, giver dig ret til at installere programmet på dine EGNE PC'ere til EGET brug. Filen med licens- information, som følger med programmet, MDJLICEN.BIN, må således IKKE kopieres til andre PC'ere eller brugere, sælges, udlejes eller bortgives, og filen må heller ikke ændres. Sker dette forbeholder jeg mig retten til i fremtidige versioner at indbygge en spærring mod den pågældende licens, så den ikke længere er gyldig, ligesom anmeldelse for overtrædelse af ophavsretsloven kan komme på tale. Licensen giver heller ikke ret til at lade MDJBackGammon deltage i turneringer, præmiegivende eller ej, uden min tilladelse. Din licens giver dig ret til at bruge fremtidige revisioner af programmet, uden andet vederlag end eventuelle administrationsomkostninger ved opgradering, dog forbeholder jeg mig retten til at forlange en opgraderingspris ved større ændringer i programmet. Jeg fralægger mig ethvert ansvar med hensyn til programmets anvendelighed til en given opgave, og på et givet udstyr. Programmet er købt ubeset, og kan ikke forlanges returneret. (Instruktioner om hvordan man køber programmet gives i bunden af denne fil.) Nu da den del er overstået, så må jeg nok hellere sige, at i virkeligheden er jeg selvfølgelig meget interesseret i, at programmet kan anvendes så vidt som det er muligt. Hvis du finder fejl eller mangler i det, eller har nogle gode ideer til forbedringer eller ændringer, så vil jeg meget gerne høre fra dig. Jeg vil selvfølgelig rette eventuelle fejl så hurtigt som muligt, og i det hele taget gøre hvad jeg kan, for at ingen skal fortryde, at de har købt mit program. Derfor har jeg da også lavet en gratis demo-version af programmet, som viser det basale i programmet, men som ikke tilbyder nogle af de avancerede funktioner, og som heller ikke sikrer, at ethvert spil kan spilles til ende. Denne demo-version kan frit distribueres, sammen med denne readmedk.txt fil. Installering ============ Indhold på disketten: MDJBG.EXE MDJBackGammon MDJLICEN.BIN Licens filen, som indeholder dit navn og licensnummeret MDJBGDMO.EXE Demo-version af programmet README.TXT Denne fil Programmet er blot en enkeltstående exe-fil, mdjbg.exe, samt en fil, der indeholder licensinformation, mdjlicen.bin. Læg disse i et katalog, og lav et "shortcut" til mdjbg.exe i Windows. Programmet kører under Windows 95/98, NT og Windows 2000. Der vil muligvis på et senere tidspunkt følge et installationsprogram med. Derudover findes der en fil, der hedder mdjbgdmo.exe, som er demo-versionen af programmet. Denne fil kan du frit give til venner og bekendte, som kunne være interessede i at købe programmet, men først vil se, hvordan programmet ser ud. Demo-versionen er begrænset på den måde, at den ikke altid spiller spillet til ende, dobbeltblokken kan kun bruges een gang i hvert spil, man kan ikke manuelt sætte en stilling op, man kan ikke gemme og hente stillinger, grænsen for antallet af "roll-outs" er 2, ikke 10000, og den laver ikke en log fil over de spillede spil. Hvad angår spillestyrke, er den dog ikke begrænset i forhold til den fulde version. Manual ====== Dette afsnit giver en kort beskrivelse af programmets virkemåde. Jeg håber, at alle vil finde programmet simpelt at bruge og let at forstå. Skærmen: Programmet består af et enkelt skærmbillede med en række elementer: - Selve brættet, med en bar i midten. Brættet er mærket med nummerering af spidserne samt bogstaver, der angiver hvilke taster, der aktiverer hvilke spidser. - Dobbeltblokken, som befinder sig til højre enten i midten (1), eller øverst eller nederst (2,4,8,...,512) afhængigt af, hvem der ejer blokken. De mulige tal på blokken overskrider de grænser, der gives af en "rigtig" dobbeltblok, men der skulle ikke være noget at være i tvivl om her. Af praktiske hensyn er 512 den højest mulige værdi. - Boksene, til højre, de to "kasser", som brikkerne stables i, når de er båret af. Her står brikkerne på "højkant". - PIP-værdien, som vises for begge spillere i feltet til højre, viser hvor mange øjne, spillerne mangler i at gøre sig færdig. - "Turindikatoren", en lille rød eller hvid prik til højre for brættet, der viser, hvis tur det er. - Matchinformation, til højre hvis du har valgt at spille uendelig match, - Informationslinien nederst i billedet. Viser løbende vejledning om spillets status. Der er fem menupunkter, hver med flere underpunkter: File Load Position Bruges til at hente et tidligere gemt spil Save Position Bruges til at gemme et spil under hentet navn Save Position As Bruges til at gemme et spil under nyt navn Load Match Henter en gemt match Save Match Gem match stillingen samt det aktuelle bræt Save Match As Gem match stillingen under nyt navn Exit Afslutter programmet Match No Match Normalt spil, ingen resultatopsamling Continued Match "Uendelig" match, resultat gemmes fra gang til gang Reset Continued Match Hvis du vil begynde forfra Normal Match Spil en match til et givet antal points Edit Match For at ændre på stilling og matchkarakteristika Game New Game Starter et ny spil Abort Game Stopper et spil Offer Double Vælges, hvis du vil tilbyde programmet en dobling Move Back Flyt senest flyttede brik tilbage (i samme træk) 1) Undo Move Gå et træk tilbage 1) Redo Move Gå et træk frem 2) Undo Dice Fjern terningerne fra brættet Move Now Tving programmet til at trække straks 3) Roll Out Analyser en stilling ved hjælp af "roll outs" Setup Setup Board Gå i setup mode, for at konstruere en stilling Continue Game Fortsæt spillet fra den øjeblikkelig stilling Shift Turn Flyt turen mellem spillerne Turn Board Byt side og farve Start Position Sæt brikkerne i start positionen Clear Board Flyt alle brikkerne fra brættet til boksene Level Undermenu til at vælge spillestyrke Options Generelle indstillinger 4) Help Possible Moves Viser en liste over mulige træk for dette slag 5) About Viser generel information om programmet 1) Det er kun muligt at gå et træk tilbage inden terningerne kastes eller umiddelbart efter at terningerne er kastet, inden brikkerne rykkes. Når et træk tages tilbage, tages terningerne IKKE tilbage. Spillet kan således sættes i gang igen med det samme slag, men med en ny strategi for at trække. Undo Dice vil tage terningerne tilbage. Hvis man er igang med at flytte brikker under sit træk, kan man fortryde sine flyt under trækket med Move Back (det samme som at trykke på Del, se senere). 2) Et træk kan kun gentages umiddelbart efter at et træk er taget tilbage. Når trækket gentages, kastes terningerne IKKE til det efterfølgende træk. 3) Programmet kan afhængigt af PC-type, men også afhængigt af slag og stilling, være kortere eller længere tid om at bestemme sig for et træk. Hvis man "mister tålmodigheden", kan programmet tvinges til straks at flytte det indtil nu bedste træk, det har fundet. Bemærk at dette næsten sikkert vil påvirke programmets spillestyrke i negativ retning. 4) Blandt generelle indstiller er det muligt at beslutte om: - Terningerne kastes tilfældigt eller "manuelt". Hvis manuelt vælges, vil spilleren for hvert slag blive spurgt om værdien af terningerne, dog med et tilfældigt forslag. - Hjemlandene skal være til højre eller venstre. - Dobbeltblokken skal bruges eller ej. - "Bare vind"-strategien skal benyttes (se afsnittet om Equitites). - De spillede spil skal udskrives i en fil, "bg.log", eller ej. Dialogen til at bestemme indstillingerne giver også mulighed for at gemme indstillingerne (i filen mdjbg.ini i Windows kataloget), samt at finde tilbage til disse igen. Hvis filen mdjbg.ini slettes helt, vil programmet bruge sine egne indstillinger, som det er tilfældet første gang man bruger programmet. 5) Listen består af et løbenummer, equity i parentes (gennemsnitligt antal points, man vil score med dette træk, evalueret af Advanced niveauet), og endelig selve trækket. Listen er fri for redundante træk, dvs. at to "forskellige" træk, som har den samme nettoeffekt IKKE begge vil findes i listen. Skulle du finde et eksempel på to træk, som virkelig er "identiske", eller et træk, som mangler i listen, så vil jeg MEGET gerne høre om det eksempel! Spillet: Spillestyrken vælges ved at bruge undermenuen Level i Setup menuen. Expert niveauet bruger noget længere tid til at tænke, mens Advanced niveauet trækker hurtigt. Når et spil er sat i gang med New Game, bliver brikkerne sat på plads, og man skal nu trykke Enter (eller klikke med musen midt på den grønne spille- plade), hvorefter terningerne bliver kastet, een på hver side, og den største terning afgør, hvem der skal starte. Du er altid hvid, og computeren er altid rød. Når det er computerens tur, vil der være en lille rød prik til højre for brættet, og dens træk vil blive vist ved, at brikkerne blinker et par gange når de flyttes. Hvis du er utålmodig og trykker Enter eller klikker med musen for at kaste terningerne, vælger et menupunkt eller blot trykker på mellemrum, så vil programmet dog straks flytte brikkerne til deres destinationer, og derved afslutte computerens træk. Når det er din tur, er der en lille hvid prik til højre for brættet. Terningerne kastes igen med Enter eller klik på terningerne. En brik rykkes ved at klikke på den, eller ved at taste bogstavet ud for spidsen. Brikken bliver markeret (sortrandet), og kan nu flyttes ved at trykke på en anden spids, eller taste spidsens bogstav. Når trækket er fuldført, trykkes der igen Enter eller klikkes på terningerne, og turen går over til computeren. Hvis du fortryder at have markeret en brik, kan den "afmarkeres" ved at vælge den samme brik/spids igen. Bemærk, at dit gærde er 'Z', og brikker bæres af med 'A'. Også her virker det med et museklik. Der er lavet en lang række faciliteter til at gøre det nemt at rykke: DEL: Hvis du trykker på Del, tages dit igangværende træk tilbage punkt for punkt, indtil udgangspositionen opnås. Dette kan gøres inden du har trykket Enter for at afslutte trækket. BACKSPACE: tager hele trækket tilbage på een gang. Dette skal ligeledes gøres inden der trykkes Enter for at afslutte trækket. 1,2,3,4,5,6: Hvis du har en brik på gærdet, kan du hurtigt tage den i spil ved at trykke tallet for den terning du bruger, f.eks. '4' i stedet for 'Z'+'V'. Ligeledes kan du hvis du er i gang med at bære af, hurtigt bære af med nummeret på den spids, brikken kommer fra, f.eks. '3' i stedet for 'D'+'A'. 1,2,3 (under opsætning af stilling): Hvis du er ved at sætte en stilling op, vil et klik på dobbeltblokken doble dennes værdi, et klik på pladsen for dobbeltblokken for den anden spiller vil flytte dobbeltblokken derover, og et klik på pladsen for den neutrale dobbeltblok vil flytte den til midten af brættet og sætte værdien til 1. Det samme kan opnås med 1,2,3 tasterne: 1 flytter til midten og sætter værdien til 1, 2 dobler værdien, og 3 skifter dobbeltblokken til den anden side. MELLEMRUM: Når du har markeret, hvilken brik du vil rykke, og der derefter ikke længere er tvivl om, hvor den skal rykkes hen (f.eks. hvis du allerede har rykket den ene terning, eller hvis kun en terning er mulig), så vil Mellemrum gøre trækket færdigt. Dette er især hurtigt ved dobbeltslag, hvor der jo aldrig er tvivl om, hvor en brik skal flyttes hen. TAB: Når en brik er markeret til at rykke, vil Tab flytte brikken efter så mange terninger som muligt, hvis dette er entydigt. (Se 2-/3-/4-dobbelt træk.) 9: Hvis du er igang med at sætte en stilling op, er der jo to gærder at vælge fra, så her er '9' det fjendtlige gærde. 0: Hvis du er igang med at sætte en stilling op, er der to bokse at bære af til, så her er '0' den fjendtlige boks. 2-/3-/4-dobbelt træk: Hvis du vil rykke den samme brik 2, 3 eller 4 gange i det samme slag, er det nok at markere brikken, og angive den endelige destination. Bemærk dog, at der (for 2 forskellige terninger) kan være tvivl om, hvilken rute der skal tages på vejen. Hvis begge ruter har samme resultat vælges blot en af dem, men hvis den ene eller begge af ruterne tager en fjendtlig brik til fange på vejen, er dette IKKE muligt. Du er da nødt til at udføre trækket normalt dvs. i to omgange. Bemærk, at det med ovenstående er muligt at: - bære en brik på 'E' af med 'E'-'A' eller '4', selvom du har slået 3,1. Er brikken f.eks. den sidste, kan den tages af på samme måde, også selvom du måske har slået 6,2. (Bemærk: Denne vindersituation er i øvrigt den ENESTE situation i backgammon, hvor det er tilladt at flytte efter en enkelt terning, selvom det ER muligt at benytte dem begge!) - Med f.eks. slaget 6,4 kan du tage en brik i spil med 'Z'-'P', eller med f.eks. 4,2 kan du tage en brik i spil med '6' (begge under forudsætning af naturligvis, at spidserne er frie, og der ikke er flere brikker på gærdet.) - Hvis den sidste brik, der er uden for eget hjemland, flytter ind i hjemlandet og bæres af i samme træk er det stadig muligt at gøre det i eet flyt. I det ekstreme tilfælde med 6,6 kan der flyttes 'Y'-'A'. Generelt gælder det altså, at flyt, der enten frigiver brikker eller bærer brikker af, uden begrænsninger kan kombineres med andre flyt, hvis det er den samme brik, der flytter. Bemærk også, at cifre altid er bundet til den spids brikken står på, og altså ikke nødvendigvis terningens øjne. Programmet vil aldrig tillade dig at flytte noget ulovligt! Tilfælde, hvor programmet tillader noget ulovligt, ikke tillader noget lovligt, eller ikke vil "hjælpe" ved mellemrum, når der ikke er noget at være i tvivl om, vil jeg MEGET gerne have rapporteret. Skriv den nøjagtige stilling op samt kastet, og lad mig se på det. Forslag til forbedringer og andre genveje er også velkomne, sammen med generel kritik og klager over brugerinterfacet. Med hensyn til programmets spillestyrke, vil jeg henvise til, at det fortsat er under træning. Forhåbentligt vil programmet fortsat blive bedre og bedre til at spille. Spiludskrift ============ I det katalog, som programmet startes i, vil der blive udskrevet en fil, bg.log, som indeholder alle de spillede spil udskrevet med en notation, der så vidt muligt følger de internationale regler for notation. I tilfælde af, at du finder fejl i programmet, vil jeg meget gerne have en kopi af denne fil, da den kan hjælpe mig til at lokalisere fejlen. Bemærk, at bg.log aldrig slettes af programmet selv, det må du selv gøre, når filen bliver for stor. Filen skrives kun, hvis dette er valgt i "Options" dialogen. Match ===== Hvis man vælger Continued i menuen Match, vil programmet summere resultaterne og vise stillingen i højre side. Resultatet huskes fra gang til gang programmet startes, og matchen fortsætter således i det uendelige. Man skal dog hver gang huske at vælge Continued, da No Match er standard. Bemærk, at programmet kun summerer op til 10000, derefter går pointtallet igen til 0 og fortsætter derfra. Reset Match i menuen Match nulstiller stillingen. Man kan også vælge Normal Match, hvorefter programmet vil spørge om den grænse, man vil spille til. Derefter spiller man bare som sædvanligt, og man kan igen følge med i stillingen i højre side. Hvis man vil stoppe en match, skal man manuel gemme den, hvis man vil kunne fortsætte senere, hvor man stoppede. Roll Out ======== Vælger man Roll Out i Game menuen, vil man blive præsenteret for en dialog, hvor man kan specificere det antal gange, situationen skal spilles til ende. Grænsen er 10000. Derudover kan man specificere, om terningerne for det første kast i hvert spil skal kastes hver gang, eller om man vil specificere terningerne en gang for alle, eller, hvis terningerne allerede er kastet, om terningerne på brættet skal benyttes. Mens situationen spilles til ende det angivne antal gange, vises en dialog, som viser hvor langt analysen er nået. Man har her mulighed for at afbryde analysen, eller stoppe den, hvor den er, og få resultatet baseret på de spil, som er færdigspillet på det tidspunkt. Når resultatet præsenteres, vises procentdelen af de forskellige mulige resultater, samt den gennemsnitlige gevinst, som spilleren kan forvente i den pågældende stilling. Roll out analyse benytter ikke dobbelt blokken. Under Roll Out spiller programmet på niveauet "Advanved". Equities ======== Begrebet "equity" bruges i vid udstrækning i backgammon, og er kort sagt det gennemsnitlige resultat af et træk eller en stilling uden brug af dobbeltblokken. En kort forklaring på virkemåden af et backgammonspillende program er; beregn equities for hvert af de mulige træk, og vælg det træk, der har den største equity! Dobbeltblokken behandles endnu simplere: Før terningerne kastes beregen equity for stillingen, og hvis den er inden for nogle bestemte grænser tilbydes en dobling, tilsvarende for beslutninger om at tage imod/droppe. Med "Possible Moves" funktionen er det muligt at "snyde" lidt ved at få computeren til at hjælpe med at beregne equities. MDJBackGammon bruger "Advanced" niveauet til at beregne equities i listen, ikke "Expert" fordi det ville tage for lang tid at generere listen. Derfor kan man opleve, at expert-niveauet vælger et andet træk end det, der har den højeste equity i listen, simpelthen fordi den baserer sin beslutning på flere beregninger end advanced-niveauet. Det er forskellen mellem advanced og expert. En vigtig ting omkring equitites: En equity er beregned som et vægtet gennemsnit af de seks forskellige resultater af et spil. I en matchsituation kan resultatet være større end det spilleren behøver for at vinde matchen, dvs. den reele værdi er mindre end sædvanligt. For eksempel, med 3 points tilbage og dobbeltblokken på 2, er en gammon ikke 4 (2) points værd, men kun 3 (1.5) points, eller med 1 point tilbage of dobbeltblokken på 4, er en sejr ikke 4 (1) points værd, men kun 1 (0.25) points. I sådanne tilfælde vægtes gennemsnittet efter disse korrigerede værdier, og derfor kan et træk have forskellig equity i en match og i et enkelt spil eller uendelig match ("money game"). Det er således også muligt at se, at programmet trækker forskelligt i den samme position, afhængigt af den kontekst spillet forekommer i. Så for at beregne equities generelt, vær sikker på, at du er i et enkelt spil, ikke i en match. Fordi værdierne i listen er genereret af det neurale netværk, kan værdierne forekomme upræcise for simple situationer. For eksempel i en position, hvor du er sikker på at vinde, men gammon er udelukket, er equity helt klart 1.000, men fordi det neurale netværk ikke arbejder med en præcis spilletræsanalyse, kan equity vise sig som 0.995, eller en anden værdi tæt på 1.000. For ekstreme positioner, der aldrig forekommer i virkelige spil, kan værdien variere endnu mere fra sandheden. I Options dialogen er der en setting, der hedder "Just try to win". Når dette er valgt vil det vægtede gennemsnit ikke være vægtet med hensyn til chancer for gammon og backgammon, programmet vælger simpelthen det træk, der giver den største chance for at vinde, selvom et andet træk måske har en større equity på grund af en større chance for gammon eller backgammon. Denne måde at spille på giver selvfølgelig ingen mening i matchspil, og hvis denne setting er valgt, har det kun indflydelse på strategien for enkeltstående spil (hvad jeg kalder et hvem-skal-vaske-op-spil). Generelt vil programmet som regel spille det samme træk i den samme situation for alle forskellige spiltyper, men en gang imellem VIL den spille anderledes, grundet alle disse faktorers indflydelse på equityberegningen. Så bliv ikke overrasket, hvis du ser et eksempel på dette - det er bare programmet, der gør sit bedste for at tilpasse sig situationen, match eller money game - og forvent ikke, at det tager din opvask frivilligt! Fremtidige udbygninger ====================== Jeg har en masse ideer til forbedringer af programmet, og de vil blive implementeret lidt efter lidt, og udgivet sammen med bedre trænede versioner af programmet. Disse udgivelser vil fortrinsvist blive gratis for registrerede brugere. Nogle af de ideer, jeg har er (nogle er mere vigtige end andre): - Mulighed for selv at vælge farver - Mulighed for at få en udskrift på skærmen af det igangværende spil, eller en del af spillet - Programmet "kommenterer" dit spil - Mulighed for at "indtaste" et spil og lade programmet analysere det - Oversættelse af spillet til forskellige sprog - En manual skrevet som et Windows hjælpeprogram Jeg håber, at programmet er brugbart, selvom alle disse ideer endnu ikke er blevet til virkelighed. Rigtig god fornøjelse! Morten Due Jørgensen Skyttevej 5 3450 Allerød 48 14 55 18 e-mail: miraculix(a)mobilixnet(.)dk www: http://www.miraculix.mobilixnet.dk Min e-mail adresse er skrevet som den er for at narre spammernes "indsamlingsrobotter", jeg håber, at du stadig kan finde ud af den. Bestilling af MDJBackGammon =========================== Programmet koster DKr 300.- i Danmark, i udlandet US$45 eller det ækvivalente i lokal valuta. Pengene sendes til mig (adressen oven for) i form af check eller kontanter. Fra udlandet modtages indtil videre kun kontanter. Hvis du vil gardere dig mod, at din betaling går tabt i posten (det ER meget usandsynligt) kan du sende din betaling anbefalet. Husk at skrive det navn, som licensen skal laves til, og den adresse, som den skal sendes til. Jeg vil så sende dig en diskette med den seneste version af programmet, samt din licensfil. Ved betaling for programmet accepterer du samtidigt at respektere copyright på programmet samt de regler for brug af programmet, som er beskrevet tidligere i denne fil. HUSK at passe godt på disketten med licensfilen! Bliver den væk, eller bliver den stjålet, så sig det straks til mig, så vil jeg låse licensen ude fra fremtidige versioner, og sende dig en ny. Dette koster kun DKr 15.- (US$3). Det samme koster tilsendelse af nye versioner. Når du bestiller, må du gerne skrive, om du ville være interesseret i en dansk version af programmet (eller andet sprog). Alt efter den viste interesse for dette, kan jeg opprioritere punktet. Fremtidige versioner kan hentes via Internettet på ovenstående adresser, sammen med generel information.