Skip to content

Commit

Permalink
#14 とか、いろいろのバグを修正。
Browse files Browse the repository at this point in the history
やったね!
  • Loading branch information
RyoRyo-2010 committed Nov 16, 2023
1 parent 2901142 commit a721e37
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 35 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -134,3 +134,6 @@ dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
#prefer properties not to be prefaced with this. or Me. in Visual Basic
dotnet_style_qualification_for_property = false:suggestion

[*.{cs,vb}]
indent_style=tab
12 changes: 3 additions & 9 deletions Assets/Scenes/CheckScores.unity
Original file line number Diff line number Diff line change
Expand Up @@ -193,15 +193,9 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: '1.2023/11/01 99999999999999999pts.
2.2023/12/08 30pts.
3.
4.
5.'
m_Text: "1.\u30C7\u30FC\u30BF\u306A\u3057 0\u79D2\r\n2.\u30C7\u30FC\u30BF\u306A\u3057
0\u79D2\r\n3.\u30C7\u30FC\u30BF\u306A\u3057 0\u79D2\r\n4.\u30C7\u30FC\u30BF\u306A\u3057
0\u79D2\r\n5.\u30C7\u30FC\u30BF\u306A\u3057 0\u79D2\r\n"
--- !u!222 &200360277
CanvasRenderer:
m_ObjectHideFlags: 0
Expand Down
127 changes: 101 additions & 26 deletions Assets/Scripts/CheckScores/ScoreManager.cs
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
using System.Collections;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using Newtonsoft.Json;
using UnityEngine;
using UnityEngine.UI;
using Newtonsoft.Json;
using System.Text;
using System;

public class ScoreManager : MonoBehaviour
{
public TextAsset FirstJson;
private string filePath;

[SerializeField]
public Text ScoreText;

Expand All @@ -19,47 +18,123 @@ public class ScoreManager : MonoBehaviour
void Start()
{
//セーブデータあるか確認
filePath = Path.Combine(Application.persistentDataPath, "Scores.json");
if(!File.Exists(filePath))

if (!File.Exists(FilePath))
{
StreamWriter sw = new StreamWriter(filePath,false, Encoding.UTF8);
StreamWriter sw = new StreamWriter(FilePath, false, Encoding.UTF8);
sw.Write(FirstJson.text);
sw.Flush();
sw.Close();
}

//データ読み込み
StreamReader sr = new StreamReader(filePath, Encoding.UTF8);

string jsonStr = sr.ReadToEnd();

sr.Close();
Scores = JsonConvert.DeserializeObject<ScoresJson>(jsonStr);
//データ読み込み
Scores = ReadJson();
string scoreText = "";
//画面に表示させる
foreach(Score s in Scores.scores)
foreach (Score s in Scores.scores)
{
scoreText += $"{s.rank}.{s.date} {s.score/10.0f}{Environment.NewLine}";
scoreText += $"{s.rank}.{s.date} {s.score / 10.0f}{Environment.NewLine}";
}
ScoreText.text = scoreText;


Debug.Log(FilePath);
}

public static void UpdateHighScore(int score)
{
//読み込み
ScoresJson scores = ReadJson();
//更新
scores = UpdateData(scores, score);
//JSONへ変換
string json = JsonConvert.SerializeObject(scores, Formatting.Indented);
//書き込み
StreamWriter sw = new StreamWriter(FilePath,false, Encoding.UTF8);
sw.Write(json);
sw.Flush();
sw.Close();
}

private static ScoresJson UpdateData(ScoresJson data, int input)
{
int where = WhereInsert(input, data);
if (where == -1)
{
return data;
}
data = ArrayShift(where, data);
data.scores[where].score = input;
data.scores[where].date = DateTime.Now.ToString("d");
return data;
}
private static int WhereInsert(int input, ScoresJson data)
{
//1つづつ、どこに入れるか検証
for (int i = 0; i < data.scores.Count; i++)
{
if (data.scores[i].score < input)
{
return i;
}
if (data.scores[i].score == input)
{
return -1;
}
}
return -1;
}
private static ScoresJson ArrayShift(int from, ScoresJson data)
{
for (int i = data.scores.Count - 1; i > from; i--)
{
//data.scores[i] = data.scores[i-1];
data.scores[i].date = data.scores[i - 1].date;
data.scores[i].score = data.scores[i - 1].score;
}

return data;
}

public static ScoresJson ReadJson()
{
StreamReader sr = new StreamReader(FilePath, Encoding.UTF8);

string jsonStr = sr.ReadToEnd();

sr.Close();
return JsonConvert.DeserializeObject<ScoresJson>(jsonStr);
}

// Update is called once per frame
void Update()
public static string FilePath
{

get
{
return Path.Combine(Application.persistentDataPath, "Scores.json");
}
}
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:命名スタイル", Justification = "<保留中>")]
public class ScoresJson
{

public IList<Score> scores { get; set; }

public IList<Score> scores
{
get; set;
}
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE1006:命名スタイル", Justification = "<保留中>")]
public class Score
{
public int rank { get; set; }
public string date { get; set; }
public long score { get; set; }//10で割ること
public int rank
{
get; set;
}
public string date
{
get; set;
}
public long score
{
get; set;
}//10で割ること
}

0 comments on commit a721e37

Please sign in to comment.