Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2013, 14:08   #1
ilnar4ik18
Новичок
Джуниор
 
Регистрация: 28.04.2013
Сообщений: 2
По умолчанию игра виселица

Ребята, у меня возникла одна маленькая проблема.
Я делаю курсовую по игре виселица.
Когда отгадываю первую букву слова, то она открывается, но на PictureBox-е открывается следующая картинка, т.е. считается за неправильную букву.
В чем может быть проблема?
Помогите пожалуйста))
вот полный код проги:
Код:
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 WindowsFormsApplication1
{
public partial class Form2 : Form
{
string word; int numGuessesInt; List<char> guessedLetters;
public Form2()
{
InitializeComponent();

}

//Создание кнопок для букв алфавита


private void Form2_Shown(object sender, EventArgs e)
{
string str = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";//строковая перем. с алфавитом
int posX = 20, posY = 150;//начальные позиции первой строки букв
for (int i = 0; i < str.Count(); i++)//создание цикла
{

Button button = new Button();//метод создания новой кнопки
button.BackColor = Color.Aqua;//цвет кнопки
button.Text = str[i] + "";//присваивает значение след.буквы
button.Click += new EventHandler(this.button_Click);
button.Location = new System.Drawing.Point(posX, posY);//рисование кнопки
button.Size = new System.Drawing.Size(30, 25);//задание размера кнопки

this.Controls.Add(button);//добавление кнопки
posX += button.Width;//ширина кнопки
if ((i + 1) % 8 == 0)
{
posX = 20;
posY += button.Height;//высота кнопки
}
}
start_new_game();
}


//начало игры


private void start_new_game()//начальная позиция
{

numGuessesInt = 6;//количество попыток
guessedLetters = new List<char>();//отгаданные буквы
word = pickWord();
MessageBox.Show("Город");
label1.Text = displayWord();
label2.Text = "";
pictureBox1.Load(@"платформа с палкой_1.jpg");


}

static string pickWord()//выбор слова рандомно
{
string[] wordList = File.ReadAllLines("Список городов России.txt");
Random randomGen = new Random();
return wordList[randomGen.Next(wordList.Count())];
}


private string displayWord()
{
string returnedWord = "";
if (guessedLetters.Count == 0)
{
foreach (char letter in word) returnedWord += "_ ";
return returnedWord;
}
foreach (char letter in word)
{
bool letterMatch = false;
foreach (char character in guessedLetters)

if (char.ToLower(character) == char.ToLower(letter))
{
returnedWord += character + " ";
letterMatch = true;
break;
}
else letterMatch = false;

if (letterMatch == false) returnedWord += "_ ";
}
return returnedWord;
}



void button_Click(object sender, System.EventArgs e)
{
Button letter_btn = sender as Button;
string guessedLetter = letter_btn.Text;
string letters = "";

bool repeat = false;
for (int i = 0; i < guessedLetters.Count; i++)
if (char.ToLower(guessedLetters[i]) == char.ToLower(guessedLetter.ToCharArray()[0])) repeat = true;

if (repeat == false)
{
guessedLetters.Add(guessedLetter.ToCharArray()[0]);
if (!word.ToCharArray().Contains(char.ToLower(guessedLetter.ToC harArray()[0]))) numGuessesInt -= 1;
pictureBox1.Load(@"платформа с палкой_"+(7 - numGuessesInt)+".jpg");



foreach (char letter in guessedLetters) letters += " " + letter;
label2.Text = letters;

string wordToDisplay = displayWord();
label1.Text = displayWord();

if (!wordToDisplay.Contains("_"))
{
MessageBox.Show("Вы выиграли! Правильное слово: " + word);
start_new_game();
}
else if (numGuessesInt <= 0)
{

MessageBox.Show("Вы проиграли! Правильное слово: " + word);
start_new_game();
}

}
}


//кнопка в главное меню
private void button1_Click(object sender, EventArgs e)
{
Form1 fr = new Form1();
fr.Show();
this.Hide();

Последний раз редактировалось Stilet; 28.04.2013 в 14:38.
ilnar4ik18 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра "Виселица" на Delphi 7 Veterok0587 Фриланс 8 15.05.2010 10:54
Игра "Виселица" на Delphi 7 Veterok0587 Помощь студентам 0 12.05.2010 14:53
помогите составить игру "Виселица" Ymka Помощь студентам 1 23.11.2009 19:06
игра "Виселица" vitalij-cher Помощь студентам 4 13.06.2007 21:02