กันยายน 20, 2018, 06:41:38 pm *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: เข้าในตัว code นี้ไหมอ่ะ พอดีมีบางจุดสงสัยช่วยมาดูหน่อย T^T  (อ่าน 843 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
diggydog
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 2


| |
« เมื่อ: ธันวาคม 12, 2017, 11:27:34 pm »

อันนี้เป็น code เกี่ยวกับเกม XO ที่นี้ลองทำไปมา

รวมกับลองเอา code มาศึกษายังมีหลายๆจุดที่ยังสงสัยอยู่

พอจะช่วยได้ไหมค่ะ T^T

Code:
#include<iostream>
using namespace std;
int main()

{
    int i,j,k,row,column;
    char board[3][3];
    char notPlay = ' ';
    char aPlay = 'O';
    char bPlay = 'X';
    int currentPlayer = 1;  // PlayerA = 1, PlayerB = 2
    bool invalidPlay = true;
    int gameStatus = 0;     // Draw = 0, PlayerA win = 1, Player B win = 2

    // clear board
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            board[i][j] = notPlay;
        }
    }
    // play game

    for(i=1;i<9;i++)
    {
        cout << "Round = " << i << endl;
    // display board
        cout << "C 0 1 2 " << endl;

        for(j=0;j<3;j++)
        {
            cout << "*";
            for(k=0;k<3;k++)
            {
                cout << "t" << board[j][k];
            }
            cout << endl;
        }

        // check game status
        if(gameStatus!=0)
        {
            break;
        }

        // read input
        if(currentPlayer==1)
        {
            cout << "Player A" << endl;
        }
        else
        {
            cout << "Player B" << endl;
        }
        while(invalidPlay) // duplicate check
        {
            cout << "Select row(0-2) and column(0-2) seperate by space: ";
            cin >> row >> column;
            if (board[row][column]==notPlay) // valid play
            {
                if(currentPlayer==1) // player A
                {
                    board[row][column] = aPlay;
                }
                else
                {
                    board[row][column] = bPlay;
                }
            invalidPlay = false;
            }
        }

        // find the winner and set game status
        for(j=0;j<3;j++)
        {
        // check row
            if(board[j][0]==board[j][1]&&board[j][1]==board[j][2]&&board[j][0]!=notPlay)
            {
                gameStatus = currentPlayer;
            }

        // check column
            if(board[0][j]==board[1][j]&&board[1][j]==board[2][j]&&board[0][j]!=notPlay)
            {
                gameStatus = currentPlayer;
            }
        }

        // check cross line
        if(board[0][0]==board[1][1]&&board[1][1]==board[2][2]&&board[0][0]!=notPlay)
        {
            gameStatus = currentPlayer;
        }
        if(board[0][2]==board[1][1]&&board[1][1]==board[2][0]&&board[0][2]!=notPlay)
        {
            gameStatus = currentPlayer;
        }

        invalidPlay = true; // reset variable for next input
                            // switch player for next turn
        if(currentPlayer==1)
        {
            currentPlayer = 2;
        }
        else
        {
            currentPlayer = 1;
        }
    }

    //---------------------------------------------------------
    // display output
    //---------------------------------------------------------
    // display board
    cout << "=============================================="< cout <<endl;
    for(j=0;j<3;j++)
    {
        cout << "*";
        for(k=0;k<3;k++)
        {
            cout << "t" << board[j][k];
        }
        cout << endl;
    }
    if(gameStatus==0)
    {
        cout << "Draw" << endl;
    }
    else if(gameStatus==1)
    {
        cout << "Player A wins" << endl;
    }
    else
    {
        cout << "Player B wins" << endl;
    }


    return 0;
}
บันทึกการเข้า
diggydog
Newbie
*
ออฟไลน์ ออฟไลน์

กระทู้: 2


| |
« ตอบ #1 เมื่อ: ธันวาคม 13, 2017, 12:01:22 am »

อันนี้ตรงบรรทัดที่ 16 ถึง 22

ทำไมพอลบออกไปแล้วถึงมี ภาษาไทยมาแทนอ่ะ

ลืมบอกไปว่าใช้ codeblock นะ

Code:
for(i=0;i<3;i++)  
    {  
        for(j=0;j<3;j++)  
        {  
            board[i][j] = notPlay;  
        }  
    }  
บันทึกการเข้า
ShadowMan
Administrator
Hero Member
*****
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 8272


ShadowWares


| |
« ตอบ #2 เมื่อ: มกราคม 15, 2018, 06:22:10 pm »

ขออภัย ไม่เข้าใจคำถามครับ
บันทึกการเข้า

By SDW: Do No Wrong Is Do Nothing
          If you want to increase your success rate, double your failure rate
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป: