Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

InFanTILDA



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

void TForm1:: ris_hod_Comp(int short &x,int short &y){
if(x==0 && y==0){Image1->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==0 && y==1){Image2->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==0 && y==2){Image3->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==0){Image4->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==1){Image5->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==2){Image6->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==0){Image7->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==1){Image8->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==2){Image9->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
 
}
 
 
форма:3 кнопки
 Первая кнопа  Caption="Игра"
Вторая кнопа  Caption="Выход"
Третья кнопа  Caption="Переиграть".  
9 компонентов TImage  
два компонента TRadioButton- крестики и нолики
 
 
а код программы такой (описаны 2 файла):
//ПЕРВЫЙ:
 
 
Unit1.h:*********************************************
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TBitBtn *BitBtn1;
TBitBtn *BitBtn2;
TBitBtn *BitBtn3;
TImage *Image1;
TImage *Image2;
TImage *Image3;
TImage *Image4;
TImage *Image5;
TImage *Image6;
TImage *Image7;
TImage *Image8;
TImage *Image9;
TRadioButton *RadioButton1;
TRadioButton *RadioButton2;
TBevel *Bevel1;
TLabel *Label1;
TPanel *Panel1;
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
void __fastcall BitBtn3Click(TObject *Sender);
void __fastcall Image1Click(TObject *Sender);
void __fastcall Image2Click(TObject *Sender);
void __fastcall Image3Click(TObject *Sender);
void __fastcall Image4Click(TObject *Sender);
void __fastcall Image5Click(TObject *Sender);
void __fastcall Image6Click(TObject *Sender);
void __fastcall Image7Click(TObject *Sender);
void __fastcall Image8Click(TObject *Sender);
void __fastcall Image9Click(TObject *Sender);
void __fastcall RadioButton1Click(TObject *Sender);
void __fastcall RadioButton2Click(TObject *Sender);
 
private: // User declarations
char hod_ris1[10];
char hod_ris2[10];
int mas [3][3];
void initiz();
void hod_User(int ris);
 
void hod_Comp();
int proverka();
bool hod_kompa_func(int short &n);
void ris_hod_Comp(int short &x,int short &y);
void vigrish_User();
void vigrish_Comp();
void vigrish_Nichia();
void not_active_ramka();
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
 
//ВТОРОЙ:
 
Unit2.cpp:*******************************************
//---------------------------------------------------------------------------
 
#include  
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
strcpy(hod_ris1,"krest.bmp");strcpy(hod_ris2,"nolik.bmp");
}
 
//************************************************************************************
void TForm1 :: not_active_ramka(){
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
mas[i][j]=3;
}
void TForm1::vigrish_User(){
not_active_ramka();
MessageBox(0,"Вы выиграли!!", "Сообщение",MB_OK|MB_ICONEXCLAMATION);
 
}
 
void TForm1::vigrish_Comp(){
not_active_ramka();
MessageBox(0,"Вы проиграли!!", "Сообщение",MB_OK|MB_ICONEXCLAMATION);
 
}
 
void TForm1::vigrish_Nichia(){
not_active_ramka();
MessageBox(0,"Ничья", "Сообщение",MB_OK|MB_ICONEXCLAMATION);
 
}
//----------------------------------------------------------------------------------
 
int TForm1 :: proverka(){ // Проверка поля...
int short i=0,j=0,x=0,y=0,x1=0,y1=0;
 
for(i=0;i<3;i++){ // на ничью
for(j=0;j<3;j++){
if(mas[i][j]!=0) x+=1;
if(mas[i][j]==0) y++;
}
if(y>0) break;
if(x==9) return -4; // возвращаем -4 , если ничья<>BR> }
 
// по горизонтали
for(i=0;i<3;i++){
x=0;y=0;
for(j=0;j<3;j++){
if(mas[i][j]==1) x+=1;
if(mas[i][j]==2) y+=1;
}
if(x==3) return -1; // возвращаем -1, если выграл игрок(невозможно)
if(y==3) return -2; // возвращаем -2 , если выграл комп
 
}
 
for(j=0;j<3;j++){ // по вертикали
x=0;y=0;
for(i=0;i<3;i++){
if(mas[i][j]==1) x+=1;
if(mas[i][j]==2) y+=1;
}
if(x==3) return -1; // возвращаем -1, если выграл игрок(невозможно)
if(y==3) return -2; // возвращаем -2 , если выграл комп
}
x=0;y=0;x1=0;y1=0;
 
for(i=0;i<3;i++){ // по наклонным
for(j=0;j<3;j++){
if(i==j){
if(mas[i][j]==1) x+=1;
if(mas[i][j]==2) y+=1;
}
if((i+j)==2){
if(mas[i][j]==1) x1+=1;
if(mas[i][j]==2) y1+=1;
}
 
}
if(x==3) return -1; // возвращаем -1, если выграл игрок(невозможно)
if(y==3) return -2; // возвращаем -2 , если выграл комп
if(x1==3) return -1; // возвращаем -1, если выграл игрок(невозможно)
if(y1==3) return -2; // возвращаем -2 , если выграл комп
}
return -3; // если ничего нет
}
//---------------------------------------------------------------------------------------
 
void TForm1:: ris_hod_Comp(int short &x,int short &y){
if(x==0 && y==0){Image1->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==0 && y==1){Image2->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==0 && y==2){Image3->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==0){Image4->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==1){Image5->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==1 && y==2){Image6->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==0){Image7->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==1){Image8->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
if(x==2 && y==2){Image9->Picture->LoadFromFile(hod_ris2); mas[x][y]=2;}
 
}
bool TForm1:: hod_kompa_func(int short &n){
int short i=0,j=0,i1=0,j1=0,x=0;
for(i=0;i<3;i++) // Сколько общих ходов было(в переменную "х").
for(j=0;j<3;j++)
if(mas[i][j]!=0) x++;
 
if(x<=2){ // Если меньше или равно 2, тогда...
i=1;j=1;
if(mas[i][j]==0){ // Если свободна "середина" , тогда ставим..
 
ris_hod_Comp(i,j);
return true;
}
i=0;j=0;
if(mas[i][j]==0){ // Если свободн левый верхний угол, тогда ставим
 
ris_hod_Comp(i,j);
return true;
}
}
 
//---------
 
for(i=0;i<3;i++){ // По горизонтали
x=0;j1=3;
for(j=0;j<3;j++){
if(mas[i][j]==n) x++;
if(mas[i][j]==0) j1=j;
if(x==2 && j1!=3){
 
ris_hod_Comp(i,j1);
return true;
}// if...
}// for(j...
} // for(i...
 
for(j=0;j<3;j++){ // По вертикали
x=0;i1=3;
for(i=0;i<3;i++){
if(mas[i][j]==n) x++;
if(mas[i][j]==0) i1=i;
if(x==2 && i1!=3){
 
ris_hod_Comp(i1,j);
return true;
}// if...
}// for(i...
} // for(j...
 
int x2=0,x1=0,i2=0,j2=0;
j1=3;j2=3;
for(i=0;i<3;i++){ // По наклонным
for(j=0;j<3;j++){
if(i==j){
if(mas[i][j]==n) x1+=1; // По "главной" наклонной
if(mas[i][j]==0) {j1=j;i1=i;}
}
if((i+j)==2){ // По "побочной " наклонной
if(mas[i][j]==n) x2+=1;
if(mas[i][j]==0) {j2=j;i2=i;}
}
 
if(x1==2 && j1!=3){
 
ris_hod_Comp(i1,j1);
return true;
}
if(j2!=3 && x2==2){
 
ris_hod_Comp(i2,j2);
return true;
}
 
} // for...
} //for...
return false; // Если ничего не удалось сделать возвращаем "ложь"
}
 
void TForm1::hod_Comp(){
bool hod;
int i,j;
int prov=0;
 
prov=proverka();
switch(prov){
case -1: {vigrish_User(); return;}
case -2: {vigrish_Comp(); return;}
case -4: {vigrish_Nichia();return;}
}
 
hod=hod_kompa_func(2);
if(hod==false)hod=hod_kompa_func(1);
if(hod==false){
 
srand((unsigned)time( NULL ));
 
do{
 
i=rand()%3;
j=rand()%3;
}
while(mas[i][j]!=0);
ris_hod_Comp(i,j);
}
 
prov=proverka();
switch(prov){
case -1: {vigrish_User(); return;}
case -2: {vigrish_Comp(); return;}
case -4: {vigrish_Nichia();return;}
}
}
 
//************************************************************************************
void TForm1::initiz(){
char hod_ris3[10];
memset(hod_ris3,0,9);
strcpy(hod_ris3,"fon0.bmp");
Image1->Picture->LoadFromFile(hod_ris3);
Image2->Picture->LoadFromFile(hod_ris3);
Image3->Picture->LoadFromFile(hod_ris3);
Image4->Picture->LoadFromFile(hod_ris3);
Image5->Picture->LoadFromFile(hod_ris3);
Image6->Picture->LoadFromFile(hod_ris3);
Image7->Picture->LoadFromFile(hod_ris3);
Image8->Picture->LoadFromFile(hod_ris3);
Image9->Picture->LoadFromFile(hod_ris3);
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
mas[i][j]=0;
 
}
void TForm1::hod_User(int ris){
 
switch(ris){
case 1:{if(mas[0][0]==0){Image1->Picture->LoadFromFile(hod_ris1);
mas[0][0]=1;break;}else return;}
case 2:{if(mas[0][1]==0){Image2->Picture->LoadFromFile(hod_ris1);
mas[0][1]=1;break;}else return;}
case 3:{if(mas[0][2]==0){Image3->Picture->LoadFromFile(hod_ris1);
mas[0][2]=1;break;}else return;}
case 4:{if(mas[1][0]==0){Image4->Picture->LoadFromFile(hod_ris1);
mas[1][0]=1;break;}else return;}
case 5:{if(mas[1][1]==0){Image5->Picture->LoadFromFile(hod_ris1);
mas[1][1]=1;break;}else return;}
case 6:{if(mas[1][2]==0){Image6->Picture->LoadFromFile(hod_ris1);
mas[1][2]=1;break;}else return;}
case 7:{if(mas[2][0]==0){Image7->Picture->LoadFromFile(hod_ris1);
mas[2][0]=1;break;}else return;} case 8:{if(mas[2][1]==0){Image8->Picture->LoadFromFile(hod_ris1);
mas[2][1]=1;break;}else return;} case 9:{if(mas[2][2]==0){Image9->Picture->LoadFromFile(hod_ris1);
mas[2][2]=1;break;}else return;}
}
hod_Comp();
 
}
 
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if(BitBtn1->Caption=="Старт"){
RadioButton1->Enabled=false;
RadioButton2->Enabled=false;
BitBtn1->Caption="В меню";
Panel1->Visible=false;
initiz();
if (RadioButton1->Checked){
// ходит комп
}
return;
}
 
if(BitBtn1->Caption!="Старт"){
RadioButton1->Enabled=true;
RadioButton2->Enabled=true;
BitBtn1->Caption="Старт";
Panel1->Visible=true;
return;
}
 
// TBitmap
 
}
 
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
initiz();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
memset(hod_ris1,0,9);
memset(hod_ris2,0,9);
strcpy(hod_ris1,"krest.bmp");strcpy(hod_ris2,"nolik.bmp");
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
memset(hod_ris1,0,9);
memset(hod_ris2,0,9);
strcpy(hod_ris1,"nolik.bmp");strcpy(hod_ris2,"krest.bmp");
 
}
//---------------------------------------------------------------------------
 
 
 
void __fastcall TForm1::Image1Click(TObject *Sender)
{
hod_User(1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image2Click(TObject *Sender)
{
hod_User(2);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image3Click(TObject *Sender)
{
hod_User(3);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image4Click(TObject *Sender)
{
hod_User(4);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image5Click(TObject *Sender)
{
hod_User(5);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image6Click(TObject *Sender)
{
hod_User(6);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image7Click(TObject *Sender)
{
hod_User(7);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image8Click(TObject *Sender)
{
hod_User(8);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Image9Click(TObject *Sender)
{
hod_User(9);
}
//---------------------------------------------------------------------------
 





Про тег more не слышали?

Всего записей: 5 | Зарегистр. 03-04-2006 | Отправлено: 10:26 20-12-2006 | Исправлено: ShIvADeSt, 01:30 27-12-2006
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru