De estruturado para métodos

Oi sou iniciante em Java e mesmo entendendo o uso de métodos na programação não consigo “transformar” esse programa que fiz de maneira estruturada dividindo-o em métodos.

Pelo que entendi, métodos servem para que haja um reaproveitamento de código evitando que os mesmos comandos sejam inseridos.

Bom esse é o programa:

import javax.swing.JOptionPane;
public class JogoArray
{
	public static void main (String args[])
	{
		int jogador[] = new int[7];
		int cpu[] = new int[7];
		int ptJogador=0, ptCpu=0;
		String cartasJogador="";
		
		for (int c=0;c<7;c++)
		{ 	jogador[c]=(int)((Math.random()*9)+1);//jogador recebe 7 valores de 1 a 10
			cpu[c]=(int)((Math.random()*9)+1);	} //cpu recebe 7 valores de 1 a 10
		
		int menorCarta=cpu[0];
		int maiorCarta=cpu[0];
		
		//informa a menor e a maior carta que o CPU tem
		for (int c=0;c<7;c++) 
		{	if (cpu[c]<menorCarta)
				menorCarta=cpu[c];
			
			if (cpu[c]>maiorCarta)
				maiorCarta=cpu[c];	} 
		
		//jogada do CPU
		for (int c=0;c<7;c++)
		{	if (cpu[c]==menorCarta)
				JOptionPane.showMessageDialog(null,
				"CPU jogou. Saiu a menor carta.",(c+1)+"a. rodada",
				JOptionPane.INFORMATION_MESSAGE);
			else
				if (cpu[c]==maiorCarta)
					JOptionPane.showMessageDialog(null,
					"CPU jogou. Saiu a maior carta.",(c+1)+"a. rodada",
					JOptionPane.INFORMATION_MESSAGE);
				else
					JOptionPane.showMessageDialog(null,
					"CPU jogou.",(c+1)+"a. rodada",JOptionPane.INFORMATION_MESSAGE);
					
		//jogador
			for (int i=0;i<7;i++) //exibicão dos valores do jogador
				cartasJogador += (i+1)+"a. carta: "+jogador[i]+"\n";
				
			int carta=Integer.parseInt(JOptionPane.showInputDialog(null,
			"Qual carta vai usar ?\n"+cartasJogador,(c+1)+" a. rodada",
			JOptionPane.QUESTION_MESSAGE))-1;
			
			if ((carta>6) || (carta<0))
			{	JOptionPane.showMessageDialog(null,"Essa carta não existe ...",
				(c+1)+" a. rodada",
				JOptionPane.INFORMATION_MESSAGE);
				System.exit(0);	} //caso o usuário digite uma carta inexistente
						
			if (jogador[carta]==0) //evita que use a mesma carta + de uma vez
				JOptionPane.showMessageDialog(null,
				"Você já usou essa carta. Nessa rodada você jogou zero.",
				(c+1)+" a. rodada",
				JOptionPane.INFORMATION_MESSAGE);
			
			if (jogador[carta]>cpu[c]) //se o usuário jogou uma carta maior
			{	ptJogador++;
				JOptionPane.showMessageDialog(null,
				jogador[carta]+" a "+cpu[c]+". Você venceu a "+(c+1)+"a. rodada.",
				(c+1)+" a. rodada",
				JOptionPane.INFORMATION_MESSAGE);	}
			else
				if (jogador[carta]<cpu[c]) //se o usuário jogou uma carta menor
				{	ptCpu++;
					JOptionPane.showMessageDialog(null,
					jogador[carta]+" a "+cpu[c]+". Você perdeu a "+(c+1)+"a. rodada.",
					(c+1)+" a. rodada",
					JOptionPane.INFORMATION_MESSAGE);	}
				else
					JOptionPane.showMessageDialog(null,
					jogador[carta]+" a "+cpu[c]+". Empatou!",(c+1)+" a. rodada",
					JOptionPane.INFORMATION_MESSAGE);
					
			cartasJogador="";//apaga tudo que havia na string
			jogador[carta]=0;//zera carta que já foi usada
		}//fim do for
		
		if (ptJogador>ptCpu)
			JOptionPane.showMessageDialog(null,
			"PLACAR FINAL:\n\nVocê: "+ptJogador+
			"\nCPU: "+ptCpu+"\n\nVocê venceu !!","FINAL",
			JOptionPane.INFORMATION_MESSAGE);
		else
			if (ptCpu>ptJogador)
				JOptionPane.showMessageDialog(null,
				"PLACAR FINAL:\n\nVocê: "+ptJogador+
				"\nCPU: "+ptCpu+"\n\nVocê perdeu !!","FINAL",
				JOptionPane.INFORMATION_MESSAGE);
			else
				JOptionPane.showMessageDialog(null,
				"PLACAR FINAL:\n\nVocê: "+ptJogador+
				"\nCPU: "+ptCpu+"\n\nEmpatou !!","FINAL",
				JOptionPane.INFORMATION_MESSAGE);
		System.exit(0);			
	}//fim do main
}

… ainda não cuidei de tratar os erros mas minha dúvida é se eu poderia dimuir esse o numero de linhas utilizando métodos … Se alguem pude me ajudar agradeço

Olá

Estude programação orientada a objetos.

[]s
Luca