C语言实现井子格游戏

C语言简单实现一个9宫格的井子格游戏,任意一方完成三连即获胜!

    int winner = 0;
    int player = 0;
    int col = 0;
    int row = 0;
    int choice = 0;
    char board[3][3] = {
        {‘1‘,‘2‘,‘3‘},
        {‘4‘,‘5‘,‘6‘},
        {‘7‘,‘8‘,‘9‘}
    };
    for (int i = 0; i < 9 && winner == 0; i++) {
        printf("\n\n");
        printf(" %c | %c | %c \n",board[0][0],board[0][1],board[0][2]);
        printf("---+---+---\n");
        printf(" %c | %c | %c \n",board[1][0],board[1][1],board[1][2]);
        printf("---+---+---\n");
        printf(" %c | %c | %c \n",board[2][0],board[2][1],board[2][2]);

        player = i % 2 + 1;
        do {
            printf("玩家%d请输入你要选择的位置来放置%c:",player,(player == 1)?‘X‘:‘Z‘);
            scanf("%d",&choice);
            col = --choice % 3;
            row = choice / 3;
        } while (choice < 0 || choice > 8 || board[row][col] > 57);
        board[row][col] = player == 1 ? ‘X‘ : ‘Z‘;
        /****判断是否有人胜出*****/
        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 (int i = 0; i < 3; i++) {
                if ((board[i][0]==board[i][1]&&board[i][0]==board[i][2])                     ||(board[0][i]==board[1][i]&&board[0][i]==board[2][i])) {
                    winner = player;
                }
            }
        }
    }
    printf("\n\n");
    printf(" %c | %c | %c \n",board[0][0],board[0][1],board[0][2]);
    printf("---+---+---\n");
    printf(" %c | %c | %c \n",board[1][0],board[1][1],board[1][2]);
    printf("---+---+---\n");
    printf(" %c | %c | %c \n",board[2][0],board[2][1],board[2][2]);
    printf("**********玩家%d赢了!!!**********\n\n",winner);
时间: 2024-11-06 20:15:45

C语言实现井子格游戏的相关文章

C语言 三子棋 小游戏

//C语言 三子棋 小游戏 //棋盘为3x3大小,电脑棋子 X ,玩家 O : //用命令窗口模拟3子棋,玩家与电脑轮流下,先连成3子判赢:无路可走判平局 #include<stdio.h> #include<string.h> #include<windows.h> int judge_is_moved(char arr[][12], int place); void print_chessboard(char arr[][12])//输出棋盘 { int i = 0

C语言中的飞机游戏

#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #define N 35 void print(int [][N]);//输出函数 void movebul(int [][N]);//子弹移动函数 void movepla(int [][N]);//敌机移动函数 void setting(void);//设置函数 void menu(void);//菜单函

纯C语言版黄金点游戏

最近花了一段时间自学TCP/IP网络编程技术,掌握了基于TCP的C/S网络通信模型,熟悉了服务器和客户端软件程序的设计流程,并且利用多线程和互斥锁.条件变量等实现了并发机制. 项目介绍 开发环境:Visual Studio 2013运行环境:Windows 7及以上版本网络模型:使用基于TCP的C/S网络通信模型,实现黄金点游戏框架.语言技术:纯C语言开发,支持多线程,采用互斥锁和条件变量完成线程之间的同步和异步. 程序功能 服务器:用户的连接和断开都有相应的提示.一有新用户连接,服务器自动创建

使用 Go 语言开发大型 MMORPG 游戏服务器怎么样?(非常稳定、捕获所有异常、非常适合从头开始,但大公司已经有现成的C++框架、所以不会使用)

使用 Go 语言开发大型 MMORPG 游戏服务器怎么样?和C Socket服务器比起来有什么优劣?可行性怎么样? 从2013年起,经朋友推荐开始用Golang编写游戏登陆服务器, 配合C++做第三方平台验证. 到编写独立工具导表工具GitHub - davyxu/tabtoy: 跨平台的高性能便捷电子表格导出器. 以及网络库GitHub - davyxu/cellnet: 简单,方便,高效的Go语言的游戏服务器底层. 最终使用这些工具及库编写整个游戏服务器框架, 我的感受是很不错的 细节看来,

由Go语言并发模型想到游戏服务器并发

这段时间看了一些Go语言相关的东西,发现Go语言的最大特性并发模型类似于C++里面的线程池,正好我们项目服务器也是用的线程池,记录下. Go语言的并发单位是语言内置的协程,使用关键字go+函数创建一个新的协程,新创建的协程会自动加入到协程调度上下文的等待调度队列,一个协程调度上下文对应一个线程,一个协程调度上下文对应多个协程.新加入的协程会动态负载到各个调度上下文,如果所有调度上下文的平均负载较高时,总调度器会自动创建新的线程和对应的调度上下文用于工作.整体上看,是N个线程:N个调度上下文:M个

C语言写炸弹人小游戏

陆续改了半个月,不断更改游戏目的,结合了老鼠走迷宫和贪吃蛇游戏,终于在昨天凌晨2点写好了我的炸弹超人游戏.基于Windows图形界面,用C语言编写.虽然并不复杂,但收获颇多. 文件1:winapp.cpp,指导老师所给框架及自己写的主函数: #include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;#include "winapp.h"#include "myfile.h&

swift语言开发的一个游戏------熊猫跑酷(KongfuPanda)

项目地址:https://github.com/jakciehoo/KongfuPanda 欢迎加QQ群:260558552.大家一起交流iOS开发,我们可以一起学习,我很想集结一些志同道合的朋友,一起把iOS开发学好,学精,相互学习相互鼓励. 1.首先创建一个游戏项目: 2.将图片资源导入 将我项目里的 atlas整个目录 sound组里的音乐(background.mp3,fly.mp3,hit_platform.mp3,apple.mp3,hit.mp3,jump_from_platfor

C语言练习题一道——生命游戏

生命游戏是一个很简单,但却是很有趣的程序习题.在一个四周都可以延伸到无限的 棋盘上的某个格子中会有一个有机体.每一个有机体在时间t 时,会依照环绕着它的8 个邻 居的特性而决定在时间t+1 时是否能生存下去.如果某一格在时间t 时: (1)有一个有机体,但是它的邻居少于或等于1 个,或者是大于3 个,那就会因为不 够稠密或太过稠密,这个有机体在时间t+1 时就会死亡:换言之,在t+1 时间,那一格中不 会存在有机体.下面就是几个在时间t+1 时会死亡的例子,如图1 所示. 图1 (2)有有机体在

【C语言】 猜数字游戏

#include <stdio.h> #include <stdlib.h> #include <time.h> void game() { int input = 0; printf("欢迎使用猜数字游戏\n"); srand((unsigned int)time(NULL)); int ret = rand() % 100; do { printf("请输入你猜的数字:>"); scanf_s("%d"