Hiển thị kết quả từ 1 đến 2 / 2

Chủ đề: lap trinh socket

  1. #1
    Tham gia
    03-12-2008
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts

    lap trinh socket

    mình mới học lập trình c nhưng môn mạng máy tính thầy mình cho lam 1 đồ an, minh có vài chỗ còn chưa làm được, bạn nào biết giúp mình với, đề của mình cụ thể như sau
    Viết chương trình cho phép Server làm trọng tài cho trò chơi “đua xe” giữa N client (N do
    server qui định trước, 1 <= N <=10 ). Trò chơi được thực hiện như sau:
    1. Với mỗi Client: Client sẽ đăng ký với Server nickname mà mình sử dụng ngay sau khi kết
    nối thành công với Server. Lưu ý: các nickname không được đặt trùng nhau và được tạo
    thành từ các ký tự ‘a’…’z’, ‘A’…’Z’, ‘0’..’9’, ‘_’ và dài không quá 10 ký tự; nếu có client
    đặt trùng nickname với client khác, thì server yêu cầu client đăng ký lại nickname.
    2. Khi đã nhận đủ kết nối của N clients, server sẽ gởi chiều dài, đặc điểm đường đua về cho
    mọi client (Yêu cầu chiều dài đường đua phải lớn hơn 20 ô và nhỏ hơn 100 ô, ví dụ 30 ô).
    Chiều dài đường đua sẽ do người dùng trên server nhập, ô xuất phát sẽ tính là ô số 1. Ngoài
    ra, server sẽ báo cho mỗi client biết thứ tự kết nối của client đó. Sau đó server sẽ chọn ngẫu
    nhiên một người đi trước, thứ tự đi sẽ bắt đầu từ người đi trước rùi tăng dần và lặp lại (Ví dụ
    có 4 người chơi đánh sô là 0,1,2,3, server chọn ngẫu nhiên người 1 đi trước thì lượt đi tiếp
    theo sẽ tới người 2, người 3 và quay về người 0), khi đã có thứ tự đi server sẽ ra hiệu cho các
    Client bắt đầu trò chơi.
    3. Với mỗi lượt chơi:
    i. Các client sẽ lần lượt sẽ chọn random một số từ (1-6) (bấm một phím để chọn một
    số random, hiện số này ra màn hình của client) và gửi về cho server. Server sẽ dựa
    trên số random mà client gửi về sẽ đưa xe của client tiến đến đúng ô, kiểm tra loại ô
    nếu ô của client di chuyển vào, nếu là:
    · Ô ổ gà: thì dựa vào giá trị trừ ( 1<= n<=6) của ô đó mà client sẽ quay
    ngược lại n ô, nếu giá trị trừ lớn hơn vị trí mà xe đó dang đứng thì đưa xe
    đó trở lại vạch xuất phát.
    · Ô nhiên liệu: thì dựa vào giá trị tiến (1<= n<=6) của ô đó mà client sẽ tiến
    thêm n ô
    · Ô bình thường: không có gì xảy ra.
    · Sau khi server đã cho client lùi hoặc tiến n ô thì sẽ dừng lại tại ô mới đến
    cho dù đó là ô bình thường hay ô ổ gà, nhiên liệu
    · Ví dụ:
    o Có 1 đường đua gồm 7 ô trong đó ô 1 là ô nhiên liệu có giá trị 3, ô
    3 là ô ổ gà có giá trị là 4 và ô 5 là ô ổ gà có giá trị 2
    o Giả sử client đang đứng ô 2 đổ được giá trị 3 sẽ đến ô 5, tại ô 5 là
    ô ổ gà có giá trị là 2 client sẽ lùi lại 2 bước và đến ô 3 và client sẽ
    dừng ở ô này mặc dù nó là ô ổ gà có giá trị 4
    ii. Sau khi một client đã đi xong lượt thì server sẽ cập nhật tình hình đường đua cho
    toàn bộ các client (thông báo về vị trí mới của client cho toàn bộ các client khác).
    4. Trò chơi kết thúc khi có một client đi được số ô lớn hơn hoặc bằng với số ô của đường đua,
    Server sẽ thông báo đến tất cả các client về client dành chiến thắng trong trò chơi.
    5. Kết thúc trò chơi, Server tiếp tục nhận kết nối của N client khác và bắt đầu trò chơi mới.
    Lưu Ý: Trong đường đua phải có n ô loại ổ gà và nhiên liệu với ( 1/3 tổng số ô<=n <= 2/3
    tổng số ô)
    mình đã làm được phần đăng kí nickname,còn phần ô ổ gà và ô nhiên liệu mình chưa làm được.mong được các bạn giúp đỡ.thankssss
    Quote Quote

  2. #2
    Tham gia
    03-12-2008
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts

    đệ quy tuyến tính và đệ quy nhị phân

    trong 1 bai tập có yêu cầu như thế này
    cho cấu trúc sinh viên như sau
    struct SINHVIEN
    {
    float diemtoan;
    float diemvan;
    }
    tính trung bình cộng điểm toán và văn dùng phương pháp đệ quy tuyến tính và đệ quy nhị phân.
    minh mơi học lập trình c
    mình không hiểu lám về đệ quy bạn nao biết giúp mình với.thanksss

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •