Advertisement
prampec

C# Mastermind - Egyszerűbb

Jun 23rd, 2019
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.54 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Peldak
  4. {
  5.     public class Mastermind
  6.     {
  7.         char[] szinek = { 'K', 'S', 'Z', 'P', 'F', 'R' };
  8.         Random rnd = new Random();
  9.  
  10.         public void run()
  11.         {
  12.             char[] kerdes = feladvany();
  13.             for (int i=0; i<4; i++)
  14.             {
  15.                 Console.Write(kerdes[i]);
  16.             }
  17.             Console.WriteLine();
  18.             while (true)
  19.             {
  20.                 char[] valasz = bevitel();
  21.                 bool kitalalta = eredmeny(kerdes, valasz);
  22.                 if (kitalalta)
  23.                 {
  24.                     Console.WriteLine("Gratulálunk!");
  25.                     break;
  26.                 }
  27.             }
  28.         }
  29.  
  30.         private bool eredmeny(char[] kerdes, char[] valasz)
  31.         {
  32.             int joHelyen = 0;
  33.             int vanDeRosszHelyen = 0;
  34.             for (int i = 0; i < 4; i++)
  35.             {
  36.                 if (kerdes[i] == valasz[i])
  37.                 {
  38.                     joHelyen += 1;
  39.                 }
  40.                 else if (haVanBenne(kerdes, valasz[i]))
  41.                 {
  42.                     vanDeRosszHelyen += 1;
  43.                 }
  44.             }
  45.             if (joHelyen == 4)
  46.             {
  47.                 return true;
  48.             }
  49.             Console.Write("        ");
  50.             for (int i = 0; i < joHelyen; i++)
  51.             {
  52.                 Console.Write("X");
  53.             }
  54.             for (int i = 0; i < vanDeRosszHelyen; i++)
  55.             {
  56.                 Console.Write("O");
  57.             }
  58.             Console.WriteLine();
  59.             return false;
  60.         }
  61.  
  62.         private char[] bevitel()
  63.         {
  64.             Console.Write("? ");
  65.             string valasz = Console.ReadLine();
  66.             return valasz.ToCharArray();
  67.         }
  68.  
  69.         private char[] feladvany()
  70.         {
  71.             char[] eredmeny = new char[4];
  72.             int i = 0;
  73.             while(i < 4)
  74.             {
  75.                 int a = rnd.Next(szinek.Length);
  76.                 char szin = szinek[a];
  77.                 if (haVanBenne(eredmeny, szin))
  78.                 {
  79.                     continue;
  80.                 }
  81.                 eredmeny[i] = szin;
  82.                 i += 1;
  83.             }
  84.             return eredmeny;
  85.         }
  86.  
  87.         private bool haVanBenne(char[] eredmeny, char szin)
  88.         {
  89.             for (int i=0; i<4; i++)
  90.             {
  91.                 if (eredmeny[i] == szin)
  92.                 {
  93.                     return true;
  94.                 }
  95.             }
  96.             return false;
  97.         }
  98.     }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement