Por cierto, con los mapas custom estaban montando uno en plan lol, con su mapeado y tal y quitando el turnrate.
A ver, vamos a ver... los que están diciendo que Lol>Dota 2 o Hots>Dota 2, no tienen ni puta idea, no tengo nada más que decir su señoria.
Mi nueva producción:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
3 2 8 8 6
0 3 8 2 8
7 1 1 5 0
7 5 7 8 3
3 8 5 4 9
3 8 0 7 6
1 5 5 2 0
5 6 9 7 5
3 9 0 1 4
0 0 1 9 1
6 10 8 15 12
1 8 13 4 8
12 7 10 12 5
10 14 7 9 7
3 8 6 13 10
El código:
package prMatriz;
import java.util.ArrayList;
import java.util.List;
import mensajes.Channel;
public class main {
public final static int NUM_PROCESOS=5;
public static void main(String[] args) {
// TODO Auto-generated method stub
List <Channel<Integer[][]>> matrix1= new ArrayList<Channel<Integer [] []>>();
List <Filtro> filtros= new ArrayList<Filtro>();
for (int i=0;i<=NUM_PROCESOS;i++)
{
matrix1.add(new Channel<Integer[][]>());
}
Generador generador= new Generador(matrix1.get(0));
generador.start();
Consumidor consumidor= new Consumidor(matrix1.get(NUM_PROCESOS));
consumidor.start();
for (int i=0;i<NUM_PROCESOS;i++)
{
filtros.add(new Filtro(i, matrix1.get(i),matrix1.get(i+1)));
filtros.get(i).start();
}
}
}
package prMatriz;
import java.util.Random;
import mensajes.Channel;
public class Generador extends Thread {
private Channel<Integer[][]> matrix1;
private Channel<Integer[][]> matrix2;
private Channel<Integer[][]> matrixsuma;
private Integer [][] array=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
private Integer [][] array2=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
private Integer [][] array3=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
public Generador(Channel<Integer[][]> channel) {
// TODO Auto-generated constructor stub
matrix1=channel;
}
public void run()
{
Random r= new Random();
for (int i=0;i<main.NUM_PROCESOS;i++)
{
for (int j=0;j<main.NUM_PROCESOS;j++)
{
array[i][j]=r.nextInt(10);
}
}
for (int i=0;i<main.NUM_PROCESOS;i++)
{
for (int j=0;j<main.NUM_PROCESOS;j++)
{
array2[i][j]=r.nextInt(10);
}
}
for (int i=0;i<main.NUM_PROCESOS;i++)
{
for (int j=0;j<main.NUM_PROCESOS;j++)
{
array3[i][j]=0;
}
}
for (int i=0;i<main.NUM_PROCESOS;i++)
{
for (int j=0;j<main.NUM_PROCESOS;j++)
{
System.out.print(array3[i][j]+ " ");
}
System.out.println();
}
System.out.println();
for (int i=0;i<main.NUM_PROCESOS;i++) // impr matriz inicial
{
for (int j=0;j<main.NUM_PROCESOS;j++)
{
System.out.print(array2[i][j]+ " ");
}
System.out.println();
}
System.out.println();
for (int i=0;i<main.NUM_PROCESOS;i++) // impr matriz segunda
{
for (int j=0;j<main.NUM_PROCESOS;j++)
{
System.out.print(array[i][j]+ " ");
}
System.out.println();
}
try {
matrix1.send(array);
matrix1.send(array2);
matrix1.send(array3);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package prMatriz;
import mensajes.Channel;
public class Consumidor extends Thread {
private Channel<Integer[][]> matrix1recibe;
private Integer [][] array=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
private Integer [][] array2=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
private Integer [][] array3=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
public Consumidor(Channel<Integer[][]> channel) {
// TODO Auto-generated constructor stub
matrix1recibe=channel;
}
public void run()
{
try {
array=matrix1recibe.receive();
array2=matrix1recibe.receive();
array3=matrix1recibe.receive();
System.out.println();
for (int i=0;i<main.NUM_PROCESOS;i++)
{
for (int j=0;j<main.NUM_PROCESOS;j++)
{
System.out.print(array3[i][j]+ " ");
}
System.out.println();
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package prMatriz;
import mensajes.Channel;
public class Filtro extends Thread {
private Channel<Integer[][]> matrix1envia;
private Channel<Integer[][]> matrix1recibe;
private Channel<Integer[][]> matrix2recibe;
private Channel<Integer[][]> matrix2envia;
private Channel<Integer[][]> matrix3sumarecibe;
private Channel<Integer[][]> matrix3sumaenvia;
private Integer [][] array=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
private Integer [][] array2=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
private Integer [][] array3=new Integer [main.NUM_PROCESOS][main.NUM_PROCESOS];
private int id;
public Filtro(int i,Channel<Integer[][]> channel, Channel<Integer[][]> channel2) {
// TODO Auto-generated constructor stub
matrix1recibe=channel;
matrix1envia=channel2;
id=i;
}
public void run ()
{
try {
array=matrix1recibe.receive();
array2=matrix1recibe.receive();
array3=matrix1recibe.receive();
for (int j=0;j<main.NUM_PROCESOS;j++)
{
array3[id][j]=array[id][j]+array2[id][j];
}
matrix1envia.send(array);
matrix1envia.send(array2);
matrix1envia.send(array3);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
#11257 suma de dos matrices con paso de mensajes
PD: Los emoticonos me joden el código, si alguien quiere el código PM
Podrías tabular el código por aquello de que sea legible y tal, que ese churro parece hecho por un chavalín de primero macho
Pues si que es bajo el nivel en las universidades, ese codigo te lo hace cualquier estudiante de ciclo superior xD
Pero cómo os puede dar miedo esta monada https://33.media.tumblr.com/7b58012a1236acbce7c39fed22b0a01f/tumblr_nkrinoP5D01upoqtyo1_400.gif