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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2011, 13:41   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

zzz6
угу. проглядел, что Вам в Delphi нужно.

значится так.
если Вы всё таки решили остановиться на консольном приложении,
тогда, чтобы выводить русские буквы Вам понадобится функция перекодировки русского текста из кодировки Windows (она же Windows-1251, она же ANSI) в кодировку DOS (она же 866, она же OEM)/

вот эта функция:
Код:
function StrToOem(const AnsiStr: AnsiString): AnsiString;
begin
  SetLength(Result, Length(AnsiStr));
  if Length(Result) > 0 then
    CharToOemBuff(PChar(AnsiStr), PChar(Result), Length(Result));
end;
ну и потом везде, где Вы ходите вывести русский текст пишите вызов этой функции.
например, так:
Код:
var
  N, M : integer;
begin
  WriteLn;
  Write(StrToOem('Введите значение карты N (6<=N<=14) :'));
  Readln(N);
  if (N<6) or (N>14) then begin
    WriteLn(StrToOem('Нет такого значения карты! Конец!'));
.....
и т.д.

либо возьмите обычный тип программы (форма Win32 с использованием VCL) перепишите код так, чтобы N и M брались, например, из Edit1 и Edit2
вычисление обозначения карты повесьте на кнопку (киньте на форму кнопку, например, Button1) и на обработчик OnClick этой кнопки напишите код,
который, например, будет формировать наименование карты в Edit3:
Код:
procedure TForm1.Button1Click(Sender: TObject);
TYPE
  str5 = string[6];
  MAST  = (PIKI,TREF,BUBN,CHER);
  ZNACH = (K6,K7,K8,K9,K10,KVAL,KDAM,KKOR,KTUZ);
const
  Mast_STR : array[ord(PIKI)+1..ord(CHER)+1] of str5 =
    ('пик','треф','бубен','червей');
{ с точки зрения надёжности, более правильно описать так
    ZNACH_STR : array[ord(K6)..ord(KTUZ)] of str5 =
         ('6','7','8','9','10','Валет','Дама','Король','ТУЗ');
   но тогда при отображении надо будет от числа отнимать 6 (т.к. значения начинаются от нуля)
         }
  ZNACH_STR : array[6..14] of string =
     ('шестёрка','семёрка','восьмёрка','девятка','десятка',
     'валет','дама','король','туз');
var
  N, M : integer;
begin
  N := StrToIntDef(Edit1.Text, 0);
  if (N<6) or (N>14) then begin
    Edit3.Text := ' Ошибка! Нет такого значения карты!';
    Exit
  end;
  M := StrToIntDef(Edit2.Text, 0);
  if (M<1) or (M>4) then begin
    Edit3.Text := ' Ошибка! Нет такой масти!';
    Exit
  end;
  Edit3.Text := ZNACH_STR[N]+' '+Mast_STR[M];
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи - "бьет" ли карта k1 карту k2, с учетом того что масть m является козырной. makarevich Общие вопросы Delphi 2 21.06.2011 13:38
реализация Карт Карно Delphi bes422 Помощь студентам 0 18.06.2011 23:21
Програма тосования карт diviru Помощь студентам 16 10.06.2011 11:04
РИДЕР КАРТ (C)stalin(Cpp) Общие вопросы .NET 0 25.04.2010 18:18
Проблема с редактором карт Wicort Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 20.08.2009 15:04