Venciity

[Jumpstart C#] - CowsAndBulls

Jan 22nd, 2014
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.25 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace CowsAndBulls
  7. {
  8.     class Program
  9.     {
  10.         public static bool IsValidNumber(string number, int length)
  11.         {
  12.             if (number.Length != length)
  13.                 return false;
  14.  
  15.             for (int i = 0; i < length; i++)
  16.             {
  17.                 if (!Char.IsDigit(number[i]))
  18.                 {
  19.                     return false;
  20.                 }
  21.             }
  22.  
  23.             for (int i = 0; i < length - 1; i++)
  24.             {
  25.                 for (int j = i + 1; j < length; j++)
  26.                 {
  27.                     if (number[i] == number[j])
  28.                         return false;
  29.                 }
  30.             }
  31.  
  32.             return true;    
  33.         }
  34.  
  35.         static void Main(string[] args)
  36.         {
  37.             int length = 4;
  38.  
  39.             string number1, number2;
  40.  
  41.             while (true)
  42.             {
  43.                 Console.Write("Player1 secret number: ");
  44.                 //Console.BackgroundColor = ConsoleColor.Gray;
  45.                 number1 = Console.ReadLine();
  46.                 //Console.BackgroundColor = ConsoleColor.Black;
  47.  
  48.                 if (IsValidNumber(number1, length))
  49.                     break;
  50.             }
  51.            
  52.             while (true)
  53.             {
  54.                 Console.Write("Player2 secret number: ");
  55.                 //Console.BackgroundColor = ConsoleColor.Gray;
  56.                 number2 = Console.ReadLine();
  57.                 //Console.BackgroundColor = ConsoleColor.Black;
  58.  
  59.                 if (IsValidNumber(number2, length))
  60.                     break;
  61.             }
  62.  
  63.             Console.WriteLine();
  64.  
  65.             int guessingPlayer = 1;
  66.             string guess;
  67.  
  68.             while (true)
  69.             {
  70.                 while (true)
  71.                 {
  72.                     Console.Write("Player{0} guess: ", guessingPlayer);
  73.  
  74.                     guess = Console.ReadLine();
  75.  
  76.                     if (IsValidNumber(guess, length))
  77.                         break;
  78.                 }
  79.  
  80.                 string numberToGuess = (guessingPlayer == 1) ? number2 : number1;
  81.  
  82.                 int bulls = 0;
  83.                 int cows = 0;
  84.  
  85.                 for (int i = 0; i < length; i++)
  86.                 {
  87.                     for (int j = 0; j < length; j++)
  88.                     {
  89.                         if (guess[i] == numberToGuess[j])
  90.                         {
  91.                             if (i == j)
  92.                                 bulls++;
  93.                             else
  94.                                 cows++;
  95.                             break;
  96.                         }
  97.                     }
  98.                 }
  99.  
  100.                 Console.WriteLine("Result: {0} bulls {1} cows", bulls, cows);
  101.                 Console.WriteLine();
  102.  
  103.                 if (bulls == length)
  104.                 {
  105.                     Console.WriteLine("Congratulations Player{0}! You won!", guessingPlayer);
  106.                     int opponent = guessingPlayer == 1 ? 2 : 1;
  107.                     Console.WriteLine("Sorry Player{0}, you suck!", opponent);
  108.                     break;
  109.                 }
  110.  
  111.                 guessingPlayer = guessingPlayer == 1 ? 2 : 1;
  112.             }
  113.         }
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment