Проблема с игрой "Крестики Нолики"

 
 
 
Сообщения:4
Я делал игру и на стадии разработки вышли проблемы .Пишу стратегию для игры ,но при окончании выясняется ,что она работает как-то странно.Я играю за нолик ,а крестик враг.Если схожу на середину,вверх,влево и вправо ,то крестик ставиться,а в других ситуациях никак.Помогите пожалуйста.
основа:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.imageio.*;

public class Dal {

	public static void main(String[] args) {
		// TODO Автоматически созданная заглушка метода
okno o = new okno();
	}

}


class okno extends JFrame{
	public okno(){
		
		setSize(600,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pan p = new pan();
		Container cont = getContentPane();
		cont.add(p);
	
		setVisible(true);
	}
	
}

class pan extends JPanel{


int x,y;
int ris;
Image img,img1;
logic r=new logic();

public pan(){
	setLayout(null);
	addMouseListener(new mouse());
	
	
	Timer time = new Timer(10, new ActionListener() {
		
		@Override
		public void actionPerformed(ActionEvent arg0) {
			// TODO Автоматически созданная заглушка метода
		repaint();	
		}
	});
	
	try{
		
		img=ImageIO.read(new File("d:\\D.png")); // нолик
		img1=ImageIO.read(new File("d:\\C.png")); // крестик
		
	}catch(Exception e){}
	
}
	
	private class mouse implements MouseListener{
	@Override
	public void mouseClicked(MouseEvent arg0) {
		// TODO Автоматически созданная заглушка метода
		x=arg0.getX();
		y=arg0.getY();
		
		if((x>0)&&(x<200)&&(y>0)&&(y<200)){
		ris=1;	
		repaint();
		}
		if((x>200)&&(x<400)&&(y>0)&&(y<200)){
		
			ris=2;	
			repaint();	
		}
		
		if((x>400)&&(x<600)&&(y>0)&&(y<200)){
			ris=3;	
			repaint();	
		}
		if((x>0)&&(x<200)&&(y>200)&&(y<400)){
			ris=4;	
			repaint();	
		}
		if((x>200)&&(x<400)&&(y>200)&&(y<400)){
			ris=5;	
			repaint();
		}
		if((x>400)&&(x<600)&&(y>200)&&(y<400)){
			ris=6;	
			repaint();	
		}
		if((x>0)&&(x<200)&&(y>400)&&(y<600)){
			ris=7;	
			repaint();	
		}
		if((x>200)&&(x<400)&&(y>400)&&(y<600)){
			ris=8;	
			repaint();	
		}
		if((x>400)&&(x<600)&&(y>400)&&(y<600)){
			ris=9;	
			repaint();
		}
		
		
		
	}
	@Override
		public void mouseEntered(MouseEvent arg0) {
			// TODO Автоматически созданная заглушка метода
			
		}
	@Override
		public void mouseExited(MouseEvent arg0) {
			// TODO Автоматически созданная заглушка метода
			
		}
	@Override
		public void mousePressed(MouseEvent arg0) {
			// TODO Автоматически созданная заглушка метода
			
		}
	@Override
		public void mouseReleased(MouseEvent arg0) {
			// TODO Автоматически созданная заглушка метода
			
		}
	}
	
	
	public void paintComponent(Graphics g){
		for(int y =0;y<3;y++){
			g.drawLine(200*y, 0, 200*y, 600);
			g.drawLine(0, 200*y, 600, 200*y);
		}
		r.method(ris);
		
		if(ris==1){
			g.drawImage(img, 0, 0, 200, 200, null);
		}
		else if(ris==2){
			g.drawImage(img, 200, 0, 200, 200, null);
		}
		else if(ris==3){
			g.drawImage(img, 400, 0, 200, 200, null);
		}
		else if(ris==4){
			g.drawImage(img, 0, 200, 200, 200, null);
		}
		else if(ris==5){
			g.drawImage(img, 200, 200, 200, 200, null);
		}
		else if(ris==6){
			g.drawImage(img, 400, 200, 200, 200, null);
		}
		else if(ris==7){
			g.drawImage(img, 0, 400, 200, 200, null);
		}
		else if(ris==8){
			g.drawImage(img, 200, 400, 200, 200, null);
		}
		else if(ris==9){
			g.drawImage(img, 400, 400, 200, 200, null);
		}
		
		
		if(r.yip==1){
			g.drawImage(img1, 0, 0, 200, 200, null);
		}	
		else if(r.yip==2){
			g.drawImage(img1, 200, 0, 200, 200, null);
		}
		else if(r.yip==3){
			g.drawImage(img1, 400, 0, 200, 200, null);
		}
		else	if(r.yip==4){
			g.drawImage(img1, 0, 200, 200, 200, null);
		}
		else if(r.yip==5){
			g.drawImage(img1, 200, 200, 200, 200, null);
		}
		else if(r.yip==6){
			g.drawImage(img1, 400, 200, 200, 200, null);
		}
		else if(r.yip==7){
			g.drawImage(img1, 0, 400, 200, 200, null);
		}
		else if(r.yip==8){
			g.drawImage(img1, 200, 400, 200, 200, null);
		}
		else	if(r.yip==9){
			g.drawImage(img1, 400, 400, 200, 200, null);
		}
	
	
	}

	
		
	}
	







логика

public class logic {
	int yip;
	int ip[]=new int[9];
	int [] it=new int[9];

	
	public int method(int t){
		
		for(int itt=1;itt<10;itt++){
		
	if(t==itt){	
	
		yip=(int)(Math.random()*9);

		
		
		
	

	
	}
	
	if(t==1){
		ip[0]=1;
	}
	else if(t==2){
		ip[1]=2;
	}else if(t==3){
		ip[2]=3;
	}
	else if(t==4){
		ip[3]=4;
	}
	else if(t==5){
		ip[4]=5;
	}
	else if(t==6){
		ip[5]=6;
	}
	else if(t==7){
		ip[6]=7;
	}
	else if(t==8){
		ip[7]=8;
	}
	else if(t==9){
		ip[8]=9;
	}  

	
	if(yip==1){              //тут проверяю поставен ли крестик
		it[0]=1;
	}else if(yip==2){
		it[1]=2;
	}
	else if(yip==3){
		it[2]=3;
	}else if(yip==4){
		it[3]=4;
	}else if(yip==5){
		it[4]=5;
	}else if(yip==6){
		it[5]=6;
	}else if(yip==7){
		it[6]=7;
	}else if(yip==8){
		it[7]=8;
	}else if(yip==9){
		it[8]=9;
	}
	
	
	

	
	 if(yip==1){
			if((it[0]==1)||(ip[0]==1)){
				 if((it[1]!=2)||(ip[1]!=2)){
					  yip=2;
					}
					  else if((it[2]!=3)||(ip[2]!=3)){
						  yip=3;
					  }
					  else if((it[3]!=4)||(ip[3]!=4)){
						  yip=4;
					  }else if((it[4]!=5)||(ip[4]!=5)){
						  yip=5;
					  }
					  else if((it[5]!=6)||(ip[5]!=6)){
						  yip=6;
					  }
					  else if((it[6]!=7)||(ip[6]!=7)){
						  yip=7;
					  }
					  else if((it[7]!=8)||(ip[7]!=8)){
						  yip=8;
					  }else if((it[8]!=9)||(ip[8]!=9)){
						  yip=9;
					  }
			}else {
				yip=1;
			}
		}else if(yip==2){
			if((it[1]==2)||(ip[1]==2)){
				 if((it[0]!=1)||(ip[0]!=1)){
					  yip=1;
					}
					  else if((it[2]!=3)||(ip[2]!=3)){
						  yip=3;
					  }
					  else if((it[3]!=4)||(ip[3]!=4)){
						  yip=4;
					  }else if((it[4]!=5)||(ip[4]!=5)){
						  yip=5;
					  }
					  else if((it[5]!=6)||(ip[5]!=6)){
						  yip=6;
					  }
					  else if((it[6]!=7)||(ip[6]!=7)){
						  yip=7;
					  }
					  else if((it[7]!=8)||(ip[7]!=8)){
						  yip=8;
					  }else if((it[8]!=9)||(ip[8]!=9)){
						  yip=9;
					  }
			}else {
				yip=2;
			}
		}else if(yip==3){
			if((it[2]==3)||(ip[2]==3)){
				 if((it[0]!=1)||(ip[0]!=1)){
					  yip=1;
					}
					  else if((it[1]!=2)||(ip[1]!=2)){
						  yip=2;
					  }
					  else if((it[3]!=4)||(ip[3]!=4)){
						  yip=4;
					  }else if((it[4]!=5)||(ip[4]!=5)){
						  yip=5;
					  }
					  else if((it[5]!=6)||(ip[5]!=6)){
						  yip=6;
					  }
					  else if((it[6]!=7)||(ip[6]!=7)){
						  yip=7;
					  }
					  else if((it[7]!=8)||(ip[7]!=8)){
						  yip=8;
					  }else if((it[8]!=9)||(ip[8]!=9)){
						  yip=9;
					  }
			}else{
				yip=3;
			}
		}else if(yip==4){
			if((it[3]==4)||(ip[3]==4)){
				 if((it[0]!=1)||(ip[0]!=1)){
					  yip=1;
					}
					  else if((it[1]!=2)||(ip[1]!=2)){
						  yip=2;
					  }
					  else if((it[2]!=3)||(ip[2]!=3)){
						  yip=3;
					  }else if((it[4]!=5)||(ip[4]!=5)){
						  yip=5;
					  }
					  else if((it[5]!=6)||(ip[5]!=6)){
						  yip=6;
					  }
					  else if((it[6]!=7)||(ip[6]!=7)){
						  yip=7;
					  }
					  else if((it[7]!=8)||(ip[7]!=8)){
						  yip=8;
					  }else if((it[8]!=9)||(ip[8]!=9)){
						  yip=9;
					  }
			}else {
				yip=4;
			}
		}else if(yip==5){
			if((it[4]==5)||(ip[4]==5)){
				 if((it[0]!=1)||(ip[0]!=1)){
					  yip=1;
					}
					  else if((it[1]!=2)||(ip[1]!=2)){
						  yip=2;
					  }
					  else if((it[2]!=3)||(ip[2]!=3)){
						  yip=3;
					  }else if((it[3]!=4)||(ip[3]!=4)){
						  yip=4;
					  }
					  else if((it[5]!=6)||(ip[5]!=6)){
						  yip=6;
					  }
					  else if((it[6]!=7)||(ip[6]!=7)){
						  yip=7;
					  }
					  else if((it[7]!=8)||(ip[7]!=8)){
						  yip=8;
					  }else if((it[8]!=9)||(ip[8]!=9)){
						  yip=9;
					  }
			}else {
				yip=5;
			}
		}else if(yip==6){
			if((it[5]==6)||(ip[5]==6)){
				 if((it[0]!=1)||(ip[0]!=1)){
					  yip=1;
					}
					  else if((it[1]!=2)||(ip[1]!=2)){
						  yip=2;
					  }
					  else if((it[2]!=3)||(ip[2]!=3)){
						  yip=3;
					  }else if((it[3]!=4)||(ip[3]!=4)){
						  yip=4;
					  }
					  else if((it[4]!=5)||(ip[4]!=5)){
						  yip=5;
					  }
					  else if((it[6]!=7)||(ip[6]!=7)){
						  yip=7;
					  }
					  else if((it[7]!=8)||(ip[7]!=8)){
						  yip=8;
					  }else if((it[8]!=9)||(ip[8]!=9)){
						  yip=9;
					  }
			}else {
				yip=6;
			}
		}else if(yip==7){
			if((it[6]==7)||(ip[6]==7)){
				 if((it[0]!=1)||(ip[0]!=1)){
					  yip=1;
					}
					  else if((it[1]!=2)||(ip[1]!=2)){
						  yip=2;
					  }
					  else if((it[2]!=3)||(ip[2]!=3)){
						  yip=3;
					  }else if((it[3]!=4)||(ip[3]!=4)){
						  yip=4;
					  }
					  else if((it[4]!=5)||(ip[4]!=5)){
						  yip=5;
					  }
					  else if((it[5]!=6)||(ip[5]!=6)){
						  yip=6;
					  }
					  else if((it[7]!=8)||(ip[7]!=8)){
						  yip=8;
					  }else if((it[8]!=9)||(ip[8]!=9)){
						  yip=9;
					  }
			}else {
				yip=7;
			}
		}else if(yip==8){
			if((it[7]==8)||(ip[7]==8)){
				 if((it[0]!=1)||(ip[0]!=1)){
					  yip=1;
					}
					  else if((it[1]!=2)||(ip[1]!=2)){
						  yip=2;
					  }
					  else if((it[2]!=3)||(ip[2]!=3)){
						  yip=3;
					  }else if((it[3]!=4)||(ip[3]!=4)){
						  yip=4;
					  }
					  else if((it[4]!=5)||(ip[4]!=5)){
						  yip=5;
					  }
					  else if((it[5]!=6)||(ip[5]!=6)){
						  yip=6;
					  }
					  else if((it[6]!=7)||(ip[6]!=7)){
						  yip=7;
					  }else if((it[8]!=9)||(ip[8]!=9)){
						  yip=9;
					  }
			}else {
				yip=8;
			}
		}else if(yip==9){
			if((it[8]==9)||(ip[8]==9)){
				 if((it[0]!=1)||(ip[0]!=1)){
					  yip=1;
					}
					  else if((it[1]!=2)||(ip[1]!=2)){
						  yip=2;
					  }
					  else if((it[2]!=3)||(ip[2]!=3)){
						  yip=3;
					  }else if((it[3]!=4)||(ip[3]!=4)){
						  yip=4;
					  }
					  else if((it[4]!=5)||(ip[4]!=5)){
						  yip=5;
					  }
					  else if((it[5]!=6)||(ip[5]!=6)){
						  yip=6;
					  }
					  else if((it[6]!=7)||(ip[6]!=7)){
						  yip=7;
					  }else if((it[7]!=8)||(ip[7]!=8)){
						  yip=8;
					  }
			}else{
				yip=9;
			}
		}
	
	
	}
		return yip;
}

}

 
 
Сообщения:697
китайский код детектед!
извини, но проще переписать весь код, чем найти ошибку в этом лабиринте.

глянь тут
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет