回答編集履歴

3

追記

2018/02/21 04:55

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -13,3 +13,11 @@
13
13
  ネットワーク対戦なんかだとギチギチに詰めた棋譜なら高速に交換できますね。
14
14
 
15
15
  だとしてもギチギチに詰めるのは転送時に限定し、アプリの中では構造体でゆったり組むだろなー...
16
+
17
+
18
+
19
+ [さらに追記] (棋譜ではなく)盤面のとある瞬間を表現するなら、
20
+
21
+ 64個のマスそれぞれについて白/黒/緑が表現できればいい。これには2bitあればOK。
22
+
23
+ 全部で128bit : uint8_t board[16] で十分ですわな。

2

修正

2018/02/21 04:55

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -1,10 +1,10 @@
1
1
  オセロの着手はx:0~7, y:0~7 で決まる。0~7を表現するには3bitあればいいから(x,y)は6bitあれば表現できる。白/黒の区別は1bit。つまり7bitあればよく、8bit使って残る1bitで"パス"を表現できる。
2
2
 
3
- 結局ひとつの手番を表現するにはsigned charで十分。
3
+ 結局ひとつの手番を表現するにはuint8_t(unsigned char)で十分。
4
4
 
5
5
 
6
6
 
7
- オセロは最大60手で終了するから棋譜は unsigned char game_record[60]; でOKじゃね?
7
+ オセロは最大60手で終了するから棋譜は uint8_t game_record[60]; でOKじゃね?
8
8
 
9
9
 
10
10
 

1

追記

2018/02/20 23:30

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -5,3 +5,11 @@
5
5
 
6
6
 
7
7
  オセロは最大60手で終了するから棋譜は unsigned char game_record[60]; でOKじゃね?
8
+
9
+
10
+
11
+ [追記] ここまでギチギチに詰める目的がないなら素直に構造体。
12
+
13
+ ネットワーク対戦なんかだとギチギチに詰めた棋譜なら高速に交換できますね。
14
+
15
+ だとしてもギチギチに詰めるのは転送時に限定し、アプリの中では構造体でゆったり組むだろなー...