컴퓨터 바둑 제작 랜덤 플레이 실현
컴퓨터 바둑
컴퓨터 바둑의 제작 노트.
・랜덤 사격의 실현 (원시 몬테카로 바둑이 아님)
· 지난번 주석을 참고하여 2차원 배열로 실시
지난번.
결과 이미지
컴퓨터 바둑 제작
때린 돌의 색깔 [지점]
결실
드로잉
소스 코드 # -*- coding:utf-8 -*-
import random
# データ
BOARD_SIZE = 9 # 碁盤の大きさ
WIDTH_SIZE = BOARD_SIZE + 2 # 盤外を含めた碁盤の横幅 11
# 盤上の種類
NONE,BLACK,WHITE,WALL = 0,1,2,3
STONE = ("・","🔴 ","⚪️ ")
# 碁盤描画
def draw(board):
print " "," ".join("%2d"%x for x in range(1,BOARD_SIZE+1))
for y in range(1,BOARD_SIZE+1):
print "%2d"%y, " ".join(STONE[data] for data in board[y][1:-1])
#石を打つ
def move(board,z,color):
board[z[0]][z[1]] = color
# 盤上の空の場所を配列で取得
def getNonePosition(board):
array = []
for y in range(1,BOARD_SIZE+1):
for x in range(1,BOARD_SIZE+1):
if board[y][x] == NONE:
array.append([y,x])
return array
def main():
# 碁盤
board = [[NONE]*WIDTH_SIZE for i in range(WIDTH_SIZE)]
# 枠の作成
for i in range(WIDTH_SIZE):
board[0][i] = board[-1][i] = board[i][0] = board[i][-1] = WALL
# 先手
color = BLACK
# ゲーム開始
while(1):
# 候補を探す
preMove = getNonePosition(board)
l = len(preMove)
if l == 0:
break
z = preMove[random.randint(0,l-1)] # ランダム打ち
move(board,z,color) # 打つ
print STONE[color],z # 描画
draw(board)
color = 3 - color # 色を交代
if __name__ == '__main__':
main()
github
마스터:1차원 정렬
2D 정렬
참고서
https://github.com/Tsunehiko511/python_Go_origin 컴퓨터 바둑―몬테카로법의 이론과 실천―
Reference
이 문제에 관하여(컴퓨터 바둑 제작 랜덤 플레이 실현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/simanezumi1989/items/7fd716c8dd798e1e4d3f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
컴퓨터 바둑 제작
때린 돌의 색깔 [지점]
결실
드로잉
소스 코드 # -*- coding:utf-8 -*-
import random
# データ
BOARD_SIZE = 9 # 碁盤の大きさ
WIDTH_SIZE = BOARD_SIZE + 2 # 盤外を含めた碁盤の横幅 11
# 盤上の種類
NONE,BLACK,WHITE,WALL = 0,1,2,3
STONE = ("・","🔴 ","⚪️ ")
# 碁盤描画
def draw(board):
print " "," ".join("%2d"%x for x in range(1,BOARD_SIZE+1))
for y in range(1,BOARD_SIZE+1):
print "%2d"%y, " ".join(STONE[data] for data in board[y][1:-1])
#石を打つ
def move(board,z,color):
board[z[0]][z[1]] = color
# 盤上の空の場所を配列で取得
def getNonePosition(board):
array = []
for y in range(1,BOARD_SIZE+1):
for x in range(1,BOARD_SIZE+1):
if board[y][x] == NONE:
array.append([y,x])
return array
def main():
# 碁盤
board = [[NONE]*WIDTH_SIZE for i in range(WIDTH_SIZE)]
# 枠の作成
for i in range(WIDTH_SIZE):
board[0][i] = board[-1][i] = board[i][0] = board[i][-1] = WALL
# 先手
color = BLACK
# ゲーム開始
while(1):
# 候補を探す
preMove = getNonePosition(board)
l = len(preMove)
if l == 0:
break
z = preMove[random.randint(0,l-1)] # ランダム打ち
move(board,z,color) # 打つ
print STONE[color],z # 描画
draw(board)
color = 3 - color # 色を交代
if __name__ == '__main__':
main()
github
마스터:1차원 정렬
2D 정렬
참고서
https://github.com/Tsunehiko511/python_Go_origin 컴퓨터 바둑―몬테카로법의 이론과 실천―
Reference
이 문제에 관하여(컴퓨터 바둑 제작 랜덤 플레이 실현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/simanezumi1989/items/7fd716c8dd798e1e4d3f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# -*- coding:utf-8 -*-
import random
# データ
BOARD_SIZE = 9 # 碁盤の大きさ
WIDTH_SIZE = BOARD_SIZE + 2 # 盤外を含めた碁盤の横幅 11
# 盤上の種類
NONE,BLACK,WHITE,WALL = 0,1,2,3
STONE = ("・","🔴 ","⚪️ ")
# 碁盤描画
def draw(board):
print " "," ".join("%2d"%x for x in range(1,BOARD_SIZE+1))
for y in range(1,BOARD_SIZE+1):
print "%2d"%y, " ".join(STONE[data] for data in board[y][1:-1])
#石を打つ
def move(board,z,color):
board[z[0]][z[1]] = color
# 盤上の空の場所を配列で取得
def getNonePosition(board):
array = []
for y in range(1,BOARD_SIZE+1):
for x in range(1,BOARD_SIZE+1):
if board[y][x] == NONE:
array.append([y,x])
return array
def main():
# 碁盤
board = [[NONE]*WIDTH_SIZE for i in range(WIDTH_SIZE)]
# 枠の作成
for i in range(WIDTH_SIZE):
board[0][i] = board[-1][i] = board[i][0] = board[i][-1] = WALL
# 先手
color = BLACK
# ゲーム開始
while(1):
# 候補を探す
preMove = getNonePosition(board)
l = len(preMove)
if l == 0:
break
z = preMove[random.randint(0,l-1)] # ランダム打ち
move(board,z,color) # 打つ
print STONE[color],z # 描画
draw(board)
color = 3 - color # 色を交代
if __name__ == '__main__':
main()
https://github.com/Tsunehiko511/python_Go_origin 컴퓨터 바둑―몬테카로법의 이론과 실천―
Reference
이 문제에 관하여(컴퓨터 바둑 제작 랜덤 플레이 실현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/simanezumi1989/items/7fd716c8dd798e1e4d3f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)