Jump to content


Photo

Implementar Dificuldade Em Jogo Da Velha


  • Faça o login para participar
3 replies to this topic

#1 Dookan

Dookan

    Turista

  • Usuários
  • 31 posts
  • Sexo:Masculino
  • Localidade:Montenegro - RS

Posted 02/11/2008, 13:20

Bom pessoal...eu estou num curso técnico, e no módulo q estou, tenho cadeira de programação em java...não usava java até essa cadeira, mas já programava em PHP. Como "nota final" o professor pediu para fazermos um jogo da velha q se podesse jogar contra uma pessoa e contra o computador (ou bot, como eu vo chamar daki pra frente). Eu já tenho a parte de duas pessoas pronta, mas agora falta a contra o bot, e pra ficar mais legalzinho o meu projeto, eu to querendo implementar dificuldades!

Na primeira, a fácil, o bot marca sempre o primeiro lugar vazio. Assim:
private void marcaVazio(){
		for(int i = 0; i < 8; i++){
			if(tab.pos[i].equals("   ")){ //tab = classe q cria o tabuleiro, armazena a array (pos) com as 9 jogadas possíveis, etc.
				tab.pos[i] = f.p2; //f = classe com algumas funçoes e variáveis. p2 = equivalente à peça " O ".
				break; //Vamos dar break pq já achamos o lugar vazio.
			}
		}
}

Na segunda dificuldade, a média, o bot bloquearia a jogada que levaria a pessoa a vencer, como:

X| X | O
-----------
--|---|---
-----------
--|---|---


Agora que começam meus "problemas"...eu até consigo fazer o bot bloquear o jogador, mas leva muitos IFs e ELSE IF. Acho que teria alguma maneira mais fácil, não?

Na terceira dificuldade, teriam jogadas prontas do computador, tipo aquela de marcar 3 cantos ^^

Desde já, obrigado, mesmo que não consigam ajudar muito...

Edição feita por: Dookan, 02/11/2008, 13:24.

| Intel Core 2 Quad Q9300 2,5 GHz | HD 320 GB | VGA GeForce 8600GT 512 MB | RAM 2 GB DDR2 |

#2 Bruloko.eb

Bruloko.eb

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 02/11/2008, 13:25

vo tentar pensar numa possibilidade ai edito ak e te mando

Edição feita por: Bruloko.eb, 02/11/2008, 13:26.


#3 Dookan

Dookan

    Turista

  • Usuários
  • 31 posts
  • Sexo:Masculino
  • Localidade:Montenegro - RS

Posted 02/11/2008, 15:56

Ah sim, o que eu faço no nível médio para o bot bloquear a pessoa é o seguinte:
private void blockPlayer(){
		if(tab.pos[4].equals(f.p1)){
			if(play == 2){ //Play = última jogada da pessoa.
				tab.pos[6] = f.p2;
			} else if(play == 6){
				tab.pos[2] = f.p2;
			} else if(play == 0){
				tab.pos[8] = f.p2;
			} else if(play == 8){
				tab.pos[0] = f.p2;
			} else if(play == 1){
				tab.pos[7] = f.p2;
			} else if(play == 7){
				tab.pos[1] = f.p2;
			} else if(play == 3){
				tab.pos[5] = f.p2;
			} else if(play == 5){
				tab.pos[3] = f.p2;
			} else {
				marcaVazio();
			}
		}...

e assim continua, para cada linha/coluna, etc... tudo do mesmo jeito.

Edição feita por: Dookan, 02/11/2008, 15:57.

| Intel Core 2 Quad Q9300 2,5 GHz | HD 320 GB | VGA GeForce 8600GT 512 MB | RAM 2 GB DDR2 |

#4 JavaTeam

JavaTeam

    Turista

  • Usuários
  • 29 posts
  • Sexo:Não informado

Posted 04/11/2008, 15:26

cara .. sua lógica não está boca ... e nem a sua base ! ...

cara .. use matriz! !! e varra a matriz procurando um " " . Simples ... existem mais formas .... não estou com tempo suficiênte agora... mas já que volto e esplico como fazer isso ...

PS: vc usar GUI ?

ficaria muito melhor.. já fiz isso antes. não é tão complexo assim não !

Quer aprender Java de uma maneira fácil e divertida ?
Fórum JavaDebug™ --> http://www.javadebug...forum/index.php
Faça parte você também!





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq