Здравствуйте. Пишу приложение "угадай слово". Нашел видеоуроки и по ним делаю. Код следующий
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.Net;
namespace finalHome
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string word = "";
List<Label> labels = new List<Label>();
int t = 10;
private void timer1_Tick(object sender, EventArgs e)
{
t--;
timer.Text = t.ToString();
if (t == 0)
{
timer1.Stop();
MessageBox.Show("Your time is up the word was "+ word,"LOST");
Reset();
}
}
private void startButton_Click(object sender, EventArgs e)
{
Reset();
timer1.Enabled = true;
}
public void MakeLabels()
{
word = GetRandomWord();
char[] chars = word.ToCharArray();
int between = 330 / chars.Length;
for (int i = 0; i < chars.Length; i++)
{
labels.Add(new Label());
labels[i].Location = new Point((i * between) + 10, 80);
labels[i].Text = "_";
labels[i].Parent = groupBox1;
labels[i].BringToFront();
labels[i].CreateControl();
}
attemptLabel2.Text = (chars.Length).ToString();
}
void Mistake()
{
for (int i = word.Length; i > 0; i--)
{ attemptLabel2.Text = (word.Length-1).ToString(); }
}
string GetRandomWord()
{
WebClient wc = new WebClient();
string wordList = wc.DownloadString("http://www-cs-faculty.stanford.edu/~knuth/sgb-words.txt");
string[] words = wordList.Split('\n');
Random ran = new Random();
return words[ran.Next(0, words.Length )];
}
public void submitButton_Click(object sender, EventArgs e)
{
char letter = SubmitTextox.Text.ToLower().ToCharArray()[0];
if(!char.IsLetter(letter))
{
MessageBox.Show("you can submit only letters","Error", 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("You won!", "Nice");
Reset();
}
else
{
MessageBox.Show("there is not this letter in the word!","Error");
label1.Text += " " + letter.ToString() + ",";
Mistake();
}
}
void Reset()
{
GetRandomWord();
MakeLabels();
label1.Text = "Missed";
SubmitTextox.Text = "";
timer1.Enabled = false;
timer1.Enabled = true;
}
private void resetButton_Click(object sender, EventArgs e)
{
Reset();
}
private void submitWord_Click(object sender, EventArgs e)
{
if (WordTextBox.Text == word)
{
MessageBox.Show("You have won! The word is " + word);
Reset();
}
else
{
MessageBox.Show("Wrong word! Try again");
}
}
}
}
1 При значении таймера равным 0 выходит сообщение что пользователь проиграл. При нажатии на reset таймер продолжает считать до -1 -2 -3 и тд. Как сделать так, чтоб при нажатии на Reset таймер начал отчет с начального значения? 2. Как сделать, чтобы при вводе неправильных букв или слов в SubmitTextOx и WordTextBox соответственно, значение attemptLabel2 уменьшалось на единицу. и когда это значение достигнет 0, так же вышло сообщение о том что пользователь проиграл. спасибо большое
void Reset()
{
t = 10;
GetRandomWord();
MakeLabels();
label1.Text = "Missed";
SubmitTextox.Text = "";
timer1.Enabled = false;
timer1.Enabled = true;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Заранее прошу прощения если вопрос кому-то покажется глупым и бессмысленным, но для меня он имеет смыслНеобходима функция которая на входе...
Это bodyphp Для вывода всех строчек с масива отвечает функция getPosts, она же и задает в ссылке id