Hra Dáma – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Hra Dáma – Java – Fórum – Programujte.comHra Dáma – Java – Fórum – Programujte.com

 

emigrate0
Duch
1. 1. 2010   #1
-
0
-

Zdravím,

Som začiatočník. Prvý semester na výške a musím odovzdať semestrálnu prácu.
Mala by to byť hra dáma. šachovnicu mám spravenú ako dvojrozmerné pole... vykreslovanie štvorcov.
Chcel by som Vás poprosiť o radu, akým spôsobom mám spraviť figurky? mam ich tiež dať do nejakeho pola? jedno pole pre biele jedno pre cierne? ako to riesit s tahmi?

Budem rád za kazdú radu. Vopred vdaka.

Nahlásit jako SPAM
IP: 78.98.135.–
liborb
~ Redaktor
+18
Guru
1. 1. 2010   #2
-
0
-

Na datovou reprezentaci hry Dáma ti stačí jedno dvojrozměrné pole. Hodnotou v jednotlivých buňkách rozlišíš, jestli je políčko prázdné nebo jestli je tam bílá/černá figurka (např. hodnoty 0, 1, 2).

Barvu políček rozlišíš podle pozice - například součet pozice řádek + sloupec je kladný pak bude pole bílé jinak černé.

Pohyby jsou potom možné pouze po diagonálách, a to na pozice, kde není žádná jiná figurka.

Nahlásit jako SPAM
IP: 195.189.143.–
d.mostek0
Návštěvník
1. 1. 2010   #3
-
0
-

Ahoj. Nedávno jsem dělal stejné téma jako semestrálku. Neni to nic moc, protože je to v podstatě můj první větší program v Javě.
Chybí tam povinné tahy (povinnost skákat) a taky tam je špatně udělaný tah dámy (udělal jsem to tak, že dámou můžeš skočit kamkoliv za přeskakovaný kámen. Správně by jsi měl hned za něj). A taky tam nemam dobře udělaný načítání obrázků, protože sem nevěděl, jak je načítat, když jsou uvnitř toho jar balíčku, takže se to musí spouštět z Netbeans, aby byli vidět obrázky.

Jak říkám nic moc, ale snad ti to pomůže.
http://public.dominik-mostek.cz/D%c3%a1ma%20v.2.tar.gz

Nahlásit jako SPAM
IP: 88.146.211.–
www.dominik-mostek.cz
emigrate0
Duch
1. 1. 2010   #4
-
0
-

To liborb : myslis, ze pokial ma pole rovnake suradnice ako biely kamen, bude hodnota 1, ak ma rovnake suradnice ako hnedy kamen, bude hodnota 2? podla tych suradnic to nejak porovnavat?

To d.mostek : prepáč, ale nejde mi to otvoriť... vlastne skor asi neviem ako...


Obom vám ďakujem za pomoc

Nahlásit jako SPAM
IP: 78.98.135.–
d.mostek0
Návštěvník
1. 1. 2010   #5
-
0
-
Nahlásit jako SPAM
IP: 88.146.211.–
www.dominik-mostek.cz
emigrate0
Duch
1. 1. 2010   #6
-
0
-

To d.mostek : BlueJ mi to neotvori?

Nahlásit jako SPAM
IP: 78.98.135.–
emigrate0
Duch
1. 1. 2010   #7
-
0
-

To d.mostek : heh už to ide :) vdaka ti moc pekne ;)

Nahlásit jako SPAM
IP: 78.98.135.–
Problem
~ Anonymní uživatel
2 příspěvky
3. 1. 2010   #8
-
0
-

Pokúšam sa to spraviť s tou hodnotou. Ale nejak som to zacyklil. Nevytvorí to inštanciu.
Pripájam celý "program". Ak by ste si niekto našli čas...

Triedy Sachovnica a Dáma su mnou vytvorene. Ostatne robil učitel.

Nahlásit jako SPAM
IP: 78.98.71.–
emigrate0
Duch
3. 1. 2010   #9
-
0
-

Pokúšam sa to spraviť s tou hodnotou. Ale nejak som to zacyklil. Nevytvorí to inštanciu.
Pripájam celý "program". Ak by ste si niekto našli čas...

Triedy Sachovnica a Dáma su mnou vytvorene. Ostatne robil učitel.

http://www.edisk.sk/stahni/19334/Dama.rar_228.32KB.html

Nahlásit jako SPAM
IP: 78.98.71.–
emigrate0
Duch
4. 1. 2010   #10
-
0
-

...uz zase otravujem

Problém: Chcem do hlavneho programu vykreslit kamen z triedy Sachovnica, ale na 44. riadku mi to vypíše:

java.lang.NullPointerException
at Dama.<init>(Dama.java:44)

neviete o čo tomu ide?




Hlavny program:



/**
* Write a description of class Dáma here.
*
* @author (M!ro)
* @version (1.0)
*/
public class Dama
{
private int aSachovnicaX;
private int aSachovnicaY;
private Sachovnica aSachovnica;
private String aPrvyHrac;
private String aDruhyHrac;
int[][] poleHodnot;

public Dama(String menoPrveho, String menoDruheho)
{
aSachovnicaX = 8;
aSachovnicaY = 8;
poleHodnot = new int[8][8];
for (int i = 0; i < aSachovnicaX - 1; i++) {
for (int j = 0; j < aSachovnicaY - 1; j++){
poleHodnot[i][j] = 0;
}
}
for (int i = 0; i < aSachovnicaX - 1; i++) {
for (int j = 0; j < 2; j++) {
if (i % 2 != j % 2) {
poleHodnot[i][j] = 1;
}
}
}
for (int i = 0; i < aSachovnicaX - 1; i++) {
for (int j = aSachovnicaY - 2; j < aSachovnicaY - 1; j++) {
if (i % 2 != j % 2) {
poleHodnot[i][j] = 2;
}
}
}
for (int i = 0; i < aSachovnicaX - 1; i++) {
for (int j = 0; j < aSachovnicaY - 1; j++) {
if (poleHodnot[i][j] == 1) {
aSachovnica.kamenHnedy();
} else {
if (poleHodnot[i][j] == 2) {
aSachovnica.kamenBiely();
}
}
}
}
}
}



Sachovnica:



/**
* Write a description of class Sachovnica here.
*
* @author (M!ro)
* @version (2.0)
*/
public class Sachovnica
{
private int aSirka;
private int aVyska;
private Kruh aKamen;

/**
* Vytvorí šachovnicu pre hru Dama.
*/
public Sachovnica(int sirka, int vyska)
{
aSirka = sirka;
aVyska = vyska;
Obdlznik obrys;
obrys = new Obdlznik();
obrys.zmenFarbu("black");
obrys.zmenStrany( (aSirka*60+20) , (aVyska*60+20) );
obrys.zobraz();
obrys = new Obdlznik();
obrys.zmenFarbu("white");
obrys.posunVodorovne(5);
obrys.posunZvisle(5);
obrys.zmenStrany( (aSirka*60+10) , (aVyska*60+10) );
obrys.zobraz();
obrys = new Obdlznik();
obrys.zmenFarbu("black");
obrys.posunVodorovne(9);
obrys.posunZvisle(9);
obrys.zmenStrany( (aSirka*60+2) , (aVyska*60+2) );
obrys.zobraz();
for(int i = 0; i < aSirka; i++) {
for (int j = 0; j < aVyska; j++) {
Stvorec stvorcek = new Stvorec();
stvorcek.posunVodorovne(60*i);
stvorcek.posunZvisle(60*j);
if(j%2 != i%2){
stvorcek.zmenFarbu("black");
} else {
stvorcek.zmenFarbu("white");
}
stvorcek.zobraz();
}
}
}

public void kamenHnedy()
{
aKamen = new Kruh();
aKamen.zmenPriemer(50);
aKamen.zmenFarbu("brown");
aKamen.posunZvisle(-10);
aKamen.posunVodorovne(-10);
aKamen.posunVodorovne(60);
aKamen.zobraz();
}

public void kamenBiely()
{
aKamen = new Kruh();
aKamen.zmenPriemer(50);
aKamen.zmenFarbu("white");
aKamen.posunZvisle((aVyska - 1)*60-10);
aKamen.posunVodorovne(-10);
aKamen.posunVodorovne(60);
aKamen.zobraz();
}
}

Nahlásit jako SPAM
IP: 78.98.99.–
emigrate0
Duch
4. 1. 2010   #11
-
0
-

problém vyriešený

Nahlásit jako SPAM
IP: 78.98.99.–
Humber
~ Anonymní uživatel
1 příspěvek
8. 2. 2010   #12
-
0
-

To emigrate : A podelis sa s nami o to riesenie?

Nahlásit jako SPAM
IP: 158.193.83.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 33 hostů

Podobná vlákna

Dama — založil arny

Dáma — založil Marek Hanuš

AI u hry Dáma — založil Mutagen

Java Dama — založil Šulin Hrozný

Moderátoři diskuze

 

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