Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: [ Solved ]Hỏi về game HangMan

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    16

    Mặc định [ Solved ]Hỏi về game HangMan

    Code:
    #include <iostream>
    using namespace std;
    #include <string>
    #include <cctype>
    void DrawGallows(int );
    int main()
    {
    	char solution[20];	//holds solution
    	char blank[20];		//holds "*"'s for unsolved letters
    	int counter = 0;	//general-use counter
    	int right = 0;		//1 = right guess, 0 = wrong guess.
    	char guess;
    
    	cout<<"Enter phrase 20 chars or less."<<endl;
    	cin.getline(solution, 20);
    	int puzzLength = strlen(solution);		//finds lengtrh of puzzle, stores INT value to puzzlength
    	
    
    
    
    		//convert puzzle to full uppercase
    	for (counter = 0; counter < puzzLength; counter++){
    		solution[counter] = toupper(solution[counter]);
    	}
    	//done converting
    		
    	
    	strcpy(blank, solution);				//copy solution to the 'blank' array
    	
    	for (counter = 0; counter < puzzLength; counter++) {		//converts characters to *'s to represent blanks
    
    		if (isalnum(solution[counter])) blank[counter] = '*';
    		else blank[counter] = solution[counter];
    		
    	}	//closes for loop
    
    	while (solution != blank) { //play game until the 'blank' puzzle becomes the 'right' answer
    		
    
    		cout<<"The current 'blank' puzzle is: "<<blank<<"."<<endl;
    		cout<<"Enter a guess."<<endl;
    		cin>>guess;
    		guess = toupper(guess);
    
    
    		//cbeck guess!
    		int State =1; 
    		for (counter = 0; counter <= puzzLength; counter++) {
    	
    				if (guess == solution[counter]) { 
    					blank[counter] = guess;		//fill in the puzzle with the letter
         
    				}
    	        if (guess != solution[counter])
    	        {
                          State++;
                        DrawGallows(State);
                          }
    		}		//close loop, done checking guess
    	
    	}	//game is over.
    
    	cout<<"Winner!";
    	cin.get();
    	return 0;
    }
    void DrawGallows(int State)
    {
     if(State==6)
     {
      // The \\ will translate as '\' because it is a special char
      cout<<endl<<endl
       <<"   +----+     "<<endl
       <<"   |    |     "<<endl
       <<"   |    O     "<<endl
       <<"   |   /|\\   "<<endl
       <<"   |   / \\   "<<endl
       <<"   |Your Dead "<<endl
       <<"  ============"<<endl<<endl;
     }
     else if(State==5)
     {
      cout<<endl<<endl
       <<"   +----+  "<<endl
       <<"   |    |  "<<endl
       <<"   |    O  "<<endl
       <<"   |   /|\\ "<<endl
       <<"   |     \\ "<<endl
       <<"   |       "<<endl
       <<"  ============"<<endl<<endl;
     }
     else if(State==4)
     {
      cout<<endl<<endl
       <<"   +----+  "<<endl
       <<"   |    |  "<<endl
       <<"   |    O  "<<endl
       <<"   |   /|\\ "<<endl
       <<"   |       "<<endl
       <<"   |       "<<endl
       <<"  ============="<<endl<<endl;
     }
     else if(State==3)
     {
      cout<<endl<<endl
       <<"   +----+  "<<endl
       <<"   |    |  "<<endl
       <<"   |    O  "<<endl
       <<"   |   /|  "<<endl
       <<"   |       "<<endl
       <<"   |       "<<endl
       <<"  ============="<<endl<<endl;
     }
     else if(State==2)
     {
      cout<<endl<<endl
       <<"   +----+  "<<endl
       <<"   |    |  "<<endl
       <<"   |    O  "<<endl
       <<"   |    |  "<<endl
       <<"   |       "<<endl
       <<"   |       "<<endl
       <<"  ============="<<endl<<endl;
     }
     else if(State==1)
     {
      cout<<endl<<endl
       <<"   +----+  "<<endl
       <<"   |    |  "<<endl
       <<"   |       "<<endl
       <<"   |       "<<endl
       <<"   |       "<<endl
       <<"   |       "<<endl
       <<"  ============="<<endl<<endl;
     }
    }
    mình không hiểu tại sao thay vì nó làm 1 trường hợp vẽ hình thôi, đàng này nó quất nguyên cả dãy chạy luôn, cám ơn

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Code:
    for (counter = 0; counter <= puzzLength; counter++) {
    	
    				if (guess == solution[counter]) { 
    					blank[counter] = guess;		//fill in the puzzle with the letter
         
    				}
    	        if (guess != solution[counter])
    	        {
                          State++;
                        DrawGallows(State);
                          }
    		}		//close loop, done checking guess
    	
    	}	//game is over.
    cậu thêm break; vào là được, cần phải thoát khỏi for khi gặp 1 trường hợp sai
    code ra gió bão

Các đề tài tương tự

  1. Web game:choigameonline.biz-Chơi game online, game vui, game mini, game flash
    Gửi bởi timkiemvn002 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 27-08-2014, 11:08 AM
  2. [Help] Cần giúp đỡ về tạo website có game Hangman sử dung SQL Server Database
    Gửi bởi vunguyet trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 19-04-2013, 10:30 PM
  3. [Game: HangMan Deluxe v1.0 - by bvKim]
    Gửi bởi bvKim trong diễn đàn Dự án & Source code VC++
    Trả lời: 16
    Bài viết cuối: 19-10-2010, 06:12 PM
  4. [ Solved ]Help về trình game mô phỏng các môn thể thao olympic 2008
    Gửi bởi G-Dragon trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 12-09-2008, 09:10 PM

Quyền hạn của bạn

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