Anonymní profil Kuba – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Kuba – Programujte.comAnonymní profil Kuba – Programujte.com

 

Příspěvky odeslané z IP adresy 85.207.214.–

Kuba
C / C++ › Generování tahů
24. 8. 2013   #180798

#8 vitamin
aha, děkuji :)

Kuba
C / C++ › Generování tahů
24. 8. 2013   #180793

ahoj, díky za rady, tak jsem to nakonec nějak dokázal :), ještě ale mám jednu takovou otázečku, nevíte někdo jak udětal sort na tomto:

list<list<Move> >   - seznam všech skoků, potřeboval bych to setřídit podle počtu tahů v seznamech uvnitř hlavního seznamu

Kuba
C / C++ › Generování tahů
23. 8. 2013   #180764

tady je kousek kódu:

for(int k = i + 1, l = j + 1; k < 10 && l < 10; k++, l++)
	{
		if(board[k][l] == piece*player || board[k][l] == queen*player)
			break;
		if(board[k][l] == _empty && !m.overC)
			continue;
		if((board[k][l] == -(piece*player) || board[k][l] == -(queen*player)) && !m.overC)
		{
			m.overC = Coords(k, l);
			m.origOver = board[k][l];
			m.newOver = _empty;
			m.value = m.origOver;
		}
		if(board[k][l] == _empty && !(!m.overC))
		{
			m.newC = Coords(k, l);
			m.origNew = _empty;
			m.newNew = queen*player;

			jumps = moveGenerator::jumpsQueens(player, Coords(k, l), board);
			jumps.push_front(m);
			return jumps;
		}			
	}

a takhle vlastně projdu všechny směry (obdobně), problém je v tom return, budu muset nějak projít až na konec, myslíte že by pomohlo vyhodit to až za ten vnější if?

Kuba
C / C++ › Generování tahů
23. 8. 2013   #180761

#2 liborb
Obyčejné posouvání po desce jsem už dodělal :), ale u skákání jsem se zase zasekl, hodnocení tahů si pro každý skok ukládám do struktury tahu a pak si to sečtu, když je tah vícenásobný (aspoň to tak dělám u obyčejných figurek).

Když jsem to napsal tak aby se mi negenerovali vícenásobné tahy tak mi to funguje, ale když jsem to začal přepisovat na rekurzi tak se mi správně vygeneruje první skok, ale figurka jakoby dopadne hned za nepřítele atd. a pak se rekurze samozřejmě ukončí, ale nedaří se mi to napsat tak aby se prošlo např. až na konec diagonály.

Kuba
C / C++ › Generování tahů
23. 8. 2013   #180753

Ahoj, mohly by mi někdo poradit jak by se daly elegantně vygenerovat všechny možné skoky v dámě pro povýšené kameny? mám už skoky pro obyčejné kameny, ale u povýšených pořád tápu, zkoušel jsem to rekurzí, ale nikdy mi to nevygenerovalo všechny (třeba když v pravidlech je že dáma může doskočit libovolně daleko za soupeřovy figurku, tak mě se podařilo vygenerovat jen když dopadne hned za soupeřovu figurku).

Později vložím i kód co mě už napadlo

Díky

PS jedná se o frískou dámu

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý