Olá galera, estou com um erro no meu codigo e nao consigo decifrá-lo,
é um jogo de Damas em JavaFX.
Alguem pode me ajudar e dar uma olhada?
Peço por favor, estou encima da data de entrega.
Ajuda com codigo de Jogo
7 Respostas
Cara,vc precisa nos dizer que erro q esta dando,mostrar o que esta ocorrendo no console,para podermos te ajudar…alias se for algum erro de linguagem msm nada que uma debugada minuciosa nao lhe mostre o que esta ocorrendo de errado…
O erro que aparece é o seguinte:
Note: C:\Users\usuario\Documents\NetBeansProjects\testarDamas\src\testardamas\Main.fx uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Uso o netBeans.
Sou iniciante em JavaFX, portanto esta dificil conseguir descobrir meu próprio erro.
pssss…axo q isso eh o teu compilador nao esta conseguindo compilar o teu codio por algum motivo,provavelmente o uso de algum metodo deprecated…acredito q pode ser isso…nao tenho certeza. :?:
Tenta o seguinte:
1-selecione seu projeto
2-Menu Arquivo->Project Properties->build(ou Construçao se seu Netbeans estive em portugues)->Compiler(Compilaçao) e em “Opçoes Adicionais do compilador:” coloque
-Xlint:unchecked ou -Xlint:Deprecation
flw 
Não existe este caminho no meu NetBeans, deve ser a versão.
Qual versão você usa cara?
Estava usando a 6.8, mas estou instalando a versão 7 porq me disseram que é melhor.
Voce chegou a compilar o codigo e ele funcionou?
Valew mwu brother!!
cara eu uso a 6.8 deveria ser igual,mas tenta selecionar o teu projeto e ir nas propriedades dele lah encontrara as configuraçoes do compilador…esse seu erro acredito que seja por estar usando uma api deprecated,algum metodo ou classe de versoes anteriores do java,por isso teu compilador alerta sobre isso…geralmente tem uma api ou outros metodos que substitui esses deprecated
flw
Valeu manu, mas agora é minha lógica que ta dificultando o algoritmo.
Cara é só um detalhe, se alguem puder me ajudar Pelo Amor de Deus!!!
Se eu não entregar amanhã funcionando perco seis meses de estudo na facul…
O código é esse:
/*
* Main.fx
*
* Created on 02/07/2011, 19:29:52
*/
package testardamas;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.paint.*;
import javafx.scene.effect.*;
import javafx.scene.effect.light.*;
import javafx.scene.shape.*;
import javafx.scene.input.*;
import javafx.ext.swing.*;
import javafx.animation.*;
import java.lang.*;
import java.util.*;
def SIZE = 90; //tamanho de uma casa
def SIZE2 = SIZE/2; //metade de uma casa
def SIZEP = 36; //raio de uma peca
def DEBUG = true;
class Peca extends CustomNode{
var x: Number;
var y: Number;
var i: Integer;
var j: Integer;
var jogador: Integer;
var jogo: Jogo;
var dama: Boolean = false;
init{
updateXY();
jogo.tabuleiro.put( IJtoIndex(i,j) , this);
}
public function podeComer():Boolean{
if(i+2 <= 7 and j+2 == 0 and j+2 == 0 and j-2 >= 0){
if(jogo.tabuleiro.containsKey(IJtoIndex(i-1,j-1))){
var peca: Peca = jogo.tabuleiro.get(IJtoIndex(i-1,j-1)) as Peca;
if(peca.jogador != this.jogador){
if(not jogo.tabuleiro.containsKey(IJtoIndex(i-2,j-2))){
return true;
}
}
}
}
if(i+2 == 0){
if(jogo.tabuleiro.containsKey(IJtoIndex(i+1,j-1))){
var peca: Peca = jogo.tabuleiro.get(IJtoIndex(i+1,j-1)) as Peca;
if(peca.jogador != this.jogador){
if(not jogo.tabuleiro.containsKey(IJtoIndex(i+2,j-2))){
return true;
}
}
}
}
return false;
}
public function IJtoIndex(i: Integer, j: Integer):Integer{
return j*8 + i;
}
public function toIJ(valor: Number):Integer{
return Math.round((valor - SIZE2) / SIZE).intValue();
}
public function toXY(valor: Integer):Number{
return valor * SIZE + SIZE2;
}
public function updateXY():Void{
x = toXY(i);
y = toXY(j);
}
public function updateIJ():Void{
jogo.tabuleiro.remove(IJtoIndex(i,j));
i = toIJ(x);
j = toIJ(y);
jogo.tabuleiro.put(IJtoIndex(i,j), this);
if((jogador == 1 and j == 7) or (jogador == 2 and j == 0)){
dama = true;
}
}
public function comer():Void{
jogo.tabuleiro.remove(IJtoIndex(i,j));
this.visible = false;
}
override function create():Node{
return Circle{
centerX: bind x centerY: bind y radius: SIZEP
opacity: bind if(jogo.jogador == jogador) 1.0 else 0.5
fill: bind RadialGradient{
centerX: 0.5 centerY: 0.5
focusX: 0.3 focusY: 0.3
radius: 0.5
proportional: true
stops:[
Stop{
offset: 0.0
color: if(jogador == 1)Color.color(1,0.8,0.8)else Color.LIGHTBLUE
}
Stop{
offset: 0.4
color: if(jogador == 1)Color.VIOLET else Color.GREEN
}
Stop{
offset: 0.8
color: if(jogador == 1)Color.DARKVIOLET else Color.DARKGREEN
}
Stop{
offset: 1.0
color: if(dama)Color.YELLOW else Color.BLACK
}
]
}
effect: DropShadow{
offsetX: 1 offsetY: 1
radius:3
spread: 0.1
}
//1 movendo
onMouseDragged: function(e: MouseEvent):Void{
if(this.jogador != jogo.jogador){
return;
}
x = e.sceneX;
y = e.sceneY;
}
//2 movendo e soltando no lugar correto
onMouseReleased: function(e: MouseEvent):Void{
if(this.jogador != jogo.jogador){
return;
}
x = e.sceneX;
y = e.sceneY;
var ii = toIJ(x);
var jj = toIJ(y);
var dx = Math.abs(ii-i);
var dy = Math.abs(jj-j);
var index = IJtoIndex(ii,jj);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if( (dx > 0 or dy > 0) and dx == dy ){//se moveu (e na diagonal)
if(DEBUG)println("moveu");
if( (ii >= 0 and jj > j) or(jogador == 2 and ii > 0 and jj<j)){// andou pra frente
if(DEBUG)println("andou pra frente");
updateIJ();
updateXY();
println(i);
println(j);
jogo.mudarJogador();
}else{//andou pra traz
if(DEBUG)println("andou pra traz");
updateXY();
}
if(dx>1){//mais que uma casa
if(DEBUG)println("mais que 1 casa");
if(dx == 2){//2 casas
if(DEBUG)println("2 casas");
var i_med = (ii+i)/2;
var j_med = (jj+j)/2;
var index_med = IJtoIndex(i_med,j_med);
if(jogo.tabuleiro.containsKey(index_med)){//pulou peça
if(DEBUG)println("pulou peça");
var peca: Peca = jogo.tabuleiro.get(index_med) as Peca;
if(peca.jogador != this.jogador){//outro jogador
if(DEBUG)println("pulou peça de outro jogador");
peca.comer();
updateIJ();
updateXY();
if(not podeComer()){
jogo.mudarJogador();
}
}else{
if(DEBUG)println("pulou peça do mesmo jogador");
updateXY();
}
}else{//nao pulou peça
if(DEBUG)println("nao pulou peça");
updateXY();
}
}else{
if(DEBUG)println("mais que 2 casas");
updateXY();
}
}
}
else{//se nao moveu ou nao foi na diagonal
if(DEBUG)println("nao moveu");
updateXY();
}
if(dx>4){//fora do tabuleiro
if(DEBUG)println("fora do tabuleiro");
updateXY();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
//3 movendo pra frente
onMousePressed: function(e: MouseEvent):Void{
toFront();
}
}
}
}
class Jogo{
var tabuleiro: Hashtable = new Hashtable();
var jogador = 2;//azul
var pecas: Peca[];
init{
pecas = for(i in [0..4])
for(j in [0..1])[
Peca{
i: if((j mod 2) == 0) i*2 else i*2+1
j: j
jogador: 1
jogo: this
}
Peca{
i: 9 - (if((j mod 2) == 0) i*2+1 else i*2)
j: j + 6
jogador: 2
jogo: this
}
];
}
public function mudarJogador():Void{
if(jogador == 1){
jogador = 2;
}else{
jogador = 1;
}
println(jogador);
}
public function reset():Void{
tabuleiro.clear();
var index = 0;
for(i in [0..4]){
for(j in [0..1]){
var peca: Peca = pecas[index++];
peca.i = if((j mod 2) == 0) i*2 else i*2+1;
peca.j = j;
peca.updateXY();
peca.visible = true;
peca.dama = false;
tabuleiro.put(peca.IJtoIndex(peca.i,peca.j), peca);
peca = pecas[index++];
peca.i = 9 - (if((j mod 2) == 0) i*2 else i*2+1);
peca.j = j + 5;
peca.updateXY();
peca.visible = true;
peca.dama = false;
tabuleiro.put(peca.IJtoIndex(peca.i,peca.j), peca);
}
}
}
}
var jogo: Jogo = Jogo{};
Stage{
title: "Damas"
scene: Scene{
width: SIZE*10
height: SIZE*8
fill: Color.WHITE
content: [
Group{
content: for(i in [0..4])
for(j in [0..3])[
Rectangle{
x: i*2*SIZE y: j*2*SIZE
width: SIZE height: SIZE
fill: Color.GRAY
}
Rectangle{
x: i*2*SIZE+SIZE y: j*2*SIZE+SIZE
width: SIZE height: SIZE
fill: Color.GRAY
}
]
onKeyPressed: function(e: KeyEvent):Void{
if(e.code == KeyCode.VK_SPACE){
jogo.reset();
}
}
}
jogo.pecas
]
}
}
É um jogo de Damas, as peças estão comendo ao contrario, eu só nao consigo fazer akele primeiro “if” lá do motor.
E as verdes estao voltando, nao poderiam…
Por favor, alguem me dê uma força ai…