30/09/2018, 16:54

Game oẳn tù tì C++

Trò chơi oẳn tù tì" trò chơi có 2 người chơi mỗi người dùng tay để hiện thị 1 trong 3 công cụ sau: kéo bao và búa quy tắc như sau:
kéo thắng bao
bao thắng búa
búa thắng kéo
viết trương trình mô phỏng cho 2 người chơi và người chơi với máy.
Đây là code do mình viết dùng if else nhưng thấy nó không ổn cho lắm mọi người góp ý thêm cho mình để thuật toán tốt hơn tí nha, chỉ là BT đơn giản nhưng muốn học hỏi các anh chị đi trước về tư duy lập trình.

> int main()
    {
	int n;
	int a = 1, b =3;
	cout << "Moi ban chon :";
	cout << "
1.Keo";	//1 vs 3 thì trả về 1
	cout << "
2.Bua";	//2 vs 1 thì trả về 2
	cout << "
3.Bao";	// 3 vs2 thì trả về 3
    nhap: do{
		cout << "
 Nguoi choi chon :";
		cin >> n;
		if (n < 0 || n>3)
			cout << "
Ban nhap sai. Moi ban kiem tra lai";
	} while (n < 0 || n>3);
	srand(time(0));
	int x = a + rand() % (b - a + 1);
	if (x == n)
	{
		cout << "Ban da hoa voi may";
		goto nhap;
	}
	if (x == 1 && n == 3 || (x == 2 && n == 1) || (x == 3 && n == 2))
		{
			cout << x;
			cout << "
Ban da Thua";
		}

		
	else 
	{
		cout << x;
		cout << "May da thang";
	}
	
	getch();
	return 0;
}
Quân Lê viết 18:59 ngày 30/09/2018

Mình cũng đang học code C+ thôi. Không cao siêu lắm nhưng mình thấy vài chỗ như này :
+lệnh nhảy goto khuyến khích nên tránh đi trong lập trình C/C+. Bản chất vì sao nên bỏ thì mình hóng cao nhân vào chỉ giáo.

  • chỗ x = a + rand() %(b - a + 1); Ở đây bạn đã biết rõ giá trị a và b rồi. Và mục đích là muốn lấy x thuộc hoảng 1 - > 3. Tại sao không gán thẳng là x = rand() % 3 + 1;
  • các điều kiện của bạn chưa có kết luận gì khi người chơi thắng(khi đánh với máy) !
Bùi Trung Thông viết 19:07 ngày 30/09/2018

lệnh nhảy goto khuyến khích nên tránh đi trong lập trình C/C+. Bản chất vì sao nên bỏ thì mình hóng cao nhân vào chỉ giáo.

chương trình này còn đơn giản nên xài cũng không sao, chương trình lớn quá nó cứ nhảy lung tung thì sao “tóm” nó cho được

Nguyễn Duy Khánh viết 18:56 ngày 30/09/2018
#include <iostream>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
using namespace std;

int main() {
	srand(time(0));
	char c = 0;
	char a[3];
	a[0] = 'K';
	a[1] = 'B';
	a[2] = 'G';
	int d = 0;
	
	X:
	cout << "\t\t\t\tDIEM : " << d << "\n\n\n";
	int m = rand() % 3;
 	if (m == 0) {
	 	cout << "Keo !" << endl ;
		c = getch();
		if (c == 98) { cout << "Ban thang roi !" ; d++;
		Sleep(1000);
		system("cls"); goto X; }
		else cout << "Ban thua roi !" ;
		
		}

	if (m == 1) {
		cout << "Bua !" << endl;
		c = getch();
		if (c == 103) { cout << "Ban thang roi !" ; d++;
		Sleep(1000);
		system("cls"); goto X; }
		else cout << "Ban thua roi !" ;
		
		}

	if (m == 2) {
		cout << "Giay !" << endl;
		c = getch();
		if (c == 107) { cout << "Ban thang roi !" ; d++;
		Sleep(1000);
		system("cls"); goto X; }
		else cout << "Ban thua roi !" ;
		
		}
}

Cái này viết lâu lắm r. Chơi với máy
Quy định : k - > kéo
b - > búa
g - > giấy

Ema viết 19:03 ngày 30/09/2018

các bro có code bằng PHP không?

Bài liên quan
0