Advertisement
Ardurum

EUROVISION

Feb 3rd, 2021
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.71 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Eurovision
  4. {
  5.     class Program
  6.     {
  7.         public struct pais
  8.         {
  9.             public string nom;
  10.             public int punts;
  11.         }
  12.  
  13.         static void Main(string[] args)
  14.         {
  15.             string terminar = "S";
  16.             while (terminar == "S")
  17.             {
  18.                 Random rnd = new Random();
  19.                 int randnum;
  20.  
  21.                 //CREAMOS EL ARRAY DE LOS PAISES
  22.                 pais[] pais = new pais[26];
  23.                 pais[0].nom = "The Netherlands";
  24.                 pais[1].nom = "Italy";
  25.                 pais[2].nom = "Russia";
  26.                 pais[3].nom = "Switzerland";
  27.                 pais[4].nom = "Norway";
  28.                 pais[5].nom = "Sweden";
  29.                 pais[6].nom = "Azerbaijan";
  30.                 pais[7].nom = "North Macedonia";
  31.                 pais[8].nom = "Australia";
  32.                 pais[9].nom = "Iceland";
  33.                 pais[10].nom = "Czech Republic";
  34.                 pais[11].nom = "Denmark";
  35.                 pais[12].nom = "Slovenia";
  36.                 pais[13].nom = "France";
  37.                 pais[14].nom = "Cyprus";
  38.                 pais[15].nom = "Malta";
  39.                 pais[16].nom = "Serbia";
  40.                 pais[17].nom = "Albania";
  41.                 pais[18].nom = "Estonia";
  42.                 pais[19].nom = "San Marino";
  43.                 pais[20].nom = "Greece";
  44.                 pais[21].nom = "Spain";
  45.                 pais[22].nom = "Israel";
  46.                 pais[23].nom = "Germany";
  47.                 pais[24].nom = "Belarus";
  48.                 pais[25].nom = "United Kingdom";
  49.                 ////////////////////////////////////////////
  50.  
  51.                 //CREAMOS EL ARRAY DE LA DISTRIBUCION DE PUNTOS
  52.                 int[] puntos = new int[10];
  53.                 puntos[0] = 1;
  54.                 puntos[1] = 2;
  55.                 puntos[2] = 3;
  56.                 puntos[3] = 4;
  57.                 puntos[4] = 5;
  58.                 puntos[5] = 6;
  59.                 puntos[6] = 7;
  60.                 puntos[7] = 8;
  61.                 puntos[8] = 10;
  62.                 puntos[9] = 12;
  63.                 /////////////////////////////////////////
  64.  
  65.                 //el pais que vota (i)
  66.                 for (int i = 0; i < 26; i++)
  67.                 {
  68.                     //crear array de paises a los uqe votas
  69.                     int[] comprobarpais = new int[10];
  70.                     for (int g = 0; g < 10; g++)
  71.                     {
  72.                         comprobarpais[g] = rnd.Next(0, 26);
  73.                     }
  74.                     //que no se repitan
  75.                     for (int g = 0; g < 10; g++)
  76.                     {
  77.                         for (int j = 0; j < g; j++)
  78.                         {
  79.                             if (comprobarpais[j] == comprobarpais[g])
  80.                             {
  81.                                 j = 0;
  82.                                 comprobarpais[g] = rnd.Next(0, 26);
  83.                             }
  84.                             if (comprobarpais[g] == i)
  85.                             {
  86.                                 j = 0;
  87.                                 comprobarpais[g] = rnd.Next(0, 26);
  88.                             }
  89.                             if (comprobarpais[0] == comprobarpais[g])
  90.                             {
  91.                                 comprobarpais[g] = rnd.Next(0, 26);
  92.                                 j = 0;
  93.                             }
  94.                         }
  95.                     }
  96.                     //dar puntos
  97.                     int[] comprobarpuntos = new int[10];
  98.                     for (int g = 0; g < 10; g++)
  99.                     {
  100.                         randnum = rnd.Next(0, 10);
  101.                         comprobarpuntos[g] = puntos[randnum];
  102.                         //comprobar que no se dan puntos repetidos
  103.                         for (int h = 0; h <= g; h++)
  104.                         {
  105.                             for (int j = 0; j < h; j++)
  106.                             {
  107.                                 if (comprobarpuntos[j] == comprobarpuntos[h])
  108.                                 {
  109.                                     randnum = rnd.Next(0, 10);
  110.                                     comprobarpuntos[g] = puntos[randnum];
  111.                                     j = 0;
  112.                                 }
  113.                                 if (comprobarpuntos[0] == comprobarpuntos[h])
  114.                                 {
  115.                                     randnum = rnd.Next(0, 10);
  116.                                     comprobarpuntos[g] = puntos[randnum];
  117.                                     j = 0;
  118.                                 }
  119.                             }
  120.                         }
  121.                     }
  122.                     for (int g = 0; g < 10; g++)
  123.                     {
  124.                         Console.WriteLine(comprobarpuntos[g]);
  125.                     }
  126.  
  127.                     Console.WriteLine("");
  128.                     Console.WriteLine("Esta votando el pais " + pais[i].nom);
  129.  
  130.                     //ordenar lista votos
  131.                     for (int a = 1; a <= 9; a++)
  132.                     {
  133.                         int reservapunto;
  134.                         string reservapais;
  135.                         if (comprobarpuntos[a] < comprobarpuntos[a - 1])
  136.                         {
  137.                             reservapunto = comprobarpuntos[a - 1];
  138.                             comprobarpuntos[a - 1] = comprobarpuntos[a];
  139.                             comprobarpuntos[a] = reservapunto;
  140.  
  141.                             reservapais = pais[a - 1].nom;
  142.                             pais[a - 1].nom = pais[a].nom;
  143.                             pais[a].nom = reservapais;
  144.  
  145.                             a = 0;
  146.                         }
  147.                     }
  148.                     //mostrar lista de votos ordenada
  149.                     for (int g = 0; g < 10; g++)
  150.                     {
  151.                         Console.WriteLine(comprobarpuntos[g] + " puntos para " + pais[comprobarpais[g]].nom);
  152.                         pais[comprobarpais[g]].punts = pais[comprobarpais[g]].punts + comprobarpuntos[g];
  153.                     }
  154.                     Console.WriteLine("");
  155.                     ordenar(pais);
  156.                     //MOSTRAR clasificacion actual
  157.                     for (int a = 0; a < 13; a++)
  158.                     {
  159.                         Console.Write(String.Format("{0,-18}  {1,-8} ", pais[a].nom, pais[a].punts));
  160.                         Console.WriteLine(String.Format("{0,-18} {1,-8} ", pais[a + 13].nom, pais[a + 13].punts));
  161.                     }
  162.                 }
  163.                 Console.WriteLine("");
  164.                 //funcion que ordena nuestra estructura final
  165.                 void ordenar(pais[] punts)
  166.                 {
  167.                     int reservapunto;
  168.                     string reservanombre;
  169.                     for (int i = 1; i <= 25; i++)
  170.                     {
  171.                         if (pais[i].punts > pais[i - 1].punts)
  172.                         {
  173.                             reservapunto = pais[i - 1].punts;
  174.                             pais[i - 1].punts = pais[i].punts;
  175.                             pais[i].punts = reservapunto;
  176.  
  177.                             reservanombre = pais[i - 1].nom;
  178.                             pais[i - 1].nom = pais[i].nom;
  179.                             pais[i].nom = reservanombre;
  180.  
  181.                             i = 0;
  182.                         }
  183.                     }
  184.                 }
  185.                 //ordeno la clasificacion por ultima vez
  186.                 ordenar(pais);
  187.                 //convertimos la estructura en una matriz de strings
  188.                 string[,] final = new string[26, 2];
  189.                 for (int i = 0; i <= 25; i++)
  190.                 {
  191.                     for (int j = 0; j <= 1; j++)
  192.                     {
  193.                         if (j == 0)
  194.                         {
  195.                             final[i, j] = pais[i].nom;
  196.                         }
  197.                         if (j == 1)
  198.                         {
  199.                             final[i, j] = Convert.ToString(pais[i].punts);
  200.                         }
  201.                     }
  202.                 }
  203.  
  204.                 Console.WriteLine("");
  205.                 Console.WriteLine("LA TABLA DE RESULTADOS FINALES ES ");
  206.                 Console.WriteLine("");
  207.  
  208.  
  209.                 for (int a = 0; a < 13; a++)
  210.                 {
  211.                     Console.Write(String.Format("{0,-18}  {1,-8} ", final[a, 0], final[a, 1]));
  212.                     Console.WriteLine(String.Format("{0,-18} {1,-8} ", final[a + 13, 0], final[a + 13, 1]));
  213.                 }
  214.                 Console.WriteLine("Quieres repetir el concurso (S) o terminar el programa (N)?");
  215.                 terminar = Console.ReadLine();
  216.             }
  217.         }
  218.     }
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement