วันอังคารที่ 9 ตุลาคม พ.ศ. 2555

โค้ด[ภาษาซี] เกมส์ xo

เกมส์ xo โคยจะมีผู้เล่นสอนคนสลับกันเล่น โดย x คือผู้เล่นคนแรกจะเริ่มก่อน แล้วคนต่อไปก็ตมา จะสลับไปมาจนกว่าจะมีผู้ชนะตรงตามเงื่อนไขของเกมส์


Code:

#include "stdio.h"
#include "conio.h"

void main(){
     int i = 0;
     int player = 0;
     int go = 0;
     int row = 0;
     int column = 0;
     int line = 0;
     int winner = 0;
     char board[3][3] = {
         {'1','2','3'},
         {'4','5','6'},
         {'7','8','9'}
       };
     for( i = 0; i<9 && winner==0; i++)
     {
     clrscr();
     printf("\n\n");
     printf("\t\t\t\t %c | %c | %c\n", board[0][0], board[0][1], board[0][2]);
     printf("\t\t\t\t---+---+---\n");
     printf("\t\t\t\t %c | %c | %c\n", board[1][0], board[1][1], board[1][2]);
     printf("\t\t\t\t---+---+---\n");
     printf("\t\t\t\t %c | %c | %c\n", board[2][0], board[2][1], board[2][2]);
     player = i%2 + 1;

     do{
          printf("\n\t\tPlayer %d, please enter the number [your] %c: ", player,(player==1)?'X':'O');
          scanf("%d", &go);
     row = --go/3;
     column = go%3;
     }while(go<0 || go>9 || board[row][column]>'9');
     board[row][column] = (player == 1) ? 'X' : 'O';

     if((board[0][0] == board[1][1] && board[0][0] == board[2][2]) ||
          (board[0][2] == board[1][1] && board[0][2] == board[2][0]))
          winner = player;
     else
     for(line = 0; line <= 2; line ++)
     if((board[line][0] == board[line][1] && board[line][0] == board[line][2])||
          (board[0][line] == board[1][line] && board[0][line] == board[2][line]))
          winner = player;
      }
     clrscr();
     printf("\n\n");
     printf("\t\t\t\t %c | %c | %c\n", board[0][0], board[0][1], board[0][2]);
     printf("\t\t\t\t---+---+---\n");
     printf("\t\t\t\t %c | %c | %c\n", board[1][0], board[1][1], board[1][2]);
     printf("\t\t\t\t---+---+---\n");
     printf("\t\t\t\t %c | %c | %c\n", board[2][0], board[2][1], board[2][2]);
     if(winner == 0)
     printf("\n\t\t\tHow boring, it is a draw\n");
     else
          printf("\n\t\tCongratulations, player %d, YOU ARE THE WINNER!\n", winner);
}

Output:

เริ่มต้นเกมส์ ฝ่าย x
เริ่มต้นเกมส์ ฝ่าย o
ถ้า x เป็นฝ่ายชนะ
ถ้า o  เป็นฝ่ายชนะ

15 ความคิดเห็น:

  1. ไม่ระบุชื่อ13 พฤษภาคม 2556 09:23

    พี่ค่ะ ทำไมมันรันไม่ได้อ่า

    ตอบลบ
  2. DEV C++ ครับ เวอชั่น 4.9.9.2 ครับ run ไม่ได้ครับ

    ตอบลบ
    คำตอบ
    1. ไม่ระบุชื่อ16 กันยายน 2556 00:38

      ลองลบ void ออกดูน่ะ

      ลบ
  3. ไม่ระบุชื่อ24 พฤษภาคม 2556 16:22

    ใช้ devc ครับ รันไม่ได้ เขาบอกว่าผิดที่บรรทัด void main() { และบรรทัด clrscr(); อ่ะครับ แก้ยังไงดีครับ

    ตอบลบ
    คำตอบ
    1. ใช่ครับมันจะมีปัญหาแบบนี้ละครับของ dev คือมันใส่ไม่ตรองที่นั้นและครับลอง turbo cดีกว่าครับ

      ลบ
    2. ใช่ครับมันจะมีปัญหาแบบนี้ละครับของ dev คือมันใส่ไม่ตรองที่นั้นและครับลอง turbo cดีกว่าครับ

      ลบ
    3. ไม่ระบุชื่อ10 กรกฎาคม 2556 01:27

      ของผมใช้ codeblock อยู่ ลองแก้บรรทัดนั้นเป็น system("cls"); ได้ไหมหนอออ

      ลบ
    4. ไม่ระบุชื่อ11 พฤศจิกายน 2556 09:31

      ถ้าใช้ devc ลองลบ clrscr(); กับ void ที่ void main() ดูครับ ของผมทำเเล้วrunได้ปกติดี

      ลบ
  4. ผมรันได้แล้วต้องลบบางตัวออกนิดหน่อย ขอบคุณมากๆครับ

    ตอบลบ
    คำตอบ
    1. ไม่ระบุชื่อ9 กันยายน 2556 22:49

      ลบตัวไหนบ้างอ่าครับ

      ลบ
  5. พี่ค้ะอธิบายแต่ล่ะบรรทัดให้หน่อยได้มั้ย อยากทราบว่าแต่ล่ะบรรทัดมันทำงานยังไง

    ตอบลบ