Hướng dẫn Cách Tải & Sử Dụng Phần Mềm Luyện Thi Lý Thuyết Ô Tô Và Mô Tô Trên Linux (fedora)

Tải bản cài đặt trên các trang khác ví dụ  https://hoclaixemoto.com/phan-mem-luyen-thi-sat-hach-ly-thuyet-lai-xe/ Cài Wine Fedora hiện dùng Wine từ repository chính: sudo dnf install wine Kiểm tra: wine --version Khởi tạo Wine Prefix winecfg Lần đầu chạy Wine sẽ tạo: ~/.wine Nếu muốn làm lại từ đầu: rm -rf ~/ .wine winecfg Cài Winetricks sudo dnf install winetricks Kiểm tra: winetricks --version Cài các thành phần cần thiết Đối với các ứng dụng .NET Framework: winetricks dotnet48 Quá trình này khá lâu, Wine sẽ mở nhiều cửa sổ cài đặt. Nếu gặp lỗi prefix cũ, tạo prefix mới: rm -rf ~/ .wine wineboot winetricks dotnet48 Cài thêm các runtime thường gặp Nhiều ứng dụng game hoặc tool Windows cần thêm: winetricks vcrun2015 winetricks vcrun2019 winetricks corefonts Hoặc: winetricks allfonts Chạy chương trình wine TuluyenSathachLyThuyet .exe

Cờ caro đơn giản 2 người chơi - Code C

- Đây là chương trình đánh cờ caro hai người (Không có máy đánh tự động). Đơn giản là mình kiểm tra coi ván cờ đã kết thúc hay chưa. Chúng ta sử dụng 1 mảng 2 chiêu để lưu trạng thái của ván cờ với quy ước, 0: chưa có người đánh, 1: người thứ nhất đánh, 2: người thứ 2 đánh. Hoặc theo một cách quy ước nào đó mà bạn thik.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#define DONG 22
#define COT 66


int Mang[DONG][COT]={0};
int x,y,Luot=1, Luot1=0, Luot2=0;
void KhoiDong();
void Xuat();
void trangtri();
int KiemTra();
void DocPhim();
void InLuot();
void InSoLuot();
void IThang();
void IIThang();
void resetMang();


void main()
{   char cha;


    do
    {
    clrscr();
    resetMang();
    //KhoiDong();
    clrscr();
    trangtri();
    InLuot();
    InSoLuot();
    DocPhim();
    textcolor(2);
    clrscr();
    printf ("\n\n\n\n\n\n\n\n\t\tBan co muon choi lai khong? \n\t\t\t->An phim bat ki de choi luot moi.\n\t\t\t->An phim Esc de ket thuc. ");
    cha=getch();
    }while (cha !=27);
}


void KhoiDong()
{
    textcolor(11);
    char text[]={'C','o',' ','C','A','R','O',};
    for (int i=1; i<80 ; i++)
    {
        gotoxy(i, 12);
        int cuoi;
        if ( i<=74)
            cuoi=6;
        else
            cuoi =80-i;
        for (int j=0; j<=cuoi; j++)
            cprintf ("%c", text[j]);
        gotoxy(i-1, 12);
        cprintf (" ");
        delay(200);
    }
}
void Xuat()
{
    for (int yy=0; yy< DONG; yy++)
        for (int xx=0; xx<COT; xx++)
        {
            switch(Mang[yy][xx])
            {
                case 1: textcolor(RED);gotoxy(xx+2,yy+2);cprintf ("X");break;
                case 2: textcolor(BLUE);gotoxy(xx+2,yy+2);cprintf ("O");break;
            }
        }
    //gotoxy(1,1);
}
void trangtri()
{
    textcolor(6);
    int ch;
    for (int yy=1; yy<25; yy++)
    {
        for (int xx=1; xx<=80; xx++)
        {
                 if (xx==69 && yy==3)       ch=199;
            else if (xx==80 && yy==3)          ch=182;
            else if (xx>69 && xx<80 && yy==3)ch=196;
            else if (xx>1  && xx<80 && (yy==1 || yy==24) && xx!=69) ch=205;
            else if (xx==1 && yy==1 )       ch=201;
            else if (xx==1 && yy==24)       ch=200;
            else if (xx==80&& yy==24)       ch=188;
            else if (xx==80&& yy==1 )       ch=187;
            else if ((xx==1||xx==80 || xx==69) && yy>1 && yy<24 ) ch=186;
            else if (xx==69 && yy==1 )       ch=203;
            else if (xx==69 && yy==24)      ch=202;
            else ch=0;
            cprintf("%c",ch);
        }
    }
    gotoxy(70,2);
    textcolor(GREEN);
    cprintf("%c%c%c",176,176,176);
    textcolor(RED);
    cprintf("CARO");
    textcolor(GREEN);
    cprintf("%c%c%c",176,176,176);
    gotoxy(70,20);
    printf ("=>Luot: ");
    gotoxy(70,8);
    printf ("Luot I:");
    gotoxy(70,14);
    printf ("Luot II:");


}
int KiemTra()
{
    for (int i=0; i<DONG; i++)
    {
        for (int j=0; j<COT; j++)
        {
            if (Mang[i][j] != 0)
            {    int doc=1, ngang =1, cheophu=1, cheochinh=1;
            //KT doc


                for (int k=1; k<5; k++)
                {
                    if ((i+k >=DONG) || (Mang[i+k][j] !=Mang[i][j]))
                        doc=0;
                    if ((j+k>=COT) || (Mang[i][j+k]!=Mang[i][j]))
                        ngang=0;
                    if ((i+k>=DONG && j+k>=COT) || (Mang[i+k][j+k]!=Mang[i][j]))
                        cheochinh=0;
                    if ((i+k>=DONG && j-k<0) || (Mang[i+k][j-k] != Mang[i][j]))
                        cheophu=0;
                }
                if (doc == 1 || ngang ==1 || cheochinh ==1 || cheophu==1)
                {
                    return Mang[i][j];
            }
            }
        }
    }
    return 0;
}
void DocPhim()
{
    x=34; y=12;
    char c='a';
    gotoxy(x,y);
  do
    {
    c = getch();
    if (c == 0)
    {
      c = getch();
    }
        switch(c)
        {
      case 75:   if (x>2)
            {
              x--;
              gotoxy(x,y);
            }
            break;
      case 77:   if (x<68)
            {
              x++;
              gotoxy(x,y);
            }
            break;
      case 72:   if (y>2)
            {
              y--;
              gotoxy(x,y);
            }
            break;
      case 80:   if (y<23)
            {
              y++;
              gotoxy(x,y);
            }
            break;
      case 32:   if (Mang[y-2][x-2]!=0)
            {
                            printf("%c",7);
                        }
                        else
                        {
                            Mang[y-2][x-2] = Luot;


                            if (Luot == 1)
                            {   Luot1++;
                                Luot=2;
                            }
                            else
                            {  Luot2++;
                                Luot=1;
                            }
                            InSoLuot();
                            InLuot();
                            InSoLuot();
                            Xuat();
                            int KQ=KiemTra();
                            if (KQ == 1)
                            {
                                IThang();
                                return;
                            }
                            else if (KQ == 2)
                            {
                                IIThang();
                                return ;
                            }
                        gotoxy(x,y);
                     }
                    break;
        }
    } while (c!= 27);
}
void InLuot()
{
    textcolor(1);
    gotoxy(79,20);
    printf ("%d",Luot);


}
void InSoLuot()
{
    textcolor(1);
    gotoxy(78,8);
    printf ("%-2d",Luot1);
    gotoxy(78,14);
    printf ("%-2d",Luot2);
}
void IThang()
{
    gotoxy(10,23);
    textcolor(RED);
    cprintf("CUOC CHOI KET THUC! NGUOI CHOI THU NHAT DA THANG!");
    getch();
}
void IIThang()
{
    gotoxy(10,23);
    textcolor(BLUE);
    cprintf("CUOC CHOI KET THUC! NGUOI CHOI THU HAI DA THANG!");
    getch();
}
void resetMang()
{
    for (int i=0; i<DONG; i++)
        for (int j=0;j<COT; j++)
        {
            Mang[i][j]=0;
        }
}

Lưu ý: Các bạn phải dịch đoạn code trên bằng Borland C/C++, hoặc Turbo C++, nó không thể chạy được trên Visual C

Nhận xét

Bài đăng phổ biến từ blog này

Gọi hàm nhiều cấp trong MIPS

Đệ quy trong MIPS