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

Tải DevExpress 16.1.2 full mới nhất, hướng dẫn cài đặt

Tải DevExpress 16.1.2 full mới nhất, hướng dẫn cài đặt

Ban đầu, DevExpress phát triển UI Controls cho Borland Delphi/C++ Builder, ActiveX Controls cho Microsoft Visual Studio. Hiện nay, DevExpress hướng tới lập trình viên sử dụng Delphi/c++ Builder, Visual Studio và HTML5/Javascript. DevExpress là bộ công cụ hữu ích hỗ trợ các lập trình…

[Java cơ bản] Bài 28: Final

[Java cơ bản] Bài 28: Final

Bài hôm nay sẽ giới thiệu tới các bạn từ khóa Final trong Java. Final được sử dụng cho cả khái niệm class, khái niệm phương thức và thuộc tính.

[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 9: Các kiểu dữ liệu trong Java

[Java cơ bản] Bài 9: Các kiểu dữ liệu trong Java

Các kiểu dữ liêu cơ bản trong java gồm: byte: Dùng để lưu kiểu dữ liệu số nguyên có kích thước là 1byte (8 bit). Phạm vi biểu diễn từ -128 đến 127 giá trị mặc định là 0. char: Dùng để lưu kiểu dữ…

Bình luận ()