Le langage C implémente un simple jeu de trois échecs

Avoir une certaine compréhension et compréhension des connaissances de base du langage C et être capable de résoudre des problèmes simples grâce à la programmation en langage C. Utilisez la programmation en langage C pour compléter un jeu simple "Three Connects".

Introduction au jeu : L'échiquier commun 3x3 a deux joueurs. L'effet réalisé dans cette version est une bataille homme-machine. En jouant aux échecs un par un, si un côté forme un lien à trois caractères, il est déterminé que ce côté gagne. Si toute la couverture de l'échiquier est pleine et n'a pas encore formé un lien à trois caractères, alors il est jugé comme un match nul.

Idée de codage : L'échiquier est implémenté par un tableau 3x3. Différents joueurs correspondent à différents personnages. Chaque fois qu'une pièce d'échecs est placée dans une position, cela correspond à attribuer une valeur à la position. Chaque fois qu'un échec est joué, il sera jugé s'il y a un gagnant et s'il y a eu un match nul, ou si le jeu peut continuer, et ainsi de suite jusqu'à la fin.
insérez la description de l'image ici

Ce codage utilise le langage C, un total de cinq fonctions, chacune responsable des fonctions correspondantes.

void Menu()//Compléter la planification de l'ensemble du jeu et de l'interface
void Game()//Le cadre du jeu intègre toute l'idée du jeu
void playermove()//Le joueur place les pièces d'échecs
char juge( )//Déterminer si un côté gagne ou faire match
nul computerMove()//Placer les pièces d'échecs par ordinateur
Dans le codage, les pièces d'échecs informatiques sont placées en générant un nombre entier aléatoire. Après la génération, déterminez si la position peut être placée. Sinon, générez nombres aléatoires à nouveau.

#include<stdio.h>  

#pragma warning(disable:4996);

#include"C:\Users\尽欢\source\repos\ConsoleApplication2\game.h"

int main()
{
int select = 0;
while (1) {
Menu();
scanf("%d", &select);
switch (select)
{
case 1:
Game();
break;
case 2:
system("exit");
break;
default:
printf("输入有误!\n");
break;
}
return 0;
}
}

#ifndef __GAME_H__
#define __GAME_H__

#include <stdio.h>
#include <time.h>
#include <windows.h>
#pragma warning(disable:4996)

#define ROW 3
#define COL 3

#define P_COLOR 'X'
#define C_COLOR 'O'
#define NEXT 'N'
#define DRAW 'D'

void Menu();
void Game();
#endif
#include"game.h"
void Menu()
{
printf("   三子棋    ");
printf("-------------------");
printf("|  1.开始游戏  |");
printf("|  2.退出游戏  |");
printf("-------------------");
printf("请选择");
}

void Game()
{
srand((unsigned long)time(NULL));
char board[ROW][COL];
memset(board, ' ', sizeof(board));
char reselt = 'x';
do {
ShowBoard(board, ROW, COL);
PlayerMove(board, ROW, COL);
result = Judge(board, ROW, COL);
if (result != NEXT) {
break;
}
ComputerMove(board, ROW, COL);
result = Judge(board, ROW, COL);
if (result != NEXT) {
break;
}
} while (1);

if (P_COLOR == result) {
printf("你赢了!\n");
}
else if (C_COLOR == result) {
printf("你输了!\n");
}
else {
printf("和棋!\n");

}
ShowBoard(board, ROW, COL);
}

}

void playermove(char board[][COL], int row, int col)
{
int x = 0;
int y = 0;
int quit = 0;
while (1) {
printf("请输入你的位置:");
scanf("%d %d", x, y);
if (x < 1 || x>3 || y < 1 || y>3)
{
printf("你输入的位置有误!\n");
continue;
}
else if (board[x - 1][y - 1] != ' ')
{
printf("该位置已经被占用\n");
}
else
{
board[x - 1][y - 1] = P_COLOR;
break;
}
}
}

char Judge(char board[][COL], int ROW, int col)
{
for (int i = 0;i < row;i++) {
if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != ' ')
return board[i][0];
}
for (int j = 0; j < col; j++) {
if (board[0][j] == board[1][j] && \
board[1][j] == board[2][j] && \
board[0][j] != ' ') {
return board[0][j];
}
}

if (board[0][0] == board[1][1] && \
board[1][1] == board[2][2] && \
board[0][0] != ' ') {
return board[1][1];
}

if (board[0][2] == board[1][1] && \
board[1][1] == board[2][0] && \
board[1][1] != ' ') {
return board[1][1];
}

for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (board[i][j] == ' ') {
return NEXT;
}
}
}

return DRAW;
}

void ComputerMove(char board[][COL], int row, int rol)
{
while (1)
{
int x = rand() % row;
int y = rand() % col;
if (board[x][y] == ' ')
{
board[x][y] = C_COLOR;
break;
}
}
}

Je suppose que tu aimes

Origine blog.csdn.net/qq_45742383/article/details/113409299
conseillé
Classement