Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 02. 12. 2010 20:27

f@tom47
Zelenáč
Příspěvky: 8
Reputace:   
 

C# - Problém osmi dam

Zdravím,
nemáte někdo náhodou vyřešen v jazyku C# problém osmi dam (Cílem je umístit na šachovnici o rozměrech 8x8 polí 8 dam tak, aby se žádné dvě z nich neohrožovaly. Dáma je šachová figura, která může táhnout libovolný počet polí horizontálně, vertikálně nebo diagonálně. Řešením je tedy takové rozmístění figur, kdy žádné dvě nestojí na témž řádku, sloupci nebo na téže diagonále.)? Já si s tím nějak nevím rady...
Děkuji

Offline

  • (téma jako vyřešené označil(a) gladiator01)

#2 02. 12. 2010 20:40

vojta01
Příspěvky: 63
Reputace:   
 

Re: C# - Problém osmi dam

Ahoj, problém vyřešen v knížce Algoritmy v jazyku C a C++ na straně 107.

Offline

 

#3 02. 12. 2010 20:55

f@tom47
Zelenáč
Příspěvky: 8
Reputace:   
 

Re: C# - Problém osmi dam

↑ vojta01:
V knížce na C a C++ je zdroják v C#??
BTW: Neznáš autora a zda-li to někde seženu v elektronické pododbě?

Offline

 

#4 02. 12. 2010 22:34 — Editoval gladiator01 (02. 12. 2010 22:34)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: C# - Problém osmi dam

↑ f@tom47:
Ne je to samozřejmě v C-čku. Ale určitě to jednoduše předěláš je to podobné. Můžu ti sem dát kód a zítra večer i text k tomu (teď  tu knihu nemam u sebe).

http://www.grada.cz/algoritmy-v-jazyku- … p;pro=4075


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#5 02. 12. 2010 22:41

f@tom47
Zelenáč
Příspěvky: 8
Reputace:   
 

Re: C# - Problém osmi dam

↑ gladiator01:
Když to sem teda zítra dáš, budu rád :-)
BTW: Komentáře nejsou na škodu.

Offline

 

#6 03. 12. 2010 18:51 — Editoval gladiator01 (03. 12. 2010 18:55)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: C# - Problém osmi dam

↑ f@tom47:

Code:

/* OsmDam.c */
/* 8 vzajemne se neohrozujicich dam na sachovnici        */
#include <stdio.h>
#include <conio.h>      
int i,k;
static int a[8];
static int b[15];
static int c[15];
int x[8];
void Zkus(int i)
{
    int j;
    for(j=0;j<8;j++)
    {
        if (a[j] && b[i+j] && c[i-j+7])
        {
            x[i]=j;      
            a[j]=0; b[i+j]=0; c[i-j+7]=0;
            if (i<7)
                Zkus(i+1);
            else
            {    /* tisk */
                for(k=0;k<8;k++)
                    printf("%d ",x[k]);
                printf("Stiskni lib.klavesu...\n");
                getch();        
            }
            a[j]=1; b[i+j]=1; c[i-j+7]=1;
        }
    }
}
int main()
{
    for(i=0;i<8;i++)
        a[i]=1;
    for(i=0;i<15;i++)
    {
        b[i]=1; c[i]=1;
    }
    Zkus(0);
    getch();
    return 0;
}

http://www.sdilej.eu/pics/0a5dc6e687f2e3aba7fd12af9a67725e.jpg
http://www.sdilej.eu/pics/c3cda3a0ed3c11e68e0ecf50f3be46e0.JPG


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#7 05. 12. 2010 20:10

f@tom47
Zelenáč
Příspěvky: 8
Reputace:   
 

Re: C# - Problém osmi dam

↑ gladiator01:
Jsem to přepsal, ale vypisuje to úplně něco jinýho. Jen nějaký posloupnosi čísel od 0 do 8, či co.

Offline

 

#8 05. 12. 2010 20:50 — Editoval gladiator01 (05. 12. 2010 21:03)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: C# - Problém osmi dam

↑ f@tom47:
A co by to mnělo vypisovat? To jsou jednotlivá řešení.
Kdyby jsi si přečetl ten text tak by jsi zjistil, že do pole x se ukládají čísla řádků a pořadové číslo (pozice umístění v poli) je sloupek.
V céčku je pole od 0, tedy:
1 řešení
sloupek:0 1 2 3 4 5 6 7
řádek:   0 4 7 5 2 6 1 3

Najde to 92 řešení. (z nichž některá jsou symetrická, jak se píše v tom textu)

Můžeš si to vyzkoušet zde: http://www.superhry.cz/games/242/     (0x0 je úplně vlevo nahoře - pozor na to aby jsi počítal od nuly)


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#9 06. 12. 2010 17:37

f@tom47
Zelenáč
Příspěvky: 8
Reputace:   
 

Re: C# - Problém osmi dam

↑ gladiator01:
Díky, už to dělá to, co chci :-)

Offline

 

#10 06. 12. 2010 19:42

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: C# - Problém osmi dam

Ahoj,
pokud to chceš v C#, tak tento problém je v knížce C# pro zelenáče od Miroslava Viriuse.


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson