서론
Tic-tac-toe는 3x3 그리드에서 진행되는 2인용 게임입니다. 선수들은 한 선수가 가로, 세로, 대각선으로 세 개의 정사각형을 얻거나 승자 없이 9개의 정사각형이 모두 채워질 때까지 교대로 그들의 기호(일반적으로 X 또는 O)로 격자에 정사각형을 표시합니다. 게임은 빈 3x3 격자로 시작하고, 첫 번째 플레이어(일반적으로 X)는 격자의 빈 사각형에 기호를 배치하여 이동합니다. 두 번째 플레이어(일반적으로 O)는 움직임을 보이고, 한 플레이어가 연속적으로 3개를 얻거나 9개의 정사각형이 모두 채워질 때까지 앞뒤로 플레이가 계속됩니다. 만약 한 선수가 연속해서 3개를 얻으면, 그들은 게임에서 이깁니다. 승자 없이 9개의 칸이 모두 채워지면 경기는 무승부로 끝납니다. 이번에는 플러터를 이용하여 Tic-tac-toe 게임을 만드는 법을 여러 코드 샘플을 보면서 함께 설명하도록 하겠습니다.
코딩 과정
다음은 Tic-tac-toe 게임 코드에 대한 단계별 분석입니다:
1단계: 필요한 패키지를 가져옵니다:
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
material package는 Material Design guidelines를 구현하는 플러터 위젯을 제공하는 반면 렌더링 패키지는 낮은 수준의 렌더링 기본 및 클래스를 제공합니다.
2단계: 기본 기능을 생성하고 runApp 메서드를 호출합니다:
void main() {
runApp(TicTacToe());
}
이 함수는 애플리케이션의 진입점입니다. 여기서는 TicTacToe 위젯의 새 인스턴스를 생성하여 애플리케이션을 실행하는 runApp 메서드에 전달합니다.
3단계: TicTacToe 위젯 클래스를 만듭니다:
class TicTacToe extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Tic Tac Toe',
home: Scaffold(
appBar: AppBar(
title: Text('Tic Tac Toe'),
),
body: TicTacToeGame(),
이 위젯은 애플리케이션의 루트입니다. 여기서는 MaterialApp 위젯을 사용하여 애플리케이션의 material design 테마를 제공합니다. 또한 우리는 Scaffold 위젯을 사용하여 AppBar와 TicTacToeGame 위젯을 포함하는 본문을 포함한 애플리케이션의 기본 레이아웃 구조를 제공합니다.
4단계: TicTacToeGame 위젯 클래스를 만듭니다:
class TicTacToeGame extends StatefulWidget {
@override
_TicTacToeState createState() => _TicTacToeState();
}
이 위젯은 게임 보드를 나타내는 상태 저장 위젯입니다. 여기서 _TicTacToeState 클래스의 인스턴스를 반환하는 상태 저장 위젯을 만듭니다.
5단계: _TicTacToeState 클래스를 만듭니다:
class _TicTacToeState extends State<TicTacToeGame> {
List<String> _gameState;
bool _player1Turn;
bool _gameOver;
String _winner;
}
이 클래스는 보드의 현재 상태, 누구의 차례인지, 게임이 끝났는지, 누가 게임을 이겼는지 등 게임의 상태를 유지합니다.
6단계: _TicTacToeState 클래스에서 _checkWin 메서드를 추가하여 플레이어가 게임에서 이겼는지 확인합니다:
댓글