Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.IO;
- namespace Hang_Man_Project
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- ReadFromFile();
- }
- enum BodyParts
- {
- Head,
- Left_Eye,
- Right_Eye,
- Mouth,
- Body,
- Left_Arm,
- Righ_Arm,
- Left_Leg,
- Right_Leg
- }
- int amount = 0;
- string word = "";
- List<string> words = new List<string> ();
- List<Label> labels = new List<Label>();
- void DrawBodyPart(BodyParts bp)
- {
- Graphics g = panel1.CreateGraphics();
- Pen p = new Pen(Color.Black, 2);
- SolidBrush s = new SolidBrush(Color.Black);
- switch (bp)
- {
- case BodyParts.Head: g.DrawEllipse(p, 65, 40, 40, 40); break;
- case BodyParts.Left_Eye: g.FillEllipse(s, 75, 52, 5, 5); break;
- case BodyParts.Right_Eye: g.FillEllipse(s, 90, 52, 5, 5); break;
- case BodyParts.Mouth: g.DrawArc(p, 75, 67, 25, 10, -45, -90); break;
- case BodyParts.Body: g.DrawLine(p, new Point(85, 80), new Point(85, 130)); break;
- case BodyParts.Left_Arm: g.DrawLine(p, new Point(85, 88), new Point(60, 105)); break;
- case BodyParts.Righ_Arm: g.DrawLine(p, new Point(85, 88), new Point(110, 105)); break;
- case BodyParts.Left_Leg: g.DrawLine(p, new Point(85, 130), new Point(60, 150)); break;
- case BodyParts.Right_Leg: g.DrawLine(p, new Point(85, 130), new Point(110, 150)); break;
- }
- }
- string GetRandomWord()
- {
- int length = words.Count;
- if (length <= 0)
- return "";
- Random random = new Random ();
- int index = random.Next (0, length - 1);
- return words[index];
- }
- void ReadFromFile()
- {
- if (!File.Exists(".\\words.txt"))
- return;
- StreamReader streamReader = new StreamReader(".\\words.txt");
- if (streamReader == null)
- return;
- while (!streamReader.EndOfStream)
- {
- words.Add(streamReader.ReadLine());
- }
- streamReader.Close();
- }
- void DrawHangManPost()
- {
- Graphics g = panel1.CreateGraphics();
- Pen p = new Pen(Color.Black, 10);
- g.DrawLine(p, new Point(150,160), new Point(150,10));
- g.DrawLine(p, new Point(150,15), new Point(85,15));
- g.DrawLine(p, new Point(85,10), new Point(85,40));
- }
- void MakeLabels()
- {
- word = GetRandomWord();
- char[] chars = word.ToCharArray();
- int between = 275 / chars.Length - 1;
- for (int i = 0; i <= chars.Length - 1; i++)
- {
- labels.Add(new Label());
- labels[i].Location = new Point((i * between) + 10, 52);
- labels[i].Text = "_";
- labels[i].Font = new Font("Arial", 12);
- labels[i].BackColor = Color.Transparent;
- labels[i].Parent = groupBox1;
- labels[i].BringToFront();
- labels[i].CreateControl();
- }
- int length = chars.Length;
- label1.Text = label1.Text + " " + length.ToString();
- }
- private void Form1_Shown(object sender, EventArgs e)
- {
- DrawHangManPost();
- MakeLabels();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- char letter = textBox1.Text.ToLower().ToCharArray()[0];
- if (!char.IsLetter(letter) || letter >= '\u0061' && letter <= '\u007a')
- {
- MessageBox.Show("Можете да въвеждате само букви на български!", "Грешка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- if (word.Contains(letter))
- {
- char[] letters = word.ToCharArray();
- for (int i = 0; i < letters.Length; i++)
- {
- if (letters[i] == letter)
- {
- labels[i].Text = letter.ToString();
- }
- }
- foreach (Label l in labels)
- if (l.Text == "_")
- {
- return;
- }
- MessageBox.Show("Ти спечели!", "Поздравления!");
- groupBox2.Enabled = false;
- }
- else
- {
- MessageBox.Show("Буквата, която написахте, не е в думата.", "Грешно предложение!");
- label2.Text = label2.Text + " " + letter.ToString() + ",";
- DrawBodyPart((BodyParts)amount);
- amount++;
- if (amount == 9)
- {
- MessageBox.Show("Вие загубихте! Думата беше " + word);
- groupBox2.Enabled = false;
- }
- }
- textBox1.Text = "";
- }
- private void button2_Click(object sender, EventArgs e)
- {
- for(int i = 0; i < textBox2.Text.Length; i++)
- {
- if (!char.IsLetter(textBox2.Text[i]) || textBox2.Text[i] >= '\u0061' && textBox2.Text[i] <= '\u007a')
- {
- MessageBox.Show("Можете да въвеждате само букви на български!", "Грешка", MessageBoxButtons.OK, MessageBoxIcon.Error);
- return;
- }
- }
- if (textBox2.Text == word)
- {
- MessageBox.Show("Ти спечели!", "Поздравления!");
- groupBox2.Enabled = false;
- }
- else
- {
- MessageBox.Show("Думата, която написахте, е грешна!");
- DrawBodyPart((BodyParts)amount);
- amount++;
- if (amount == 9)
- {
- MessageBox.Show("Вие загубихте! Думата беше " + word);
- groupBox2.Enabled = false;
- }
- }
- textBox2.Text = "";
- }
- private void redrawButton_Click(object sender, EventArgs e)
- {
- DrawHangManPost();
- }
- private void новаИграToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Application.Restart();
- }
- private void изходToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Application.Exit();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment