精华内容
下载资源
问答
  • python学习之井字棋游戏

    千次阅读 2019-04-14 17:12:50
    井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记...

    井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。~

    游戏的难点在于,如何判断连接成了一条线;横、竖、斜三个方向;

    游戏的代码:

    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    u'''
    Created on 2019年4月13日
    
    @author: wuluo
    '''
    __author__ = 'wuluo'
    __version__ = '1.0.0'
    __company__ = u'重庆交大'
    __updated__ = '2019-04-13'
    
    
    # 创建井字棋的程序
    def initBoard():
          global board  # 调用全局的board
          board = [None] * 3
          print("井字棋:")
          for i in range(len(board)):
                board[i] = ["+ "] * 3
    
    
    # 打印井字棋的程序
    def printBoard():
          global board
          for i in range(len(board)):
                for j in range(len(board[i])):
                      print(board[i][j], end=" ")
                print("")
    
    
    # 开始下棋的程序
    def startGame():
          global board
          player = 0
          while isGameContinue():
                if player <= 8:
                      if player % 2 == 0:
                            # 甲方下棋
                            print("==>黑方下棋")
                            if not playChess("x"):
                                  continue
                      else:
                            # 乙方下棋
                            print("==>白方下棋")
                            if not playChess("○"):
                                  continue
                      player += 1
                else:
                      print("平局")
                      break
    
    def playChess(chess):
          # 获取位置
          x = int(input("==> X=")) - 1
          y = int(input("==> Y=")) - 1
          if board[x][y] == "+ ":
                board[x][y] = chess
                printBoard()
                return True  # 落子成功
          else:
                print("==> 已有棋子 请重新落子\a")
                printBoard()
                return False  # 落子失败
    
    
    def isGameContinue():
          for i in range(len(board)):
                for j in range(len(board[i])):
                      if board[i][j] != "+ ":
                            # 横向
                            if j == 0:
                                  if board[i][j] == board[i][j + 1] == board[i][j + 2]:
                                        whoWin(i, j)
                                        return False
                            # 竖向
                            if i == 0:
                                  if board[i][j] == board[i + 1][j] == board[i + 2][j]:
                                        whoWin(i, j)
                                        return False
                            # 正斜
                            if i == 0 and j == 0:
                                  if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2]:
                                        whoWin(i, j)
                                        return False
                            # 反斜
                            if i == 2 and j == 0:
                                  if board[i][j] == board[i - 1][j + 1] == board[i - 2][j + 2]:
                                        whoWin(i, j)
                                        return False
          return True
    
    
    def whoWin(i, j):
          if board[i][j] == "x":
                print("黑方胜!")
          else:
                print("白方胜!")
          for i in range(3):
                print("win")
    
    
    class main():
          board = []
          initBoard()
          printBoard()
          startGame()
    
    
    if __name__ == "__main__":
          main()
    

    游戏结果:
    在这里插入图片描述
    在这里插入图片描述
    还有一种结果是平局:
    在这里插入图片描述

    展开全文
  • C语言 井字棋游戏 编写代码实现人机对战的“井字棋游戏” 实现功能如下: ①可查看游戏说明 ②可以自由进行多局游戏 ③程序健壮性良好、界面美观、清晰 代码如下: #include<stdio.h> #include<stdlib.h>...

    C语言 井字棋游戏

    编写代码实现人机对战的“井字棋游戏”

    实现功能如下:

    ①可查看游戏说明

    ②可以自由进行多局游戏

    ③程序健壮性良好、界面美观、清晰

    代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    //输出棋牌以及已落下的棋子
    void write(char(play)[11])
    {
    system(“cls”); //清屏函数
    system(“color BD”);
    printf("\n\n\n\t\t\t\t C语言课程设计
    ");
    printf("\n\n\t\t\t\t\t编制者:杨少通\t\t时间:2016年06月22日\n\n");
    printf("\t\t\t\t\t井字棋游戏**\n\n\t\t\t\t\t\t “);
    for (int i = 0;i < 6;i++)
    {
    for (int j = 0; j < 11; j++)
    {
    printf(”%c", play[i][j]);
    }
    printf("\n\t\t\t\t\t\t “);
    }
    }
    //电脑落子,落子的位置为空则落子
    char computer(char(play)[11], int position)
    {
    char chess = ‘X’;
    switch (position)
    {
    case 1: if (play[1][1] == ‘’ || play[1][1] == ’ ') play[1][1] = chess; else return 0; break;
    case 2: if (play[1][5] == '
    ’ || play[1][5] == ’ ') play[1][5] = chess; else return 0; break;
    case 3: if (play[1][9] == ‘’ || play[1][9] == ’ ') play[1][9] = chess; else return 0; break;
    case 4: if (play[3][1] == '
    ’ || play[3][1] == ’ ') play[3][1] = chess; else return 0; break;
    case 5: if (play[3][5] == ‘’ || play[3][5] == ’ ') play[3][5] = chess; else return 0; break;
    case 6: if (play[3][9] == '
    ’ || play[3][9] == ’ ') play[3][9] = chess; else return 0; break;
    case 7: if (play[5][1] == ‘’ || play[5][1] == ’ ') play[5][1] = chess; else return 0; break;
    case 8: if (play[5][5] == '
    ’ || play[5][5] == ’ ') play[5][5] = chess; else return 0; break;
    case 9: if (play[5][9] == ‘’ || play[5][9] == ’ ') play[5][9] = chess; else return 0; break;
    }
    write(play);
    return 1;
    }
    //玩家落子,落子的位置为空则落子
    char player(char(*play)[11], char position[])
    {
    char chess = ‘O’;
    switch (position[0])
    {
    case ‘1’: if (play[1][1] == '
    ’ || play[1][1] == ’ ') play[1][1] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    case ‘2’: if (play[1][5] == ‘’ || play[1][5] == ’ ') play[1][5] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    case ‘3’: if (play[1][9] == '
    ’ || play[1][9] == ’ ') play[1][9] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    case ‘4’: if (play[3][1] == ‘’ || play[3][1] == ’ ') play[3][1] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    case ‘5’: if (play[3][5] == '
    ’ || play[3][5] == ’ ') play[3][5] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    case ‘6’: if (play[3][9] == ‘’ || play[3][9] == ’ ') play[3][9] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    case ‘7’: if (play[5][1] == '
    ’ || play[5][1] == ’ ') play[5][1] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    case ‘8’: if (play[5][5] == ‘’ || play[5][5] == ’ ') play[5][5] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    case ‘9’: if (play[5][9] == '
    ’ || play[5][9] == ’ ') play[5][9] = chess; else { printf("\n\t\t此处电脑已落子,请输入您的落子位置:"); return 0; } break;
    }
    write(play);
    return 1;
    }
    //判断是否为平局
    int draw(char(play)[11])
    {
    int n = 0;
    if ((play[1][1] == ‘O’ || play[1][1] == ‘X’) && (play[1][5] == ‘O’ || play[1][5] == ‘X’) && (play[1][9] == ‘O’ || play[1][9] == ‘X’))
    if ((play[3][1] == ‘O’ || play[3][1] == ‘X’) && (play[3][5] == ‘O’ || play[3][5] == ‘X’) && (play[3][9] == ‘O’ || play[3][9] == ‘X’))
    if ((play[5][1] == ‘O’ || play[5][1] == ‘X’) && (play[5][5] == ‘O’ || play[5][5] == ‘X’) && (play[5][9] == ‘O’ || play[5][9] == ‘X’))
    n = 1;
    else
    n = 0;
    return n;
    }
    //判断输赢
    int win(char(play)[11])
    {
    int draw(char(play)[11]); //判断是否是平局的函数
    //第一行或第一列获胜的情况
    if ((play[1][1] == play[1][5] && play[1][5] == play[1][9] || play[1][1] == play[3][1] && play[3][1] == play[5][1]) && play[1][1] == ‘O’)
    {
    printf("\n\t\t\t\t\t 游戏结束!恭喜你,获得了本次游戏的胜利!"); return 1;
    }
    else
    if ((play[1][1] == play[1][5] && play[1][5] == play[1][9] || play[1][1] == play[3][1] && play[3][1] == play[5][1]) && play[1][1] == ‘X’)
    {
    printf("\n\t\t\t\t\t游戏结束!很遗憾,电脑获得了胜利!请再接再厉!");return 1;
    }
    else
    if (draw(play))
    {
    printf("\n\t\t\t\t\t\t游戏结束!平局!请再接再厉!");return 1;
    }
    //第二列或第二行或两条对角线获胜的情况
    if ((play[3][1] == play[3][5] && play[3][5] == play[3][9] || play[1][5] == play[3][5] && play[3][5] == play[5][5] || play[1][1] == play[3][5] && play[3][5] == play[5][9] || play[1][9] == play[3][5] && play[3][5] == play[5][1]) && play[3][5] == ‘O’)
    {
    printf("\n\t\t\t\t\t 游戏结束!恭喜你,获得了本次游戏的胜利!"); return 1;
    }
    else
    if ((play[3][1] == play[3][5] && play[3][5] == play[3][9] || play[1][5] == play[3][5] && play[3][5] == play[5][5] || play[1][1] == play[3][5] && play[3][5] == play[5][9] || play[1][9] == play[3][5] && play[3][5] == play[5][1]) && play[3][5] == ‘X’)
    {
    printf("\n\t\t\t\t\t游戏结束!很遗憾,电脑获得了胜利!请再接再厉!");return 1;
    }
    else
    if (draw(play))
    {
    printf("\n\t\t\t\t\t\t游戏结束!平局!请再接再厉!");return 1;
    }
    //第三行或第四行获胜的情况
    if ((play[5][1] == play[5][5] && play[5][5] == play[5][9] || play[1][9] == play[3][9] && play[3][9] == play[5][9]) && play[5][9] == ‘O’)
    {
    printf("\n\t\t\t\t\t 游戏结束!恭喜你,获得了本次游戏的胜利!"); return 1;
    }
    else
    if ((play[5][1] == play[5][5] && play[5][5] == play[5][9] || play[1][9] == play[3][9] && play[3][9] == play[5][9]) && play[5][9] == ‘X’)
    {
    printf("\n\t\t\t\t\t游戏结束!很遗憾,电脑获得了胜利!请再接再厉!");return 1;
    }
    else
    if (draw(play))
    {
    printf("\n\t\t\t\t\t\t游戏结束!平局!请再接再厉!");return 1;
    }
    return 0;
    }
    //游戏操作说明
    int explain()
    {
    int start;
    system(“color 0D”);
    printf("\n\t\t\t\t\t操作说明如下:\n");
    printf("\n\t\t\t\t\t 这是一个人机对弈的游戏,由于电脑较为弱\n");
    printf("\t\t\t\t\t势,所以由电脑先落子。“O”为玩家棋子,“X”\n");
    printf("\t\t\t\t\t为电脑棋子。棋盘键位如下:\n\n\t\t\t\t\t\t\t");
    char explain[6][11] = { { ’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ’ },{ ‘’,‘1’,’’,’|’,’’,‘2’,’’,’|’,’’,‘3’,’’ },{ ’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ’ },{ ‘’,‘4’,’’,’|’,’’,‘5’,’’,’|’,’’,‘6’,’’ },{ ’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ’ },{ ’ ‘,‘7’,’ ‘,’|’,’ ‘,‘8’,’ ‘,’|’,’ ‘,‘9’,’ ’ } };
    for (int i = 0;i < 6;i++)
    {
    for (int j = 0;j < 11;j++)
    printf("%c", explain[i][j]);
    printf("\n\t\t\t\t\t\t\t");
    }
    printf("\n\t\t\t\t\t 1.继续游戏\t\t 2.结束游戏\n\n");
    printf("\t\t\t\t\t请输入您要进行的操作:");
    for (;😉
    {
    scanf_s("%d", &start);
    if (start == 1 || start == 2)
    break;
    else
    printf("\n\t\t\t\t\t只有1操作和2操作,请重新输入:");
    }
    return start;
    }
    //开始游戏
    void game(char(play)[11])
    {
    int main(); //再次调用main()函数以达到多次游戏的目的
    int cpu;
    char person[5];
    int start;
    srand((unsigned)time(NULL)); //时间种子,从1900年1月1日到现在的时间秒数,使rand()产生一个随机数
    for (int num = 0;num < 5;num++) //num变量表示电脑和玩家其中一方最多落子五次且只有一方
    {
    while (cpu = (rand() % 9 + 1)) //控制电脑落子的位置是空的时候,才允许电脑落子
    {
    if (computer(play, cpu))
    break;
    }
    //确定胜利的一方后结束游戏
    if (win(play))
    {
    break;
    }
    getchar();
    printf("\n\t\t电脑已落子,请输入您的落子位置:");
    while (1) //控制玩家落子的位置是空的时候,才允许落子
    {
    scanf_s("%s", person,5);
    if (person[0] > ‘9’ || person[0] < ‘1’ || person[1] != ‘\0’)
    {
    printf("\n\t\t只有1到9的位置,请重新输入:");
    continue;
    }
    if (player(play,person))
    break;
    }
    //确定胜利的一方后结束游戏
    if (win(play))
    {
    break;
    }
    }
    printf("\n\n\t\t\t\t\t
    游戏已结束****\n”);
    printf("\n\t\t\t\t\t\t1.再来一局\t2.结束游戏");
    printf("\n\n\t\t\t\t\t请输入您要进行的操作:");
    for (;😉
    {
    scanf_s("%d", &start);
    if (start == 1)
    main();
    else
    if (start == 2)
    {
    printf("\n\n\t\t\t\t\t游戏已结束\n");
    break;
    }
    else
    printf("\n\t\t\t\t\t只有1操作和2操作,请重新输入:");
    }
    system(“pause>nul&&cls”); //阻止清屏
    }
    int main()
    {
    system(“cls”);
    void write(char(play)[11]); //输出棋盘的函数
    char computer(char(play)[11], int position); //电脑落子的位置
    char player(char(play)[11], char position[]); //玩家落子的位置
    int win(char(play)[11]); //判断输赢的函数
    int explain(); //游戏说明函数
    void game(char(pllay)[11]); //游戏函数
    char play[6][11] = { { ’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ’ },{ ‘’,’’,’’,’|’,’’,’’,’’,’|’,’’,’’,’’ },{ ’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ’ },{ '’,’’,’’,’|’,’’,’’,’’,’|’,’’,’’,’’ },{ ’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ’ },{ ’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ‘,’|’,’ ‘,’ ‘,’ ’ } };
    int start;
    printf("\t\t\t\t C语言课程设计
    ");
    printf("\n\n\t\t\t\t\t编制者:杨少通\t\t时间:2016年06月22日\n\n");
    printf("\t\t\t\t\t
    井字棋游戏
    *******\n\n");
    printf("\t\t\t\t\t 1.操作说明\t\t 2.开始游戏\n\n");
    printf("\t\t\t\t\t请输入您要进行的操作:");
    for (;😉 //允许用户的操作按键只有1和2
    {
    scanf_s("%d", &start);
    if (start == 1 || start == 2)
    break;
    else
    printf("\n\t\t\t\t\t只有1操作和2操作,请重新输入:");
    }
    switch (start) //查看操作说明或开始游戏
    {
    case 1:
    switch (explain()) //开始游戏或结束游戏
    {
    case 1:game(play);break;
    case 2:printf("\n\n\t\t\t\t\t***************游戏结束!!!***************\n");system(“pause>nul&&cls”);break;
    }
    break;
    case 2:game(play);break;
    }
    return 0;
    }

    代码均为原创,存在不足还请见谅!如有转载请注明来源: www.dreamload.cn/blog/?p=395&preview=true (洋葱先生)

    展开全文
  • 姓名王璐璐学号18426001 PAGE 1 高级语言程序设计上机实验报告 实验项目名称 函数编程练习 实验日期 2018.11.9 学 生 姓 名 任超 专业班级 物联181 学 号 18426005 一实验目的 1理解并掌握变量的存储类型全局变量和...
  • Unity3D游戏一:IMGUI井字棋 要求 游戏内容: 井字棋 技术限制: 仅允许使用 IMGUI 构建 UI 作业目的: 了解 OnGUI() 事件,提升 debug 能力 提升阅读 API 文档能力 实现 完整代码传送门->[????]...

    Unity3D游戏一:IMGUI井字棋

    要求

    • 游戏内容: 井字棋
    • 技术限制: 仅允许使用 IMGUI 构建 UI
    • 作业目的:
      • 了解 OnGUI() 事件,提升 debug 能力
      • 提升阅读 API 文档能力

    实现

    • 完整代码传送门->?

    • 视屏演示传送门->?

    • 首先使用IMGUI搭建出游戏界面

      • OnGUI()函数,与Update()一样,只要脚本启用,每一帧都会被调用。

      • GUI.Box()制作背景盒

      • GUI.Label()创建文本框,仅用于显示信息,不能交互。

      • GUI.Button()创建按钮

         if (GUI.Button(new Rect(400, 200, 140, 50), "reset")) {
             //do
         }
        

        GUI.Button函数的返回值是0或1,0表示这个按钮没有被点击,1表示被点击,所以这句话的意思是创建按钮并判断该按钮是否被点击。

    • 游戏逻辑

      • 检查胜利条件,check()通过返回值不同来表示当前游戏状态。

        int check() {
            /*横线获胜*/
            for (int i = 0; i < 3; i++) {
                if (board[i][0] != 0 && board[i][0] == board[i][1] && board[i][1] == board[i][2]) {
                    return board[i][0];
                }
            }
            /*纵线获胜*/
            for (int i = 0; i < 3; i++) {
                if (board[0][i] != 0 && board[0][i] == board[1][i] && board[1][i] == board[2][i]) {
                    return board[0][i];
                }
            }
            /*斜线获胜*/
            if (board[1][1] != 0 &&
                board[0][0]== board[1][1] && board[2][2] == board[1][1] ||
                board[0][2] == board[1][1] && board[2][0] == board[1][1]) {
                return board[1][1];
            }
            /*对局还没结束*/
            for (int i = 0; i < 3; ++i) {
                for (int j = 0; j < 3; ++j) {
                    if (board[i][j] == 0) return 0;
                }
            }
            /*平局*/
            return 3;
        }
        
      • 先绘制已经下好的棋子,再判断游戏是否结束,若没结束则根据turn的值进行本次点击,更改二维数组的值。

        for (int i = 0; i < 3; ++i) {
        	for (int j = 0; j < 3; ++j) {
                if (board[i][j] == 1) {
                    GUI.Button(new Rect(m - 150 + i * 100, 200 + j * 100, 100, 100), "O");
                }
                else if (board[i][j] == 2) {
                    GUI.Button(new Rect(m - 150 + i * 100, 200 + j * 100, 100, 100), "X");
                }   
                if(GUI.Button(new Rect(m - 150 + i * 100, 200 + j * 100, 100, 100), "")) { 
                    if (res == 0) {
                        if (turn == 1) {
                            board[i][j] = turn;
                            turn = 2;
                        }
                        else {
                            board[i][j] = turn;
                            turn = 1;
                        }
                    }  
                }
            }
        }
        

    游戏截图

    在这里插入图片描述

    参考资料:

    Unity3D用户手册中文翻译 by 游戏蛮牛

    展开全文
  • printf("井字棋游戏开始啦"); dayin(map); for(i=0;i;i++) { if(i%2==0) { out1: printf("轮到玩家一下棋,请输入落子的坐标且用空格隔开"); scanf("%d %d",&a,&b); if(judgeerror(map,a,b)==1...
    #include<stdio.h>
    int judgewin1(const char array[3][3])          //暴力算法  
    {
    	if(array[0][0]=='X' && array[0][1]=='X' && array[0][2]=='X')
    	return 1;
    	else if(array[1][0]=='X' && array[1][1]=='X' && array[1][2]=='X')
    	return 1;
    	else if(array[2][0]=='X' && array[2][1]=='X' && array[2][2]=='X')
    	return 1;
    	else if(array[0][0]=='X' && array[1][0]=='X' && array[2][0]=='X')
    	return 1;
    	else if(array[0][1]=='X' && array[1][1]=='X' && array[2][1]=='X')
    	return 1;
    	else if(array[0][2]=='X' && array[1][2]=='X' && array[2][2]=='X')
    	return 1;
    	else if(array[0][0]=='X' && array[1][1]=='X' && array[2][2]=='X')
    	return 1;
    	else if(array[0][2]=='X' && array[1][1]=='X' && array[2][0]=='X')
    	return 1;
    	else
    	return 0;
    }
    int judgewin2(const char array[3][3])          
    {
    	if(array[0][0]=='O' && array[0][1]=='O' && array[0][2]=='O')
    	return 1;
    	else if(array[1][0]=='O' && array[1][1]=='O' && array[1][2]=='O')
    	return 1;
    	else if(array[2][0]=='O' && array[2][1]=='O' && array[2][2]=='O')
    	return 1;
    	else if(array[0][0]=='O' && array[1][0]=='O' && array[2][0]=='O')
    	return 1;
    	else if(array[0][1]=='O' && array[1][1]=='O' && array[2][1]=='O')
    	return 1;
    	else if(array[0][2]=='O' && array[1][2]=='O' && array[2][2]=='O')
    	return 1;
    	else if(array[0][0]=='O' && array[1][1]=='O' && array[2][2]=='O')
    	return 1;
    	else if(array[0][2]=='O' && array[1][1]=='O' && array[2][0]=='O')
    	return 1;
    	else
    	return 0;
    }
    int judgeerror(char array[3][3],int a,int b)
    {
    	if(array[a-1][b-1]=='X' || array[a-1][b-1]=='O' || a>3 || a<1 || b>3 || b<1)
    	{
    		return 1;
    	}
    	else 
    	{
    		return 0;
    	}
    }
    void dayin(char a[3][3])                            //打印函数 
    {
    	int i,j;
    	for(i=0;i<3;i++)
    		{
    			for(j=0;j<3;j++)
    			{
    				printf("%c",a[i][j]);
    			}
    			printf("\n");
    		}
    		
    }
    int main()
    {
    	int i,j;                                        //循环变量
    	int a,b;                                        //用来存储下棋的坐标
    	char map[3][3]={{' ', ' ',' '},{' ',' ',' '},{' ',' ',' '}};
    	printf("井字棋游戏开始啦"); 
    	dayin(map);
    	for(i=0;i<9;i++)
    	{
    		if(i%2==0)
    		{ 
    			out1:
    			printf("轮到玩家一下棋,请输入落子的坐标且用空格隔开");
    			scanf("%d %d",&a,&b);
    			if(judgeerror(map,a,b)==1)
    			{
    				printf("你下错啦小笨蛋!\n");
    				goto out1; 
    			}
    			map[a-1][b-1]='X';
    			dayin(map);	
    		}
    		else
    		{
    			out2:
    			printf("轮到玩家二下棋,请输入落子的坐标且用空格隔开");
    			scanf("%d %d",&a,&b);
    			if(judgeerror(map,a,b)==1)
    			{
    				printf("你下错啦小笨蛋!\n");
    				goto out2;
    			}
    			map[a-1][b-1]='O';
    			dayin(map);
    		}
    		if(judgewin1(map)==1)
    		{
    			printf("玩家一赢了");
    			break;
    		}
    		if(judgewin2(map)==1)
    		{
    			printf("玩家二赢了"); 
    			break;
    		}
    		
    	} 
    	if(i==9)
    		printf("这局平局!\n");
    	return 0;	
    }
    

    写的跟屎一样,我写博客的目的是为了保存我年少时期写下的烂代码,让将来的自己嘲笑

    展开全文
  • 但是环境类中的4个函数都是空的,本文将描述怎么实现那4个函数,实现一个完整的井字棋游戏的环境。 游戏规则:两个玩家在3x3的棋盘上,一方执X,一方执O。哪方先下的连续3个子(不管在对角,竖直还是水平方向)为胜...
  • 人工智能井字棋.doc

    2020-06-22 13:18:01
    实验报告 课程名称人工智能 实验名称井字棋 学 院: 专业班级 学生姓名 学 号 一实验目的 了解极大极小算法的原理和使用方法并学会用-剪枝来提高算法的效率 使用C语言平台编写一个智能井字棋游戏 结合极大极小算法的...
  • 转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79149418 一、下载源码 不多说,大家直接到链接... ...这里,我们直接运行Topology可实现本地部署。...运行Scorin
  • C语言实现井字棋

    2021-04-27 15:57:51
    C语言实现井字棋
  • 井字棋的实现

    2020-09-22 17:53:56
    井字棋的实现unity实现井字棋前言要求目的完成效果图具体实现变量定义开始重置检测是否胜利提示部分悔棋UI界面项目完整文件 unity实现井字棋 前言 这是中山大学2020级3D游戏设计第二次作业代码题部分,如有错误,...
  • 姓名:王璐璐学号PAGE 1高级语言程序设计上机实验报告实验项目名称:函数编程练习实验日期:2018.11.9学 生 姓 名:任超专业班级:物联181学 号:一、实验目的1.理解并掌握变量的存储类型、全局变量和局部变量的...
  • 游戏内容: 井字棋 或 贷款计算器 或 简单计算器 等等 技术限制: 仅允许使用 IMGUI 构建 UI 作业目的: 了解 OnGUI() 事件,提升 debug 能力 提升阅读 API 文档能力 提示:以下是本篇文章正文内容,下面案例仅供...
  • 前言 中山大学中山大学数据科学与计算机学院3D游戏课程学习记录博客。 游戏代码:gitee 游戏视频:bilibili 游戏要求 游戏实现
  • unity3D IMGUI井字棋

    2018-03-27 10:12:32
    使用IMGUI构建UI,做一个井字棋游戏。IMGUI文档 目的: 1. 提升 debug 能力 2. 提升阅读 API 文档能力 结果 核心设计 GUI.Button(new Rect(x, y, width, height), “Something you want to show ...
  • 这篇文章主要介绍本人在用C写出井字棋(三子棋)的详细思路,以及代码。
  • 从上一篇文章已知,游戏节点的数量随着参数而指数级增长,举例来说,井字棋(k=3,m=n=3)的状态数量是5478,k=3,m=n=4时是6035992 ,k=m=n=4时是9722011 。如果我们将初始局面节点作为根节点,同时保存海量playout...
  • 标准井字棋,在N步收回当时下的棋子 由于是大一新生,所以我今天写的时候并没有用类,因为这种的目前还不精通,怕翻车,所以暂时用笨方法写出来。不过仍然是很好理解的,请各方大佬指点江山,互相学习。 做标准井字...
  • Stage.1——井字棋

    2018-03-27 00:33:14
    k :那么,我们就来做个井字棋吧 13:哦,这个还挺好做的,我记得之前看过,就是直接用GUI来做吧,简单的九个Button就可以实现了,然后用一个一维或者是二维的数组来记录状态就好了吧//在OnGUI函数中,OnGUI()跟...
  • 题目说明 需要读入一个3x3矩阵,矩阵中1表示X,0表示O,如果有三个连在一起的...为了达到目的,需要从行、列和对角线三个维度进行遍历。 程序实现 #include <stdio.h> #include <math.h> int main() { ...
  • 今天这个井字棋的实现过程有点呆,因为井字棋棋盘一共就9个空格,所以把每个空格都做一个三子连线的可能并把它们逐一表述出来就能达到判断是否获胜的目的(对于井字棋还可以这么做,因为一共棋盘就9个空格,但对于...
  • 一:实验题目 井字棋游戏设计 利用面向对象程序设计的知识,通过设计board、player、game类,实现一个具有人人对弈、人机对弈以及机机对弈的井字棋游戏。 要求: ①对类设置和实现的要求 1.封装:需要对游戏中的...
  • Unity3d-简单井字棋 作业目的:熟悉IMGUI的使用,和基础的Unity3d操作 游戏玩法:选择两个模式,1.Player vs Player 2.Computer vs Player,当其中一种棋子连成三个则这个棋子的玩家获胜。 技术限制:仅允许使用...
  • python井字棋算法及代码

    千次阅读 2018-10-18 09:55:53
    井字棋盘看起来像一个大的井字符号(#),有9 个空格,可以包含X、O 或关于落子问题由于只能采用键盘输入,所以需要对棋盘进行坐标表示;即直接用1-9个9个数字来表示位置,7|8|9-+-+-4|5|6-+-+-1|2|3其索引顺序与...
  • 利用数组实现一个简单的井字棋游戏! 二、运行环境 VS 2013 Ultimate版 三、具体步骤 这个简单的小程序是利用多文件的方法编写的。 1、创建对应的main.c(主函数所在的源文件),TIC-tac-toe.h(头文件),Tic-tac-toe.c...
  • 游戏内容: 井字棋 或 贷款计算器 或 简单计算器 等等 技术限制: 仅允许使用 IMGUI 构建 UI 项目目的:提升 debug 能力,提升阅读 API 文档能力 1.井字棋简介(维基百科) 1.玩法 两个玩家,一个打圈(◯),...
  • 三子棋(井字棋) 一、问题前述 二、基本流程 三、详细步骤 1.创建菜单界面 2.创建棋盘 3.棋盘初始化 4.打印棋盘 5.玩家落子 6.电脑落子 7.判断胜负 四、结果演示 1.玩家胜利 2.电脑胜利 3.和棋 五、完整代码 一 、...
  • 这是《计算机系统设计与创新基础训练创新设计》课程设计,实现的是一个《基于485通信的双人井字棋对战》小游戏,你需要两根杜邦线和两块STCb学习板。今天花了十分钟写了这篇博客用于<开源>,时间比较仓促,...
  • 学习quick cocos2d-x 第二天 ,使用quick-x 做了一个井字棋游戏 。 我假设读者已经 http://wiki.quick-x.com/doku.php?id=zh_cn阅读了这个链接下的内容 ,并学会了如何搭建环境和创建新的工程,并假高读者有一定...
  • 本文是3D游戏编程与设计第二次作业的博客,分为简答题部分与编程实践部分 目录一、简答题1.解释 游戏对象(GameObjects)和 资源(Assets)的区别与联系2.下载几个游戏案例,分别总结资源、对象组织的结构3.编写一个...
  • emmmm…大致就是这个效果 目录 目录 1.所需的知识 2.总体思路 3.详细实现 ...游戏主体 ...将三子看作3x3的一个二维数组,由玩家和电脑分别填充这个数组。当行、列、叉能够达到三连时,就判...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 579
精华内容 231
关键字:

井字棋游戏目的