/************************************************************************
* Program Licence : *
* *
* Copyright 2015 , Perić Željko *
* (periczeljkosmederevo@yahoo.com) *
* *
* According to it's main purpose , this program is licensed *
* under the therms of 'Free Software' licence agreement. *
* *
* If You do not know what those therms applies to *
* please read explanation at the following link : *
* (http://www.gnu.org/philosophy/free-sw.html.en) *
* *
* Since it is Free Software this program has no warranty of any kind. *
************************************************************************
* Ethical Notice : *
* *
* It is not ethical to change program code signed by it's author *
* and then to redistribute it under the same author name , *
* especially if it is incorrect. *
* *
* It is recommended that if You make improvement in program code , *
* to make remarks of it and then to sign it with Your own name , *
* for further redistribution as new major version of program. *
* *
* Author name and references of old program code version should be *
* kept , for tracking history of program development. *
* *
* For any further information please contact code author at his email. *
************************************************************************/
/************************************
* List Of Revisions *
************************************
* *
* *
* *
************************************/
/*****************************************************************************************************
* Program name : Погоди број *
* Program ver. : 1.0 *
* Created by : SharpDevelop *
* Code author : Перић Жељко *
* Code language : C# *
* Date created : 12.2.2015 *
* Time created : 20:16 *
* *
* *
* Program Description : Компјутер је замислио број између један и сто. *
* Твој задатак је да погодиш о ком броју је реч. *
* На располагању имаш десет покушаја. Срећно !!! *
* *
* *
* Све најбоље, *
* Аутор *
* *
*****************************************************************************************************/
using System;
using System.Text;
namespace Погоди_број
{
class Program
{
public static void Main(string[] args)
{
Console.OutputEncoding = new UTF8Encoding();
Console.Title = " Игра Погоди Број";
Console.SetWindowSize(53,35);
Console.SetBufferSize(53,35);
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.Green;
Console.CursorVisible = false;
Console.Clear();
Нова_Игра Започни = new Нова_Игра();
Започни.Погађање();
}
}
class Нова_Игра
{
public void Погађање()
{
Random случајан_број = new Random();
string одговор = string.Empty;
int број_покушаја = 0;
int замишљен_број = 0;
int изабран_број = 0;
int ред = 0;
int колона = 0;
bool погодак = false;
ConsoleKeyInfo тастер = new ConsoleKeyInfo('D',ConsoleKey.D,true,true,true);
while(тастер.Key == ConsoleKey.D)
{
Console.Clear();
Console.Write("*****************************************************");
Console.Write("* *");
Console.Write("* ИГРА ПОГОДИ БРОЈ *");
Console.Write("* *");
Console.Write("* Компјутер је замислио неки број од 1 до 99. *");
Console.Write("* Твој задатак је да погодиш који је то број. *");
Console.Write("* На располагању имаш десет покушаја. Срећно !!! *");
Console.Write("* *");
Console.Write("*****************************************************");
Console.WriteLine();
замишљен_број = случајан_број.Next(1,99);
погодак = false;
број_покушаја = 10;
while(број_покушаја>0 && !погодак)
{
Console.Write(" Који сам број замислио ? ");
ред = Console.CursorTop;
колона = Console.CursorLeft;
изабран_број = Учитај_Број(ред,колона);
Console.WriteLine();
if(изабран_број==замишљен_број)
{
погодак = true;;
}
if(изабран_број<замишљен_број)
{
одговор = Негативан_Одговор();
Console.WriteLine(одговор + "замишљени број је већи од " + изабран_број.ToString());
}
else if(изабран_број>замишљен_број)
{
одговор = Негативан_Одговор();
Console.WriteLine(одговор + "замишљени број је мањи од " + изабран_број.ToString());
}
број_покушаја--;
}
if(погодак)
Console.WriteLine("\n Браво, погодили сте замишљен број!");
else
Console.WriteLine("\n Нажалост овај пут нисте успели.\n Замишљени број је " + замишљен_број.ToString());
Console.WriteLine();
Console.Write(" Да ли желите поново да погађате [ Да / Не ] ? ");
тастер = Console.ReadKey(true);
}
}
private int Учитај_Број(int ред,int колона)
{
const string могући_бројеви="1234567890";
string реч=string.Empty;
string слово=string.Empty;
int дужина=0;
int број=0;
Console.SetCursorPosition(колона,ред);
Console.Write(" ");
Console.SetCursorPosition(колона,ред);
ConsoleKeyInfo тастер=new ConsoleKeyInfo();
while(тастер.Key!=ConsoleKey.Enter||дужина==0)
{
тастер=Console.ReadKey();
if(тастер.Key==ConsoleKey.Backspace||тастер.Key==ConsoleKey.Delete)
{
дужина--;
if(дужина<0)
{
дужина=0;
}
реч=реч.Substring(0,дужина);
Console.SetCursorPosition(колона,ред);
Console.Write(" ");
Console.SetCursorPosition(колона,ред);
Console.Write(реч);
}
else
{
слово=тастер.KeyChar.ToString();
if(могући_бројеви.Contains(слово))
{
дужина++;
if(дужина<3)
{
реч=реч+слово;
}
else
{
дужина=2;
Console.SetCursorPosition(колона,ред);
Console.Write(" ");
Console.SetCursorPosition(колона,ред);
Console.Write(реч);
}
}
else if(!могући_бројеви.Contains(слово))
{
Console.SetCursorPosition(колона,ред);
Console.Write(" ");
Console.SetCursorPosition(колона,ред);
Console.Write(реч);
}
}
}
број=int.Parse(реч.ToString());
return број;
}
private string Негативан_Одговор()
{
string Одговор = string.Empty;
Random Генератор = new Random();
int Избор = Генератор.Next(1,21);
switch(Избор)
{
case 1:Одговор = " Њет, ";
break;
case 2:Одговор = " Ма какви ";
break;
case 3:Одговор = " Близу сте, ";
break;
case 4:Одговор = " Замало погодак, ";
break;
case 5:Одговор = " Нопе, ";
break;
case 6:Одговор = " ..., ";
break;
case 7:Одговор = " Зев, ";
break;
case 8:Одговор = " Њенте, ";
break;
case 9:Одговор = " Јок, ";
break;
case 10:Одговор = " Хммм, ";
break;
case 11:Одговор = " Чек да размислим, ";
break;
case 12:Одговор = " Нихт, ";
break;
case 13:Одговор = " Икке, ";
break;
case 14:Одговор = " Јо, ";
break;
case 15:Одговор = " Бууу, ";
break;
case 16:Одговор = " Си, ";
break;
case 17:Одговор = " Опет није, ";
break;
case 18:Одговор = " Еi, ";
break;
case 19:Одговор = " Ора, ";
break;
case 20:Одговор = " Хладно, ";
break;
}
return Одговор;
}
}
}