thiet ke website

[Lập trình C++] Bài toán rơi chữ và bắt chữ!

Đây là một bài toán dạng game đơn giản, từng chữ cái 1 rơi xuống, và công việc của chúng ta là nhập vào chữ cái đang rơi trước khi nó chạm vào vạch… và tất nhiên là phải nhập đúng rồi, các bạn có thể tham khảo đoạn code dưới đây của mình… Nếu có thắc mắc gì có thể để lại bình luận bên dưới và mình sẽ giải đáp 🙂

rơi chữ c++

c++ bài toán rơi chữ

Sau đây là source code của em nó

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <ctime>

using namespace std;

void gotoxy(short x,short y)
{
	HANDLE hConsoleOutput;
	COORD Cursor_an_Pos = {x,y};
	hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hConsoleOutput,Cursor_an_Pos);
}

void layout(){
	gotoxy(0,0);
	for(int i=0;i<=5;i++) cout << "              \n";
	gotoxy(0,0);
	cout << " ";
	for(char i='A';i<='Z';i++)
		cout << " " << i;
	gotoxy(0,20); cout << "_______________________________________________________";
}

int chardown(int s){
	srand(time(NULL));
	int col=rand()%26+1;
	int i=0;
	while(i<20&&!kbhit()){
		gotoxy(col*2,i);
		cout << " ";
		gotoxy(col*2,i+1);
		cout << char(64+col);
		Sleep(s);
		i++;
	}
	gotoxy(col*2,i); cout << " ";
	gotoxy(col*2,0); cout << char(64+col);
	if(i<20){
		char check=getch();
		if(check==char(96+col)||check==char(64+col))
		return 1;
		else return 0;
	} else {
		gotoxy(col*2,20);
		cout << "_";
		return 0;
	}
}

int main(){
	int lv;
	cout << "1: Level 1\n2: Level 2\n3: Level 3\n4: Level 4\n5: Level 5\n";
	cout << "Nhap level: "; cin >> lv;
	layout();
	int d1=0,d2=0,speed=500/lv;
	while(d1<20&&d2<20&&speed>0){
		if(chardown(speed)==1){
			d1++;
			gotoxy(0,22);
			cout << "Ban duoc " << d1 << " diem!\n";
		}else{
			d2++;
			gotoxy(0,23);
			cout << "May duoc " << d2 << " diem!\n";
		}
		speed-=3;
	}
	gotoxy(0,24);
	system("pause");
	return 0;
}

Đây chỉ là thuật toán cơ bản, chưa hoàn thành tối ưu nên có góp ý hoặc thắc mắc gì các bạn bình luận bên dưới giúp mình nhé! cảm ơn ^^! Chúc các bạn học tập vui vẻ!

Thiet ke logo

Bài viết liên quan

Những lập trình viên nổi tiếng nhất đương đại là ai?

Những lập trình viên nổi tiếng nhất đương đại là ai?

Những ứng dụng, trò chơi mà bạn dùng hàng ngày đều được viết bởi những lập trình viên. Những nền tảng hệ điều hành, hệ thống phần cứng, các trang web hay toàn bộ thế giới Internet cũng là công sức nghiên cứu trong thời…

[Java cơ bản] Bài 25: Access modifiers

[Java cơ bản] Bài 25: Access modifiers

Video clip này sẽ giới thiệu tới các bạn về Access modifiers trong lập trình Java, các bạn hãy coi video, nếu có thắc mắc gì có thể để lại comment, chúc các bạn vui vẻ!

[Java cơ bản] Bài 16: Cấu trúc vòng lặp While

[Java cơ bản] Bài 16: Cấu trúc vòng lặp While

Vòng lặp while tương tự vòng lặp for chỉ khác nhau về cách dùng. While được sử dụng khi ta không biết chính xác số lượng cần lặp còn for thì ta đã biết chính xác về số lượng lặp. Các bạn hãy xem chi…

[Java cơ bản] Bài 3: Giới thiệu, cài đặt NetBeans và Eclipse

[Java cơ bản] Bài 3: Giới thiệu, cài đặt NetBeans và Eclipse

Video này sẽ hướng dẫn các bạn cách cài đặt NetBeans, Eclipse… sau đó giới thiệu những chức năng cơ bản của 2 ứng dụng này! Chúc các bạn học tập vui vẻ!

Bình luận ()