C 언어 는 간단 한 삼자 기 프로그램 을 실현 한다.

9765 단어 C 언어삼자 장기
C 언어 를 사용 하여 간단 한 삼자 기 프로그램 을 실현 하 는 것 은 주로 2 차원 배열 에 대한 운용 이다.우 리 는 머리 파일 하나,소스 파일 두 개가 필요 하 다.
game.h/함수 포함 성명,매크로 정의
test.c//주 함수 포함,함수 호출
game.c/함수 정의 포함
전체적인 사고 방식.
1.간단 한 삼자 기 프로그램 을 완성 하려 면 먼저 2 차원 배열 을 만 들 고 배열 초기 화 를 완성 해 야 합 니 다.

//         ,          
#define ROW 3 // 
#define COL 3 // 

char arr[ROW][COL] = { 0 };
Arr_init(arr, ROW, COL); //     
2.배열 의 초기 화 를 마 친 후에 우 리 는 삼자 기 에 필요 한 바둑판 을 인쇄 해 야 한다.

void Print_che(char arr[ROW][COL], int row, int col) //    
{
 int i, j;
 for(i = 0; i < row; i++)
 {
 for(j = 0; j < col; j++)
 {
 printf(" %c ", arr[i][j]);
 if (j < col - 1)
 printf("|");
 }
 printf("
"); for(j = 0; j < col ; j++) { if (i < row - 1) printf("___"); else printf(" "); if (j < col - 1) printf("|"); } printf("
"); } }
3.바둑판 을 인쇄 한 후에 우 리 는 바둑 을 두 려 고 합 니 다.게임 의 난이 도 를 높이 기 위해 우 리 는 컴퓨터 를 먼저 가게 합 니 다.컴퓨터 가 가 는 문 자 는'0'입 니 다.

void Computer_walk(char arr[ROW][COL], int row, int col) //   
{
 int x, y;
 printf("       
"); while(1) { x = rand() % row; // y = rand() % col; if (arr[x][y] == ' ') // { arr[x][y] = '0'; break; } } }
4.컴퓨터 가 끝나 면 플레이어 가 갈 차례 입 니 다.게이머 가 가 는 문 자 는'X'입 니 다.

void Player_go(char arr[ROW][COL], int row, int col) //   
{
 int x, y;
 printf("       :");
 while (1)
 {
 scanf("%d %d", &x, &y);
 if ((x > 0 && x <= row + 1) && (y > 0 && y <= col + 1)) //       
 {
 if (arr[x - 1][y - 1] == ' ')
 {
 arr[x - 1][y - 1] = 'X';
 break;
 }
 else
 printf("    ,     :");
 }
 else
 printf("    ,     :");
 }
}
5.컴퓨터 와 유 저 는 매번 걸 을 때마다 승 부 를 판단 해 야 한다.

char Judge_win(char arr[ROW][COL], int row, int col) //    
{
 int i, j;
 int count = 0;
 for (i = 0; i < row; i++)
 {
 if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][0] != ' ') //   
 return arr[i][1];
 if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[0][i] != ' ') //   
 return arr[1][i];
 if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[1][1] != ' ') //    
 return arr[1][1];
 if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[1][1] != ' ') //    
 return arr[1][1];
 }
 for (i = 0; i < row; i++)//  
 {
 for (j = 0; j < col; j++)
 {
 if (arr[i][j] == 'X' || arr[i][j] == '0') //    ,            
 {
 count++;
 if (count == 9)
 return 'Q';
 }
 }
 }
 return 'A';
}
대체적인 사 고 를 확정 한 후에 우 리 는 프로그램의 절차 부분 을 완성 하여 우리 가 만 든 파일 에 넣 습 니 다.
코드 는 다음 과 같 습 니 다:
game.h/함수 포함 성명,매크로 정의

#ifndef _GAME_H__
#define _GAME_H__

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>

#define ROW 3 // 
#define COL 3 // 

void Arr_init(char arr[ROW][COL], int row, int col); //     
void Print_che(char arr[ROW][COL], int row, int col);//    
void Player_go(char arr[ROW][COL], int row, int col);//   
void Computer_walk(char arr[ROW][COL], int row, int col);//   
char Judge_win(char arr[ROW][COL], int row, int col);//    

#endif // GAME_H__


test.c //     ,    

#define _CRT_SECURE_NO_WARNINGS 1

#include "game.h"

void menu() //    
{
 printf("********************
"); printf("**** 1.play ****
"); printf("**** 0.exit ****
"); printf("********************
"); } void game() // { char arr[ROW][COL] = { 0 }; Arr_init(arr, ROW, COL); // Print_che(arr, ROW, COL); // while(1) { char n; Computer_walk(arr, ROW, COL); // Print_che(arr, ROW, COL); n = Judge_win(arr, ROW, COL); // if (n == 'X') // { printf("
"); break; } else if (n == '0') { printf("
"); break; } else if (n == 'Q') { printf("
"); break; } else printf("----------------
"); Player_go(arr, ROW, COL);// Print_che(arr, ROW, COL); n = Judge_win(arr, ROW, COL);// if (n == 'X') { printf("
"); break; } else if (n == '0') { printf("
"); break; } else if (n == 'Q') printf("
"); else printf("------------------
"); } } void test() // { int input = 0; srand((unsigned)time(NULL)); do { menu(); printf(" :"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: break; default: printf(" , 。
"); } } while (input); } int main() { test(); system("pause"); return 0; }
game.c/함수 정의 포함

#include "game.h"

void Arr_init(char arr[ROW][COL], int row, int col)//     
{
 int i = 0;
 int j = 0;
 for(i = 0; i < row; i++)
 {
 for(j = 0; j < col; j++)
 arr[i][j] = ' ';
 }
}

void Print_che(char arr[ROW][COL], int row, int col)//    
{
 int i, j;
 for(i = 0; i < row; i++)
 {
 for(j = 0; j < col; j++)
 {
 printf(" %c ", arr[i][j]);
 if (j < col - 1)
 printf("|");
 }
 printf("
"); for(j = 0; j < col ; j++) { if (i < row - 1) printf("___"); else printf(" "); if (j < col - 1) printf("|"); } printf("
"); } } void Player_go(char arr[ROW][COL], int row, int col) // { int x, y; printf(" :"); while (1) { scanf("%d %d", &x, &y); if ((x > 0 && x <= row + 1) && (y > 0 && y <= col + 1)) // { if (arr[x - 1][y - 1] == ' ') { arr[x - 1][y - 1] = 'X'; break; } else printf(" , :"); } else printf(" , :"); } } void Computer_walk(char arr[ROW][COL], int row, int col) // { int x, y; printf("
"); while(1) { x = rand() % row; // y = rand() % col; if (arr[x][y] == ' ') // { arr[x][y] = '0'; break; } } } char Judge_win(char arr[ROW][COL], int row, int col) // { int i, j; int count = 0; for (i = 0; i < row; i++) { if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][0] != ' ') // return arr[i][1]; if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[0][i] != ' ') // return arr[1][i]; if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[1][1] != ' ') // return arr[1][1]; if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[1][1] != ' ') // return arr[1][1]; } for (i = 0; i < row; i++)// { for (j = 0; j < col; j++) { if (arr[i][j] == 'X' || arr[i][j] == '0') // , { count++; if (count == 9) return 'Q'; } } } return 'A'; }
여기까지,우리 의 프로그램 은 이미 완성 되 었 으 니,우 리 는 프로그램의 효 과 를 보 자.


이상 은 간단 한 삼자 기 절차 로 부족 한 점 이 많 으 니 가르침 을 바 랍 니 다.
더 많은 재 미 있 는 클래식 게임 을 통 해 주 제 를 실현 하고 여러분 에 게 공유 합 니 다.
C++클래식 게임 모음
python 클래식 게임 모음
python 러시아 블록 게임 집합
JavaScript 클래식 게임 을 계속 합 니 다.
자바 클래식 게임 모음
javascript 고전 게임 모음
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기